'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``.'

def _get_conn(self, timeout=None):

    conn = None
    try:
        conn = self.pool.get(block=self.block, timeout=timeout)
    except AttributeError:
        raise ClosedPoolError(self, 'Pool    is    closed.')
    except Empty:
        if self.block:
            raise EmptyPoolError(self, 'Pool    reached    maximum    size    and    no    more    connections    are    allowed.')
        pass
    if (conn and is_connection_dropped(conn)):
        log.info(('Resetting    dropped    connection:    %s' % self.host))
        conn.close()
        if (getattr(conn, 'auto_open', 1) == 0):
            conn = None
    return (conn or self._new_conn())
