parameters: (self, item, block=True, timeout=None)
docstring: Put an item into the queue.
  
          If optional args 'block' is true and 'timeout' is None (the default),
          block if necessary until a free slot is available. If 'timeout' is
          a positive number, it blocks at most 'timeout' seconds and raises
          the Full exception if no free slot was available within that time.
          Otherwise ('block' is false), put an item on the queue if a free slot
          is immediately available, else raise the Full exception ('timeout'
          is ignored in that case).
docstring_summary: Put an item into the queue.
docstring_tokens: Put an item into the queue .
function: def put(self, item, block=True, timeout=None):
          """Put an item into the queue.
  
          If optional args 'block' is true and 'timeout' is None (the default),
          block if necessary until a free slot is available. If 'timeout' is
          a positive number, it blocks at most 'timeout' seconds and raises
          the Full exception if no free slot was available within that time.
          Otherwise ('block' is false), put an item on the queue if a free slot
          is immediately available, else raise the Full exception ('timeout'
          is ignored in that case).
          """
          self.not_full.acquire()
          try:
              if self.maxsize > 0:
                  if not block:
                      if self._qsize() == self.maxsize:
                          raise Full
                  elif timeout is None:
                      while self._qsize() == self.maxsize:
                          self.not_full.wait()
                  elif timeout < 0:
                      raise ValueError("'timeout' must be a positive number")
                  else:
                      endtime = _time() + timeout
                      while self._qsize() == self.maxsize:
                          remaining = endtime - _time()
                          if remaining <= 0.0:
                              raise Full
                          self.not_full.wait(remaining)
              self._put(item)
              self.unfinished_tasks += 1
              self.not_empty.notify()
          finally:
              self.not_full.release()
function_tokens: def put ( self , item , block = True , timeout = None ) : self . not_full . acquire ( ) try : if self . maxsize > 0 : if not block : if self . _qsize ( ) == self . maxsize : raise Full elif timeout is None : while self . _qsize ( ) == self . maxsize : self . not_full . wait ( ) elif timeout < 0 : raise ValueError ( "'timeout' must be a positive number" ) else : endtime = _time ( ) + timeout while self . _qsize ( ) == self . maxsize : remaining = endtime - _time ( ) if remaining <= 0.0 : raise Full self . not_full . wait ( remaining ) self . _put ( item ) self . unfinished_tasks += 1 self . not_empty . notify ( ) finally : self . not_full . release ( )