class_docstr: Create a queue object with a given maximum size.
  
  If maxsize is <= 0, the queue size is infinite.
docstr: 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 non-negative 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).
docstr_tok: ["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","non-negative","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",")","."]
code: 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 non-negative 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).
      """
      with self.not_full:
          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 non-negative 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()
  
imports: import threading
  import types
  from collections import deque
  from heapq import heappush, heappop
  from time import monotonic
label_desc: Use image node_id 7 for calling the Queue obj's underlying member method code with example usage: obj.put(item, block, timeout) without return types