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    
Size: Mime:
§

×gwãóš—dZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddlm
Z
dd	lmZmZmZmZdd
lmZmZmZmZddlmZmZmZmZddlmZmZdd
l m!Z!m"Z"m#Z#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3ej4dkrej5Z6nejZ6efd„Z7efd„Z8Gd„d¦«Z9Gd„de9¦«Z:d„Z;dS)z•
requests.sessions
~~~~~~~~~~~~~~~~~

This module provides a Session object to manage and persist settings across
requests (cookies, auth, proxies).
éN)ÚOrderedDict)Ú	timedeltaé)Úto_native_string)ÚHTTPAdapter)Ú_basic_auth_str)ÚMappingÚ	cookielibÚurljoinÚurlparse)ÚRequestsCookieJarÚcookiejar_from_dictÚextract_cookies_to_jarÚ
merge_cookies)ÚChunkedEncodingErrorÚContentDecodingErrorÚ
InvalidSchemaÚTooManyRedirects)Ú
default_hooksÚ
dispatch_hook)ÚDEFAULT_REDIRECT_LIMITÚREDIRECT_STATIÚPreparedRequestÚRequest)Úcodes)ÚCaseInsensitiveDict)
Ú
DEFAULT_PORTSÚdefault_headersÚget_auth_from_urlÚget_environ_proxiesÚget_netrc_authÚrequote_uriÚresolve_proxiesÚrewind_bodyÚshould_bypass_proxiesÚto_key_val_listÚwin32có.—|€|S|€|St|t¦«rt|t¦«s|S|t|¦«¦«}| t|¦«¦«d„| ¦«D¦«}|D]}||=Œ|S)zèDetermines appropriate setting for a given request, taking into account
    the explicit setting on that request, and the setting in the session. If a
    setting is a dictionary, they will be merged together using `dict_class`
    Ncó—g|]	\}}|­|‘Œ
S©N©)Ú.0ÚkÚvs   ú?/tmp/pip-target-6culloxw/lib/python/requests_odigos/sessions.pyú
<listcomp>z!merge_setting.<locals>.<listcomp>Ts€ÐEÐEÐE‘v˜˜1¸1¸9¸9¸9¸9ó)Ú
isinstancer	r&ÚupdateÚitems)Úrequest_settingÚsession_settingÚ
dict_classÚmerged_settingÚ	none_keysÚkeys      r/Ú
merge_settingr;=s¿€ðÐØÐàÐØÐõ	?¥GÑ,Ô,ðÝ1;¸OÍWÑ1UÔ1UððÐàZ¥°Ñ @Ô @ÑAÔA€NØ×ҝ/¨/Ñ:Ô:Ñ;Ô;Ð;ðFÐE ×!5Ò!5Ñ!7Ô!7ÐEÑEÔE€IØð ð ˆØ˜3ÐÐàÐr1có˜—|| d¦«gkr|S|| d¦«gkr|St|||¦«S)z©Properly merges both requests and session hooks.

    This is necessary because when request_hooks == {'response': []}, the
    merge breaks Session hooks entirely.
    NÚresponse)Úgetr;)Ú
request_hooksÚ
session_hooksr7s   r/Úmerge_hooksrA[s^€ðР
× 1Ò 1°*Ñ =Ô =ÀÒ CÐ CØÐàР
× 1Ò 1°*Ñ =Ô =ÀÒ CÐ CØÐ嘨
°zÑBÔBÐBr1có@—eZdZd„Zd„Z						d
d„Zd„Zd„Zd	„ZdS)ÚSessionRedirectMixincóx—|jr2|jd}| d¦«}t|d¦«SdS)z7Receives a Response. Returns a redirect URI or ``None``ÚlocationÚlatin1Úutf8N)Úis_redirectÚheadersÚencoder)ÚselfÚresprEs   r/Úget_redirect_targetz(SessionRedirectMixin.get_redirect_targetksC€ðÔð		6Ø”| JÔ/ˆHð —’ xÑ0Ô0ˆHÝ# H¨fÑ5Ô5Ð5؈tr1cób—t|¦«}t|¦«}|j|jkrdS|jdkr|jdvr|jdkr|jdvrdS|j|jk}|j|jk}t	j|jd¦«df}|s|j|vr|j|vrdS|p|S)zFDecide whether Authorization header should be removed when redirectingTÚhttp)éPNÚhttps)i»NFN)rÚhostnameÚschemeÚportrr>)rKÚold_urlÚnew_urlÚ
old_parsedÚ
new_parsedÚchanged_portÚchanged_schemeÚdefault_ports        r/Úshould_strip_authz&SessionRedirectMixin.should_strip_auths݀å˜gÑ&Ô&ˆ
ݘgÑ&Ô&ˆ
ØÔ *Ô"5Ò5Ð5ؐ4ð
Ô Ò'Ð'Ø” :Ð-Ð-ØÔ! WÒ,Ð,Ø” ;Ð.Ð.à5ð"”¨*¬/Ò9ˆØ#Ô*¨jÔ.?Ò?ˆÝ%Ô)¨*Ô*;¸TÑBÔBÀDÐIˆàð	à” <Ð/Ð/Ø” <Ð/Ð/à5ðÐ-˜~Ð-r1FNTc	
+ó¾K—g}
| |¦«}t|j¦«j}|r'| ¦«}
|
 |¦«|
dd…|_	|jn8#tttf$r|j d¬¦«YnwxYwt|j¦«|jkrtd|j›d|¬¦«‚| ¦«| d¦«r=t|j¦«}d	 t'|j¦«|g¦«}t|¦«}|jd
kr|r| |¬¦«}n|jr|j}| ¦«}|js#t1|jt3|¦«¦«}nt3|¦«}t'|¦«|
_| |
|¦«|jt8jt8jfvr)d}|D]}|
j  |d¦«Œd|
_!|
j}|  d
d¦«tE|
j#||j¦«tI|
j#|j%¦«|
 &|
j#¦«| '|
|¦«}| (|
|¦«|
j)duod|vpd|v}|rtU|
¦«|
}|r|V—nI|j+|f|||||ddœ|	¤Ž}tE|j%|
|j¦«| |¦«}|V—|°%dSdS)zBReceives a Response. Returns a generator of Responses or Requests.rNF)Údecode_contentz	Exceeded z redirects.)r=z//ú:Ú)Úfragment)úContent-LengthzContent-TypeúTransfer-EncodingÚCookierbrc)ÚstreamÚtimeoutÚverifyÚcertÚproxiesÚallow_redirects),rMrÚurlraÚcopyÚappendÚhistoryÚcontentrrÚRuntimeErrorÚrawÚreadÚlenÚ
max_redirectsrÚcloseÚ
startswithÚjoinrrSÚ_replaceÚgeturlÚnetlocrr"Úrebuild_methodÚstatus_coderÚtemporary_redirectÚpermanent_redirectrIÚpopÚbodyrÚ_cookiesrÚcookiesÚprepare_cookiesÚrebuild_proxiesÚrebuild_authÚ_body_positionr$Úsend)rKrLÚreqrerfrgrhriÚyield_requestsÚadapter_kwargsÚhistrkÚprevious_fragmentÚprepared_requestÚparsed_rurlÚparsedÚpurged_headersÚheaderrIÚ
rewindables                    r/Úresolve_redirectsz&SessionRedirectMixin.resolve_redirectsŸsìèè€ðˆà×&Ò& tÑ,Ô,ˆÝ$ S¤WÑ-Ô-Ô6ÐØñg	Ø"Ÿxšx™zœzÐð
KŠK˜ÑÔÐØ   œ8ˆDŒLð
4Ø”øÝ(Õ*>ÅÐMð
4ð
4ð
4Ø”—
’
¨U
Ñ3Ô3Ð3Ð3Ð3ð
4øøøõ4”<Ñ Ô  DÔ$6Ò6Ð6Ý&Ø? Ô 2Ð?Ð?Ð?È$ðñôðð

JŠJ‰LŒLˆLð~Š~˜dÑ#Ô#ð
LÝ& t¤xÑ0Ô0Ø—h’hÕ 0°Ô1CÑ DÔ DÀcÐJÑKÔKõ˜c‘]”]ˆFØŒ "Ò$Ð$Ð):Ð$ØŸšÐ2C˜ÑDÔDØ”ð
4Ø$*¤OÐ!Ø—-’-‘/”/ˆCð
”=ð
'ݘdœh­°CÑ(8Ô(8Ñ9Ô9å! #Ñ&Ô&å#3°CÑ#8Ô#8ÐÔ à×ÒÐ 0°$Ñ7Ô7Ð7ðÔÝÔ(ÝÔ(ð(ððð
"YØ,ð?ð?FØ$Ô,×0Ò0°¸Ñ>Ô>Ð>Ð>Ø(,Ð Ô%à&Ô.ˆGØKŠK˜ $Ñ'Ô'Ð'õ

#Ð#3Ô#<¸cÀ4Ä8ÑLÔLÐLÝÐ*Ô3°T´\ÑBÔBÐBØ×,Ò,Ð-=Ô-FÑGÔGÐGð×*Ò*Ð+;¸WÑEÔEˆGØ×ÒÐ.°Ñ5Ô5Ð5ð
*Ô8ÀÐDðØ  GÐ+ÐMÐ/BÀgÐ/Mð
ð
ð
.ÝÐ,Ñ-Ô-Ð-ð#ˆCàð
ؐ				à t”yØð	à!Ø#Ø!ØØ#Ø$)ð	ð	ð%ð	ð	õ' t¤|Ð5EÀtÄxÑPÔPÐPð×.Ò.¨tÑ4Ô4Ø


ðOñg	ðg	ðg	ðg	ðg	sÁ/A7Á72B,Â+B,cóҗ|j}|j}d|vr#| |jj|¦«r|d=|jrt|¦«nd}|| |¦«dSdS)zéWhen being redirected we may want to strip authentication from the
        request to avoid leaking credentials. This method intelligently removes
        and reapplies authentication where possible to avoid credential loss.
        Ú
AuthorizationN)rIrkr\ÚrequestÚ	trust_envr!Úprepare_auth)rKrr=rIrkÚnew_auths      r/r…z!SessionRedirectMixin.rebuild_authsŒ€ð
#Ô*ˆØÔ"ˆà˜gÐ%Ð%¨$×*@Ò*@ØÔÔ  #ñ+
ô+
Ð%ð
˜Ð(ð+/¬.ÐB•> #Ñ&Ô&Ð&¸dˆØÐØ×)Ò)¨(Ñ3Ô3Ð3Ð3Ð3ð Ðr1có6—|j}t|j¦«j}t	|||j¦«}d|vr|d=	t
||¦«\}}n#t$rd\}}YnwxYw| d¦«s|r|rt||¦«|d<|S)a°This method re-evaluates the proxy configuration by considering the
        environment variables. If we are redirected to a URL covered by
        NO_PROXY, we strip the proxy configuration. Otherwise, we set missing
        proxy keys for this URL (in case they were stripped by a previous
        redirect).

        This method also replaces the Proxy-Authorization header where
        necessary.

        :rtype: dict
        zProxy-Authorization©NNrQ)
rIrrkrSr#r—rÚKeyErrorrvr)rKrrirIrSÚnew_proxiesÚusernameÚpasswords        r/r„z$SessionRedirectMixin.rebuild_proxies.sӀð#Ô*ˆÝÐ*Ô.Ñ/Ô/Ô6ˆÝ%Ð&6¸ÀÄÑPÔPˆà  GÐ+Ð+ØÐ-Ð.ð	,Ý!2°;¸vÔ3FÑ!GÔ!GÑˆHhhøÝð	,ð	,ð	,Ø!+ÑˆHhhhð	,øøøð
× Ò  Ñ)Ô)ð	Q¨hð	Q¸8ð	QÝ-<¸XÀxÑ-PÔ-PˆGÐ)Ñ*àÐs¿AÁA*Á)A*cóЗ|j}|jtjkr|dkrd}|jtjkr|dkrd}|jtjkr|dkrd}||_dS)z‚When being redirected we may want to change the method of the request
        based on certain specs or browser behavior.
        ÚHEADÚGETÚPOSTN)Úmethodr|rÚ	see_otherÚfoundÚmoved)rKrr=r¤s    r/r{z#SessionRedirectMixin.rebuild_methodMs~€ð"Ô(ˆðÔ¥5¤?Ò2Ð2°vÀÒ7GÐ7G؈FðÔ¥5¤;Ò.Ð.°6¸VÒ3CÐ3C؈FðÔ¥5¤;Ò.Ð.°6¸VÒ3CÐ3C؈Fà"(ÐÔÐÐr1)FNTNNF)	Ú__name__Ú
__module__Ú__qualname__rMr\r“r…r„r{r+r1r/rCrCjs€€€€€ðððð(.ð.ð.ðHØØØ
ØØðyðyðyðyðv4ð4ð4ð(ððð>)ð)ð)ð)ð)r1rCcó°—eZdZdZgd¢Zd„Zd„Zd„Zd„Z														dd	„Z	d
„Z
d„Zd„Zdd
„Z
dd„Zdd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdS)ÚSessiona€A Requests session.

    Provides cookie persistence, connection-pooling, and configuration.

    Basic Usage::

      >>> import requests
      >>> s = requests.Session()
      >>> s.get('https://httpbin.org/get')
      <Response [200]>

    Or as a context manager::

      >>> with requests.Session() as s:
      ...     s.get('https://httpbin.org/get')
      <Response [200]>
    )rIr‚ÚauthriÚhooksÚparamsrgrhÚadaptersrer—rtcó¢—t¦«|_d|_i|_t	¦«|_i|_d|_d|_d|_	t|_d|_ti¦«|_t¦«|_| dt%¦«¦«| dt%¦«¦«dS)NFTzhttps://zhttp://)rrIr­rirr®r¯rergrhrrtr—rr‚rr°Úmountr©rKs r/Ú__init__zSession.__init__†s»€õ'Ñ(Ô(ˆŒðˆŒ	ð
ˆŒõ#‘_”_ˆŒ
ð
ˆŒðˆŒðˆŒðˆŒ	õ4ˆÔðˆŒõ+¨2Ñ.Ô.ˆŒõ$™
œ
ˆŒ
Ø
Š
:{™}œ}Ñ-Ô-Ð-Ø
Š
9k™mœmÑ,Ô,Ð,Ð,Ð,r1có—|Sr*r+r³s r/Ú	__enter__zSession.__enter__Ãs€Øˆr1có.—| ¦«dSr*)ru)rKÚargss  r/Ú__exit__zSession.__exit__Æs€Ø
Š
‰Œˆˆˆr1có’—|jpi}t|tj¦«st	|¦«}ttt
¦«|j¦«|¦«}|j}|jr|s|jst|j
¦«}t¦«}| |j
 ¦«|j
|j|j|jt%|j|jt(¬¦«t%|j|j¦«t%||j¦«|t-|j|j¦«¬¦
«
|S)a‹Constructs a :class:`PreparedRequest <PreparedRequest>` for
        transmission and returns it. The :class:`PreparedRequest` has settings
        merged from the :class:`Request <Request>` instance and those of the
        :class:`Session`.

        :param request: :class:`Request` instance to prepare with this
            session's settings.
        :rtype: requests.PreparedRequest
        )r7)
r¤rkÚfilesÚdataÚjsonrIr¯r­r‚r®)r‚r2r
Ú	CookieJarrrr
r­r—r!rkrÚpreparer¤Úupperr»r¼r½r;rIrr¯rAr®)rKr–r‚Úmerged_cookiesr­Úps      r/Úprepare_requestzSession.prepare_requestÉs5€ð”/Ð' Rˆõ˜'¥9Ô#6Ñ7Ô7ð	3Ý)¨'Ñ2Ô2ˆGõ'ÝÕ+Ñ-Ô-¨t¬|Ñ<Ô<¸gñ
ô
ˆð
Œ|ˆØŒ>ð	/ $ð	/¨t¬yð	/Ý! '¤+Ñ.Ô.ˆDåÑÔˆØ		Š	Ø”>×'Ò'Ñ)Ô)ؔؔ-ؔؔÝ!Ø” ¤Õ:Mðñôõ! ¤°´Ñ=Ô=ݘt T¤YÑ/Ô/Ø"ݘgœm¨T¬ZÑ8Ô8ð	ñ
	
ô
	
ð
	
ðˆr1NTcó"—t| ¦«||||pi||pi|||¬¦
«
}| |¦«}|pi}| |j||
||¦«}|	|
dœ}| |¦«|j|fi|¤Ž}|S)aù	Constructs a :class:`Request <Request>`, prepares it and sends it.
        Returns :class:`Response <Response>` object.

        :param method: method for the new :class:`Request` object.
        :param url: URL for the new :class:`Request` object.
        :param params: (optional) Dictionary or bytes to be sent in the query
            string for the :class:`Request`.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json to send in the body of the
            :class:`Request`.
        :param headers: (optional) Dictionary of HTTP Headers to send with the
            :class:`Request`.
        :param cookies: (optional) Dict or CookieJar object to send with the
            :class:`Request`.
        :param files: (optional) Dictionary of ``'filename': file-like-objects``
            for multipart encoding upload.
        :param auth: (optional) Auth tuple or callable to enable
            Basic/Digest/Custom HTTP Auth.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple
        :param allow_redirects: (optional) Set to True by default.
        :type allow_redirects: bool
        :param proxies: (optional) Dictionary mapping protocol or protocol and
            hostname to the URL of the proxy.
        :param hooks: (optional) Dictionary mapping hook name to one event or
            list of events, event must be callable.
        :param stream: (optional) whether to immediately download the response
            content. Defaults to ``False``.
        :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a string, in which case it must be a path
            to a CA bundle to use. Defaults to ``True``. When set to
            ``False``, requests will accept any TLS certificate presented by
            the server, and will ignore hostname mismatches and/or expired
            certificates, which will make your application vulnerable to
            man-in-the-middle (MitM) attacks. Setting verify to ``False``
            may be useful during local development or testing.
        :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair.
        :rtype: requests.Response
        )
r¤rkrIr»r¼r½r¯r­r‚r®)rfrj)rrÀrÃÚmerge_environment_settingsrkr3r‡)rKr¤rkr¯r¼rIr‚r»r­rfrjrir®rergrhr½rˆÚprepÚsettingsÚsend_kwargsrLs                      r/r–zSession.requestôsπõ~Ø—<’<‘>”>ØØØØ˜ØØ<˜RØØØð
ñ
ô
ˆð×#Ò# CÑ(Ô(ˆà-˜Rˆà×2Ò2ØŒHg˜v v¨tñ
ô
ˆðØ.ð
ð
ˆð	×Ò˜8Ñ$Ô$Ð$؈tŒy˜Ð-Ð- Ð-Ð-ˆàˆr1cóL—| dd¦«|jd|fi|¤ŽS)zåSends a GET request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rjTr¢©Ú
setdefaultr–©rKrkÚkwargss   r/r>zSession.getQs7€ð	×ÒÐ+¨TÑ2Ô2Ð2؈tŒ|˜E 3Ð1Ð1¨&Ð1Ð1Ð1r1cóL—| dd¦«|jd|fi|¤ŽS)zéSends a OPTIONS request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rjTÚOPTIONSrÊrÌs   r/ÚoptionszSession.options\s7€ð	×ÒÐ+¨TÑ2Ô2Ð2؈tŒ|˜I sÐ5Ð5¨fÐ5Ð5Ð5r1cóL—| dd¦«|jd|fi|¤ŽS)zæSends a HEAD request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rjFr¡rÊrÌs   r/ÚheadzSession.headgs7€ð	×ÒÐ+¨UÑ3Ô3Ð3؈tŒ|˜F CÐ2Ð2¨6Ð2Ð2Ð2r1có&—|jd|f||dœ|¤ŽS)aÈSends a POST request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        r£)r¼r½©r–)rKrkr¼r½rÍs     r/ÚpostzSession.postrs'€ðˆtŒ|˜F CÐH¨d¸ÐHÐHÀÐHÐHÐHr1có$—|jd|fd|i|¤ŽS)auSends a PUT request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚPUTr¼rÔ©rKrkr¼rÍs    r/ÚputzSession.puts%€ðˆtŒ|˜E 3Ð<Ð<¨TÐ<°VÐ<Ð<Ð<r1có$—|jd|fd|i|¤ŽS)awSends a PATCH request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚPATCHr¼rÔrØs    r/Úpatchz
Session.patch‹s%€ðˆtŒ|˜G SÐ>Ð>¨tÐ>°vÐ>Ð>Ð>r1có —|jd|fi|¤ŽS)zèSends a DELETE request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚDELETErÔrÌs   r/ÚdeletezSession.delete—s €ðˆtŒ|˜H cÐ4Ð4¨VÐ4Ð4Ð4r1có.—| d|j¦«| d|j¦«| d|j¦«d|vrt	||j|j¦«|d<t|t¦«rtd¦«‚| 
dd¦«}| d¦«}|j}| 
|j¬¦«}t¦«}|j|fi|¤Ž}t¦«|z
}	t#|	¬	¦«|_t'd
||fi|¤Ž}|jr*|jD]"}
t+|j|
j|
j¦«Œ#t+|j||j¦«|r|j||fi|¤Ž}d„|D¦«}ng}|r1| d|¦«| 
¦«}||_|s5	t7|j||fd
di|¤Ž¦«|_n#t:$rYnwxYw|s|j|S)zISend a given PreparedRequest.

        :rtype: requests.Response
        rergrhriz#You can only send PreparedRequests.rjT)rk)Úsecondsr=có—g|]}|‘ŒSr+r+)r,rLs  r/r0z Session.send.<locals>.<listcomp>Ôs€Ð,Ð,Ð, tÐ,Ð,Ð,r1rr‰)rËrergrhr#rir—r2rÚ
ValueErrorrr>r®Úget_adapterrkÚpreferred_clockr‡rÚelapsedrrnrr‚r–rqr“ÚinsertÚnextÚ_nextÚ
StopIterationro)
rKr–rÍrjrer®ÚadapterÚstartÚrrærLÚgenrns
             r/r‡zSession.send¡s€€ð	×Ò˜( D¤KÑ0Ô0Ð0Ø×Ò˜( D¤KÑ0Ô0Ð0Ø×Ò˜& $¤)Ñ,Ô,Ð,ؘFÐ"Ð"Ý /°¸¼ÀtÄ~Ñ VÔ VˆF9ÑõgwÑ'Ô'ð	DÝÐBÑCÔCÐCð!Ÿ*š*Ð%6¸Ñ=Ô=ˆØ—’˜HÑ%Ô%ˆØ”
ˆð×"Ò" w¤{Ð"Ñ3Ô3ˆõ Ñ!Ô!ˆð
ˆGŒL˜Ð+Ð+ FÐ+Ð+ˆõ"Ñ#Ô# eÑ+ˆÝ gÐ.Ñ.Ô.ˆŒ	õ
˜* e¨QÐ9Ð9°&Ð9Ð9ˆð
Œ9ð	Màœ	ð
Mð
MÝ& t¤|°T´\À4Ä8ÑLÔLÐLÐLå˜tœ|¨W°a´eÑ<Ô<Ð<ðð	à($Ô(¨¨GÐ>Ð>°vÐ>Ð>ˆCØ,Ð,¨Ð,Ñ,Ô,ˆGˆGàˆGðð	 àNŠN˜1˜aÑ Ô Ð à—’‘
”
ˆA؈AŒIðð	ð
ÝØ*DÔ*¨1¨gÐUÐUÀdÐUÈfÐUÐUñô”øõ!ð
ð
ð
ؐð
øøøðð	Ø
ŒIˆIàˆsÇ#G<Ç<
H	ÈH	có—|jr || d¦«nd}t||¬¦«}| ¦«D]\}}	| ||	¦«Œ|dus|€@t
j d¦«p t
j d¦«p|}t||j¦«}t||j	¦«}t||j
¦«}t||j¦«}||||dœS)z^
        Check the environment and merge it with some settings.

        :rtype: dict
        NÚno_proxy)rðTÚREQUESTS_CA_BUNDLEÚCURL_CA_BUNDLE)rirergrh)r—r>r r4rËÚosÚenvironr;rirergrh)
rKrkrirergrhrðÚenv_proxiesr-r.s
          r/rÅz"Session.merge_environment_settingsîs€ðŒ>ð	à29Ð2Ew—{’{ :Ñ.Ô.Ð.È4ˆHÝ-¨c¸HÐEÑEÔEˆKØ#×)Ò)Ñ+Ô+ð
)ð
)‘1Ø×"Ò" 1 aÑ(Ô(Ð(Ð(ð˜ˆ~ˆ~  å”J—N’NÐ#7Ñ8Ô8ðÝ”z—~’~Ð&6Ñ7Ô7ðàðõ  ¨¬Ñ6Ô6ˆÝ˜v t¤{Ñ3Ô3ˆÝ˜v t¤{Ñ3Ô3ˆÝ˜T 4¤9Ñ-Ô-ˆà"¨fÀÐPTÐUÐUÐUr1cóޗ|j ¦«D]B\}}| ¦« | ¦«¦«r|cSŒCt	d|›¦«‚)z~
        Returns the appropriate connection adapter for the given URL.

        :rtype: requests.adapters.BaseAdapter
        z&No connection adapters were found for )r°r4Úlowerrvr)rKrkÚprefixrës    r/räzSession.get_adapter
sr€ð $œ}×2Ò2Ñ4Ô4ð	ð	‰OˆFG؏yŠy‰{Œ{×%Ò% f§l¢l¡n¤nÑ5Ô5ð
ؐð
õÐLÀSÐLÐLÑMÔMÐMr1cóf—|j ¦«D]}| ¦«ŒdS)z+Closes all adapters and as such the sessionN)r°Úvaluesru)rKr.s  r/ruz
Session.closes8€à”×%Ò%Ñ'Ô'ð	ð	ˆAØ
GŠG‰IŒIˆIˆIð	ð	r1c󐇗||j‰<ˆfd„|jD¦«}|D]$}|j |¦«|j|<Œ%dS)zwRegisters a connection adapter to a prefix.

        Adapters are sorted in descending order by prefix length.
        cóT•—g|]$}t|¦«t‰¦«k¯"|‘Œ%Sr+)rs)r,r-røs  €r/r0z!Session.mount.<locals>.<listcomp>%s/ø€ÐIÐIÐI˜aµC¸±F´F½SÀ¹[¼[Ò4HÐ4H˜Ð4HÐ4HÐ4Hr1N)r°r)rKrørëÚkeys_to_mover:s `   r/r²z
Session.mountsdø€ð
!(ˆŒ
fÑØIÐIÐIÐI 4¤=ÐIÑIÔIˆàð	8ð	8ˆCØ!%¤×!2Ò!2°3Ñ!7Ô!7ˆDŒM˜#ÑÐð	8ð	8r1có.‡—ˆfd„‰jD¦«}|S)Ncó4•—i|]}|t‰|d¦«“ŒSr*)Úgetattr)r,ÚattrrKs  €r/ú
<dictcomp>z(Session.__getstate__.<locals>.<dictcomp>+s'ø€ÐLÐLÐL°T•w˜t T¨4Ñ0Ô0ÐLÐLÐLr1)Ú	__attrs__)rKÚstates` r/Ú__getstate__zSession.__getstate__*s#ø€ØLÐLÐLÐL¸T¼^ÐLÑLÔLˆØˆr1có\—| ¦«D]\}}t|||¦«ŒdSr*)r4Úsetattr)rKrrÚvalues    r/Ú__setstate__zSession.__setstate__.s<€Ø Ÿ;š;™=œ=ð	'ð	'‰KˆD%ÝD˜$ Ñ&Ô&Ð&Ð&ð	'ð	'r1)NNNNNNNTNNNNNNr›r*)r¨r©rªÚ__doc__rr´r¶r¹rÃr–r>rÐrÒrÕrÙrÜrßr‡rÅrärur²rr	r+r1r/r¬r¬ds¡€€€€€ððð$
ð
ð
€Ið;-ð;-ð;-ðzðððððð)ð)ð)ð^Ø
ØØØØ
ØØØØØØØ
Ø
ð#[ð[ð[ð[ðz	2ð	2ð	2ð	6ð	6ð	6ð	3ð	3ð	3ðIðIðIðIð
=ð
=ð
=ð
=ð
?ð
?ð
?ð
?ð5ð5ð5ðKðKðKðZVðVðVð>NðNðNðððð
	8ð	8ð	8ðððð'ð'ð'ð'ð'r1r¬có—t¦«S)aZ
    Returns a :class:`Session` for context-management.

    .. deprecated:: 1.0.0

        This method has been deprecated since version 1.0.0 and is only kept for
        backwards compatibility. New code should use :class:`~requests.sessions.Session`
        to create a session. This may be removed at a future date.

    :rtype: Session
    )r¬r+r1r/Úsessionr3s€õ‰9Œ9Ðr1)<r
róÚsysÚtimeÚcollectionsrÚdatetimerÚ_internal_utilsrr°rr­rÚcompatr	r
rrr‚r
rrrÚ
exceptionsrrrrr®rrÚmodelsrrrrÚstatus_codesrÚ
structuresrÚutilsrrrr r!r"r#r$r%r&ÚplatformÚperf_counterrår;rArCr¬rr+r1r/ú<module>rsíðððð
€	€	€	Ø
€
€
€
Ø€€€Ø#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐà-Ð-Ð-Ð-Ð-Ð-Ø!Ð!Ð!Ð!Ð!Ð!Ø!Ð!Ð!Ð!Ð!Ð!Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9ððððððððððððððððððððððððð0Ð/Ð/Ð/Ð/Ð/Ð/Ð/ððððððððððððð ÐÐÐÐÐØ+Ð+Ð+Ð+Ð+Ð+ððððððððððððððððððððððððð„<7ÒÐØÔ'€O€Oà”i€Oð@Kððððð<:EðCðCðCðCðw)ðw)ðw)ðw)ðw)ñw)ôw)ðw)ðtL'ðL'ðL'ðL'ðL'Ð"ñL'ôL'ðL'ð^ððððr1