parameters: (self, timeout=None)
return_statement: return conn or self._new_conn()
docstring: Get a connection. Will return a pooled connection if one is available.
  
          If no connections are available and :prop:`.block` is ``False``, then a
          fresh connection is returned.
  
          :param timeout:
              Seconds to wait before giving up and raising
              :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and
              :prop:`.block` is ``True``.
docstring_summary: Get a connection. Will return a pooled connection if one is available.
docstring_tokens: Get a connection . Will return a pooled connection if one is available .
function: def _get_conn(self, timeout=None):
          """
          Get a connection. Will return a pooled connection if one is available.
  
          If no connections are available and :prop:`.block` is ``False``, then a
          fresh connection is returned.
  
          :param timeout:
              Seconds to wait before giving up and raising
              :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and
              :prop:`.block` is ``True``.
          """
          conn = None
          try:
              conn = self.pool.get(block=self.block, timeout=timeout)
  
          except AttributeError:  # self.pool is None
              raise ClosedPoolError(self, "Pool is closed.")
  
          except queue.Empty:
              if self.block:
                  raise EmptyPoolError(
                      self,
                      "Pool reached maximum size and no more connections are allowed.",
                  )
              pass  # Oh well, we'll create a new connection then
  
          # If this is a persistent connection, check if it got disconnected
          if conn and is_connection_dropped(conn):
              log.debug("Resetting dropped connection: %s", self.host)
              conn.close()
              if getattr(conn, "auto_open", 1) == 0:
                  # This is a proxied connection that has been mutated by
                  # httplib._tunnel() and cannot be reused (since it would
                  # attempt to bypass the proxy)
                  conn = None
  
          return conn or self._new_conn()
function_tokens: def _get_conn ( self , timeout = None ) : conn = None try : conn = self . pool . get ( block = self . block , timeout = timeout ) except AttributeError : # self.pool is None raise ClosedPoolError ( self , "Pool is closed." ) except queue . Empty : if self . block : raise EmptyPoolError ( self , "Pool reached maximum size and no more connections are allowed." , ) pass # Oh well, we'll create a new connection then # If this is a persistent connection, check if it got disconnected if conn and is_connection_dropped ( conn ) : log . debug ( "Resetting dropped connection: %s" , self . host ) conn . close ( ) if getattr ( conn , "auto_open" , 1 ) == 0 : # This is a proxied connection that has been mutated by # httplib._tunnel() and cannot be reused (since it would # attempt to bypass the proxy) conn = None return conn or self . _new_conn ( )