Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
contego / home / tvault / .virtenv / lib / python2.7 / site-packages / urllib3 / poolmanager.pyc
Size: Mime:
ó
èEYc@@s„ddlmZddlZddlZddlZddlmZddlmZm	Z	ddlm
Z
ddlmZm
Z
mZddlmZdd	lmZdd
lmZddlmZdd
dgZejeƒZd4Zd5Zejd-eƒZd.„Ziej eeƒd/6ej eeƒd06Z!ied/6e	d06Z"defd1„ƒYZ#d
e#fd2„ƒYZ$d3„Z%dS(6i(tabsolute_importNi(tRecentlyUsedContainer(tHTTPConnectionPooltHTTPSConnectionPool(tport_by_scheme(tLocationValueErrort
MaxRetryErrortProxySchemeUnknown(turljoin(tRequestMethods(t	parse_url(tRetrytPoolManagertProxyManagertproxy_from_urltkey_filet	cert_filet	cert_reqstca_certstssl_versiontca_cert_dirtssl_contextt
key_schemetkey_hosttkey_porttkey_timeouttkey_retriest
key_strictt	key_blocktkey_source_addresstkey_key_filet
key_cert_filet
key_cert_reqstkey_ca_certstkey_ssl_versiontkey_ca_cert_dirtkey_ssl_contexttkey_maxsizetkey_headerst
key__proxytkey__proxy_headerstkey_socket_optionstkey__socks_optionstkey_assert_hostnametkey_assert_fingerprinttPoolKeycC@s|jƒ}|djƒ|d<|djƒ|d<xGdD]?}||kr;||d	k	r;t||jƒƒ||<q;q;W|jdƒ}|d	k	r¬t|ƒ|d<nx1t|jƒƒD]}|j	|ƒ|d|<q¿Wx*|j
D]}||krêd	||<qêqêW||S(
s÷
    Create a pool key out of a request context dictionary.

    According to RFC 3986, both the scheme and host are case-insensitive.
    Therefore, this function normalizes both before constructing the pool
    key for an HTTPS request. If you wish to change this behaviour, provide
    alternate callables to ``key_fn_by_scheme``.

    :param key_class:
        The class to use when constructing the key. This should be a namedtuple
        with the ``scheme`` and ``host`` keys at a minimum.
    :type  key_class: namedtuple
    :param request_context:
        A dictionary-like object that contain the context for a request.
    :type  request_context: dict

    :return: A namedtuple that can be used as a connection pool key.
    :rtype:  PoolKey
    tschemethosttheaderst_proxy_headerst_socks_optionstsocket_optionstkey_(sheaderss_proxy_headersR2N(tcopytlowertNonet	frozensettitemstgetttupletlisttkeystpopt_fields(t	key_classtrequest_contexttcontexttkeytsocket_optstfield((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt_default_key_normalizer9s
!thttpthttpscB@s’eZdZdZddd„Zd„Zd„Zdd„Zd„Z	dddd„Z
d	„Zdd
„Zdd„Z
d„Zed
„ZRS(s$
    Allows for arbitrary requests while transparently keeping track of
    necessary connection pools for you.

    :param num_pools:
        Number of connection pools to cache before discarding the least
        recently used pool.

    :param headers:
        Headers to include with all requests, unless other headers are given
        explicitly.

    :param \**connection_pool_kw:
        Additional parameters are used to create fresh
        :class:`urllib3.connectionpool.ConnectionPool` instances.

    Example::

        >>> manager = PoolManager(num_pools=2)
        >>> r = manager.request('GET', 'http://google.com/')
        >>> r = manager.request('GET', 'http://google.com/mail')
        >>> r = manager.request('GET', 'http://yahoo.com/')
        >>> len(manager.pools)
        2

    i
cK@sMtj||ƒ||_t|dd„ƒ|_t|_tjƒ|_dS(Ntdispose_funccS@s
|jƒS(N(tclose(tp((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt<lambda>›s(R	t__init__tconnection_pool_kwRtpoolstpool_classes_by_schemetkey_fn_by_schemeR5(tselft	num_poolsR0RN((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRM—s			cC@s|S(N((RR((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt	__enter__¢scC@s|jƒtS(N(tcleartFalse(RRtexc_typetexc_valtexc_tb((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt__exit__¥s
cC@sŒ|j|}|dkr+|jjƒ}nxdD]}|j|dƒq2W|dkr|x!tD]}|j|dƒq_Wn||||S(s·
        Create a new :class:`ConnectionPool` based on host, port, scheme, and
        any additional pool keyword arguments.

        If ``request_context`` is provided, it is provided as keyword arguments
        to the pool class used. This method is used to actually create the
        connection pools handed out by :meth:`connection_from_url` and
        companion methods. It is intended to be overridden for customization.
        R.R/tportRGN(sschemeshostsport(RPR7RNR5R>tSSL_KEYWORDS(RRR.R/R[RAtpool_clsRCtkw((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt	_new_poolªs



cC@s|jjƒdS(s´
        Empty our store of pools and direct them all to close.

        This will not affect in-flight connections, but they will not be
        re-used after completion.
        N(RORU(RR((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRUÅsRGcC@sz|stdƒ‚n|j|ƒ}|p-d|d<|sYtj|djƒdƒ}n||d<||d<|j|ƒS(s
        Get a :class:`ConnectionPool` based on the host, port, and scheme.

        If ``port`` isn't given, it will be derived from the ``scheme`` using
        ``urllib3.connectionpool.port_by_scheme``. If ``pool_kwargs`` is
        provided, it is merged with the instance's ``connection_pool_kw``
        variable and used to create the new connection pool, if one is
        needed.
        sNo host specified.RGR.iPR[R/(Rt_merge_pool_kwargsRR:R6tconnection_from_context(RRR/R[R.tpool_kwargsRA((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pytconnection_from_hostÎs

cC@s<|djƒ}|j|}||ƒ}|j|d|ƒS(sâ
        Get a :class:`ConnectionPool` based on the request context.

        ``request_context`` must at least contain the ``scheme`` key and its
        value must be a key in ``key_fn_by_scheme`` instance variable.
        R.RA(R6RQtconnection_from_pool_key(RRRAR.tpool_key_constructortpool_key((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRaås
c
C@sy|jjg|jj|ƒ}|r)|S|d}|d}|d}|j|||d|ƒ}||j|<WdQX|S(sû
        Get a :class:`ConnectionPool` based on the provided pool key.

        ``pool_key`` should be a namedtuple that only contains immutable
        objects. At a minimum it must have the ``scheme``, ``host``, and
        ``port`` fields.
        R.R/R[RAN(ROtlockR:R_(RRRfRAtpoolR.R/R[((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRdòs



cC@s4t|ƒ}|j|jd|jd|jd|ƒS(sÖ
        Similar to :func:`urllib3.connectionpool.connection_from_url`.

        If ``pool_kwargs`` is not provided and a new pool needs to be
        constructed, ``self.connection_pool_kw`` is used to initialize
        the :class:`urllib3.connectionpool.ConnectionPool`. If ``pool_kwargs``
        is provided, it is used instead. Note that if a new pool does not
        need to be created for the request, the provided ``pool_kwargs`` are
        not used.
        R[R.Rb(R
RcR/R[R.(RRturlRbtu((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pytconnection_from_url
s!cC@sq|jjƒ}|rmxU|jƒD]D\}}|dkr\y||=Wqftk
rXqfXq"|||<q"Wn|S(s
        Merge a dictionary of override values for self.connection_pool_kw.

        This does not modify self.connection_pool_kw and returns a new dict.
        Any keys in the override dictionary with a value of ``None`` are
        removed from the merged dictionary.
        N(RNR5R9R7tKeyError(RRtoverridetbase_pool_kwargsRCtvalue((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyR`s
c
	K@s§t|ƒ}|j|jd|jd|jƒ}t|d<t|d<d|kr`|j|d<n|jd
k	r–|jdkr–|j	|||}n|j	||j
|}|o½|jƒ}|sÊ|St||ƒ}|j
dkrñd}n|jd	ƒ}	t|	tƒs'tj|	d|ƒ}	ny"|	j||d
|d|ƒ}	Wn!tk
rl|	jrh‚n|SX|	|d	<||d<tjd||ƒ|j	|||S(s]
        Same as :meth:`urllib3.connectionpool.HTTPConnectionPool.urlopen`
        with custom cross-host redirect logic and only sends the request-uri
        portion of the ``url``.

        The given ``url`` parameter must be absolute, such that an appropriate
        :class:`urllib3.connectionpool.ConnectionPool` can be chosen for it.
        R[R.tassert_same_hosttredirectR0RGi/tGETtretriestresponset_poolsRedirecting %s -> %sN(R
RcR/R[R.RVR0tproxyR7turlopentrequest_uritget_redirect_locationRtstatusR:t
isinstanceRtfrom_intt	incrementRtraise_on_redirecttlogtinfo(
RRtmethodRiRqR^RjtconnRttredirect_locationRs((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRw-s8	$

	"
	

N(t__name__t
__module__t__doc__R7RvRMRTRZR_RURcRaRdRkR`tTrueRw(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRys					
	cB@sJeZdZdddd„Zdddd„Zdd„Zed„ZRS(sw
    Behaves just like :class:`PoolManager`, but sends all requests through
    the defined proxy, using the CONNECT method for HTTPS URLs.

    :param proxy_url:
        The URL of the proxy to be used.

    :param proxy_headers:
        A dictionary contaning headers that will be sent to the proxy. In case
        of HTTP they are being sent with each request, while in the
        HTTPS/CONNECT case they are sent only once. Could be used for proxy
        authentication.

    Example:
        >>> proxy = urllib3.ProxyManager('http://localhost:3128/')
        >>> r1 = proxy.request('GET', 'http://google.com/')
        >>> r2 = proxy.request('GET', 'http://httpbin.org/')
        >>> len(proxy.pools)
        1
        >>> r3 = proxy.request('GET', 'https://httpbin.org/')
        >>> r4 = proxy.request('GET', 'https://twitter.com/')
        >>> len(proxy.pools)
        3

    i
cK@sàt|tƒr.d|j|j|jf}nt|ƒ}|jsmtj|jdƒ}|jd|ƒ}n|jdkrŽt	|jƒ‚n||_
|p i|_|j
|d<|j|d<tt
|ƒj|||dS(	Ns
%s://%s:%iiPR[RGRHt_proxyR1(shttpshttps(R{RR.R/R[R
RR:t_replaceRRvt
proxy_headerstsuperR
RM(RRt	proxy_urlRSR0RŠRNRvR[((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRM{s		

RGcC@sb|dkr.tt|ƒj|||d|ƒStt|ƒj|jj|jj|jjd|ƒS(NRHRb(R‹R
RcRvR/R[R.(RRR/R[R.Rb((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRc’s
cC@sIidd6}t|ƒj}|r/||d<n|rE|j|ƒn|S(s
        Sets headers needed by proxies: specifically, the Accept and Host
        headers. Only sets headers not provided by the user.
        s*/*tAccepttHost(R
tnetloctupdate(RRRiR0theaders_R((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt_set_proxy_headersšs

cK@skt|ƒ}|jdkrI|jd|jƒ}|j||ƒ|d<ntt|ƒj||d||S(s@Same as HTTP(S)ConnectionPool.urlopen, ``url`` must be absolute.RGR0Rq(R
R.R:R0R’R‹R
Rw(RRRRiRqR^RjR0((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyRw©s
N(	R„R…R†R7RMRcR’R‡Rw(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyR
`scK@std||S(NRŒ(R
(RiR^((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyR·s(skey_files	cert_files	cert_reqssca_certssssl_versionsca_cert_dirsssl_context(RRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,(&t
__future__Rtcollectionst	functoolstloggingt_collectionsRtconnectionpoolRRRt
exceptionsRRRtpackages.six.moves.urllib.parseRtrequestR	tutil.urlR
t
util.retryRt__all__t	getLoggerR„RR\t_key_fieldst
namedtupleR-RFtpartialRQRPRR
R(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/urllib3/poolmanager.pyt<module>sb	5
çW