B `Y@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlmZddlmZddlmZddlmZddlmZddlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd l,m-Z-dd l.m/Z/ddl0Z0ddl1Z1dd l2m3Z3m4Z4dd l5m6Z6dd l7m8Z8ddl9m:Z:ddl;mm?Z?dZ@e jAdkZBe jAdkZCe jAdkZDeCsddlEZEeEFyddlmGZGWn"eHk rddl5mGZGYnXde$ejIe&ddddZJeCreKedZJe)dZLe)dZMeNZOePe jQRdZSeKe jTddpde jTjU odePe jQRd ZVd!d"eWdd#DZXd$d"eWdd%DeYd&hBZZd'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8eYd9hZ[eXeZAe[AZ\Gd:d;d;Z]Gdd?d@gZ^e8e'e8e$e^fdAdBdCZ_e$ejdDdEdFZ`e1jadGdGdGdHGdIdJdJZbeecebfdDdKdLZdde$ejIdMddNdOZede$ejIejIddPdQZfeePdRdSdTZge1jadGdGdGdHGdUdVdVZhejidWdXecehdYdZd[Zjdee$ece$ecd\d]d^ZkdecePececd_d`daZlGdbdcdce6ZmGdddedeeeLZnenZoyddflpmnZqeSsNeqZnWneHk rfYnXdgZrdhZse terZue jtese jvdiZwe terxdjZye jtesxdje jvdiZze%ece%e{e$e*ece{fePdkdldmZ|e}e|eueyZ~e}e|ewezZe$e*ece{eefePdndodpZejdDdqdrZdadsaecdDdtduZdvdwZdxdyZdzd{ZGd|d}d}ZGd~ddeGdZGdddeZGdddeZGddde0jZGdddZdeLddddZdeddddZGddde#ecefZdS)zVarious helper functionsN) namedtuple)suppress)ceil)Path) TracebackType)AnyCallableDict GeneratorGenericIterableIteratorListMappingOptionalPatternSetTupleTypeTypeVarUnioncast)quote) getproxies) MultiDictMultiDictProxy)Protocol)URL)hdrs) client_loggerinternal_logger)PathLike) BasicAuth ChainMapProxy))r%)r%)ContextManagerzasyncio.Task[Any])loopreturncCsttj|}dd|DS)NcSsh|]}|s|qS)done).0tr,r,j/private/var/folders/7j/8686xlfs15q3tgljmghtvg0r0000gn/T/pip-target-isidps9b/lib/python/aiohttp/helpers.py Lszall_tasks..)listasyncioTask all_tasks)r*Ztasksr,r,r0r5Hsr5_T_SZAIOHTTP_NO_EXTENSIONSdev_modeFZPYTHONASYNCIODEBUGcCsh|] }t|qSr,)chr)r.ir,r,r0r1asr1cCsh|] }t|qSr,)r9)r.r:r,r,r0r1bs ()<>@,;:\"/[]?={} c@seZdZeddddZdS)noop)NNN)r+ccs dVdS)Nr,)selfr,r,r0 __await__~sznoop.__await__N)__name__ __module__ __qualname__r rSr,r,r,r0rQ}srQcsteZdZdZdeeeddfdd Zedeedddd Zedd eee dd d d Z edddZ Z S)r#z!Http basic authentication helper.latin1)loginpasswordencodingr+csB|dkrtd|dkr tdd|kr0tdt||||S)Nz"None is not allowed as login valuez%None is not allowed as password valuerEz5A ":" is not allowed in login (RFC 1945#section-11.1)) ValueErrorsuper__new__)clsrYrZr[) __class__r,r0r^szBasicAuth.__new__) auth_headerr[r+cCsy|dd\}}Wntk r0tdYnX|dkrJtd|ytj|ddd|}Wntjk rtd YnXy|d d\}}Wntk rtd YnX||||d S) zsz$proxies_from_env..cSsi|]\}}t||qSr,)r{)r.rrr,r,r0rsrz,HTTPS proxies %s are not supported, ignoringr) ritemsrschemer rhostauthenticatorsr#rrwr) Z proxy_urlsZ netrc_objstrippedretprotovalrrzZauth_from_netrcZloginsrZrYr,r,r0proxies_from_envs&      rzOptional[asyncio.Task[Any]]cCs"trtj|dStjj|dSdS)N)r*)PY_37r3 current_taskr4)r*r,r,r0rs rcCsB|dkrt}|s>tjdtdd|r>tjddd|S)Nz5The object should be created within an async functionr%) stacklevelT) stack_info) r3Zget_event_loopZ is_runningwarningswarnDeprecationWarningZ get_debugr!r)r*r,r,r0get_running_loops r)objr+cCs$ttdd}|dk r||SdSdS)NisasyncgenfunctionF)getattrinspect)rfuncr,r,r0r)s rc@s.eZdZUeed<eed<eed<ded<dS)MimeTypetypesubtypesuffixzMultiDictProxy[str] parametersN)rTrUrVrwrr,r,r,r0r1s r8)maxsize)mimetyper+c Cs|stdddttdS|d}t}xb|ddD]R}|sBq8ttttfd|krb|ddn|df\}}|| | dq8W|d }|d krd }d |krttttf|d dn|df\}}d |krttttf|d dn|df\}} t||| t|dS) aParses a MIME type into its components. mimetype is a MIME type string. Returns a MimeType object. Example: >>> parse_mimetype('text/html; charset=utf-8') MimeType(type='text', subtype='html', suffix='', parameters={'charset': 'utf-8'}) rW)rrrrrDrNrLz "r*z*/*rH+) rrrrerrrwaddrfstrip) rpartsparamsitemkeyvalueZfulltypemtypestyperr,r,r0parse_mimetype9s& ," .r)rdefaultr+cCs@t|dd}|rsz-content_disposition_header..)TOKENsetr\formatrrappendr) rrrrZlparamsrrZqvalZsparamsr,r,r0content_disposition_headerps rc@seZdZUeeefed<dS)_TSelf_cacheN)rTrUrVr rwrrr,r,r,r0rs rc@sVeZdZdZedefddddZd eee e eddd Z eedd d d Z dS)reifyaRUse as a class method decorator. It operates almost exactly like the Python `@property` decorator, but it puts the result of the method it decorates into the instance dict after the first call, effectively replacing the function it decorates with an instance variable. It is, in Python parlance, a data descriptor. .N)wrappedr+cCs||_|j|_|j|_dS)N)rrvrTr)rRrr,r,r0__init__szreify.__init__)instownerr+cCsdyeZdZedddZeeeeeeeddddZ dS)r0)r+cCs|S)Nr,)rRr,r,r0 __enter__cszTimerNoop.__enter__N)exc_typeexc_valexc_tbr+cCsdS)Nr,)rRr6r7r8r,r,r0__exit__fszTimerNoop.__exit__) rTrUrVr.r5rr BaseExceptionrr9r,r,r,r0r0bs  r0c@sfeZdZdZejddddZedddZe e e e e e e e e d d d Zddd d ZdS)r/z( Low resolution timeout context manager N)r*r+cCs||_g|_d|_dS)NF)r$_tasks _cancelled)rRr*r,r,r0rrszTimerContext.__init__)r+cCsBt|jd}|dkrtd|jr2|tjd|j||S)N)r*z4Timeout context manager should be used inside a task) rr$rr<cancelr3 TimeoutErrorr;r)rRtaskr,r,r0r5ws  zTimerContext.__enter__)r6r7r8r+cCs,|jr|j|tjkr(|jr(tjddS)N)r;popr3ZCancelledErrorr<r>)rRr6r7r8r,r,r0r9s  zTimerContext.__exit__cCs,|js(xt|jD] }|qWd|_dS)NT)r<rr;r=)rRr?r,r,r0rs zTimerContext.timeout)rTrUrVrvr3r2rr.r5rrr:rrr9rr,r,r,r0r/os r/c@seZdZejdddZdS) CeilTimeout)r+cCsh|jdk rdt|jd|_|jdkr*td|j}|j}||}|dkrRt|}|j||j|_ |S)N)r*z4Timeout context manager should be used inside a taskr) r#rr$Z_taskrrrrZ _cancel_taskZ_cancel_handler)rRrdelayrr,r,r0r5s   zCeilTimeout.__enter__N)rTrUrV async_timeoutrr5r,r,r,r0rAsrAc@steZdZedddgZdZdZeZe ddddZ e e dd d Z e e e dd d Ze e edd dZdS) HeadersMixin _content_type _content_dict_stored_content_typeN)rawr+cCs2||_|dkrd|_i|_nt|\|_|_dS)Nzapplication/octet-stream)rGrErFcgi parse_header)rRrHr,r,r0_parse_content_types z HeadersMixin._parse_content_type)r+cCs(|jtj}|j|kr"|||jS)z7The value of content part for Content-Type HTTP header.)_headersrr CONTENT_TYPErGrKrE)rRrHr,r,r0 content_types  zHeadersMixin.content_typecCs.|jtj}|j|kr"|||jdS)z7The value of charset part for Content-Type HTTP header.charset)rLrrrMrGrKrF)rRrHr,r,r0rOs  zHeadersMixin.charsetcCs&|jtj}|dk rt|SdSdS)z(The value of Content-Length HTTP header.N)rLrrCONTENT_LENGTHr)rRcontent_lengthr,r,r0rQszHeadersMixin.content_length)rTrUrV frozensetATTRSrErFsentinelrGrwrKpropertyrNrrOrrQr,r,r,r0rDs rDzasyncio.Future[_T])futresultr+cCs|s||dS)N)r- set_result)rVrWr,r,r0rXsrX)rVexcr+cCs|s||dS)N)r- set_exception)rVrYr,r,r0rZsrZc@seZdZdZeeeefddddZddddZ eed d d Z deeed d dZ e dddZ eedddZeed ddZedddZedddZdS)r$)_mapsN)mapsr+cCst||_dS)N)tupler[)rRr\r,r,r0rszChainMapProxy.__init__)r+cCstd|jdS)Nz4Inheritance class {} from ChainMapProxy is forbidden)rqrrT)r_r,r,r0__init_subclass__szChainMapProxy.__init_subclass__)rr+c Cs:x,|jD]"}y||Stk r(YqXqWt|dS)N)r[r)rRrmappingr,r,r0 __getitem__s   zChainMapProxy.__getitem__)rrr+cCs||kr||S|S)Nr,)rRrrr,r,r0rszChainMapProxy.getcCsttj|jS)N)lenrunionr[)rRr,r,r0__len__szChainMapProxy.__len__cCs*i}xt|jD]}||qWt|S)N)reversedr[updateiter)rRdr_r,r,r0__iter__szChainMapProxy.__iter__cstfdd|jDS)Nc3s|]}|kVqdS)Nr,)r.m)rr,r0rsz-ChainMapProxy.__contains__..)anyr[)rRrr,)rr0 __contains__szChainMapProxy.__contains__cCs t|jS)N)rjr[)rRr,r,r0__bool__szChainMapProxy.__bool__cCsdtt|j}d|dS)Nz, zChainMapProxy(r?)rmapreprr[)rRcontentr,r,r0__repr__ szChainMapProxy.__repr__)N)rTrUrV __slots__r rrwrrr^r`rrrcr rhobjectrrkrlrpr,r,r,r0r$sr$)N)N)N)N)T)rvr3rgrkrIr functoolsrrr~rresysrrr collectionsr contextlibrmathrpathlibrtypesrtypingrrr r r r r rrrrrrrrrr urllib.parserurllib.requestrrCattrZ multidictrrZtyping_extensionsrZyarlrrWrlogr r!Ztypedefsr"__all__ version_infoZPY_36rZPY_38Zidna_sslZpatch_match_hostnamer) ImportErrorr2r5rr6r7rrrTrrrZ NO_EXTENSIONSrignore_environmentDEBUGrangeZCHARr9ZCTLZ SEPARATORSrrQr#r{rsrrwrrrrr lru_cacherrrrrZreify_pyZ_helpersZreify_cZ _ipv4_patternZ _ipv6_patterncompileZ _ipv4_regex IGNORECASEZ _ipv6_regexriZ _ipv4_regexbZ _ipv6_regexbrrpartialrrrrrrrr rrrr!r"r.r0r/rrArDrXr:rZr$r,r,r,r0s     L              =(   /    ( . ,,