wceG ddlZddlZddlZddlmZmZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZddlmZddlmZddlmZddl m!Z!m"Z"m#Z#m$Z$dd l%m&Z&m'Z'dd l(m)Z)dd l*m+Z+dd l,m-Z-dd l.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddlm?Z?ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGdZHer5ee dge dfZIee e9e;ge dfZJee/ZKeeee/eLfZMedZNn eZIeZJeZKeeZMeZNedZOedZPGddeeeQe'efefZRGddeSZTeree eRge dfZUneZUGddeUZVy) N)partialupdate_wrapper) TYPE_CHECKINGAny AsyncIterator AwaitableCallableDictIterableIteratorListMappingMutableMappingOptionalSequenceTupleTypeTypeVarUnioncastoverload)Signal) FrozenList)hdrs)AbstractAccessLoggerAbstractMatchInfoAbstractRouterAbstractStreamWriter)DEBUGAppKey)RawRequestMessage) web_logger) StreamReader) Middleware)NotAppKeyWarning) AccessLogger)_fix_request_current_app)RequestHandler)Request)StreamResponse)AbstractRouteDef)Server)AbstractResource AbstractRouteDomain MaskDomainMatchedSubAppResourcePrefixedSubAppResource UrlDispatcher) Application CleanupErrorr5_T_Uc\eZdZegdZeddddddddejdee d e e d ee e efd ed eej"d eddfdZdedddfdZer de deddffd ZdedefdZedeedefdZede defdZdee eefdefdZdVdZedeededdfdZ ede deddfdZ dee eefdeddfdZ dee eefddfd Z!defd!Z"de#ee eeffd"Z$edWdeed#ddeefd$Z%edeed#e&deee&ffd%Z%edWde d#edefd&Z%dXdee eefd#edefd'Z%e'dej"fd(Z(d eej"ddfd)Z)e'defd*Z*dVd+Z+e'defd,Z,dVd-Z-e'defd.Z.dYd0Z/d1e d/dde0fd2Z1d3e2ge0fd/dde0fd4Z3d5e d/dde0fd6Z4d7e e5de6e7fd8Z8e'de9fd9Z:e'de;fd:Ze'dZd=Z?e'de fd>Z@e'deAfd?ZBdeCd@d eej"dAeeDdBedeEfdCZFdeCd@d eej"dAeeDdBedeEfdDZGdVdEZHdVdFZIdVdGZJeKfdHeLdIeMdJeNdKeOdLdMdNeeKdeKfdOZPde#eQe effdPZRdQeKdeSfdRZTd[dSZUde fdTZVdefdUZWxZXS)\r5)logger_debug_router_loop _handler_args _middlewares_middlewares_handlers_run_middlewares_state_frozen _pre_frozen_subapps_on_response_prepare _on_startup _on_shutdown _on_cleanup_client_max_size _cleanup_ctxNi.)r:router middlewares handler_argsclient_max_sizeloopdebugr:rMrNrOrPrQrRreturnc"| t}ntjdtdt |t sJ||tjdtd|durtjdtd||_||_||_||_ ||_ t||_ d|_ d|_i|_d|_d|_g|_t'||_t'||_t'||_t'||_t1|_|j*j5|j2j*|j.j5|j2j.||_y)Nzrouter argument is deprecated stacklevelzloop argument is deprecated.zdebug argument is deprecatedF)r4warningswarnDeprecationWarning isinstancerr;r<r=r>r:rr?r@rArBrCrDrErrFrGrHrICleanupContextrKappendrJ)selfr:rMrNrOrPrQrRs 1/usr/lib/python3/dist-packages/aiohttp/web_app.py__init__zApplication.__init__isZ >"_F MM/1CPQ &.19691   MM-/Aa    MM.0Bq  &,  ) *4[*A<@"04=?   "$ 8>t !'-d|(.t '-d|*,  1 1 = =>  1 1 = => /clscntjdj|jtdy)Nz8Inheritance class {} from web.Application is discouragedrV)rXrYformat__name__rZ)rbs r___init_subclass__zApplication.__init_subclass__s'  #VCLL1   ranamevalc||jvr+tjdj|tdt |||y)Nz:Setting custom web.Application.{} attribute is discouragedrUrV)ATTRSrXrYrerZsuper __setattr__)r^rhri __class__s r_rmzApplication.__setattr__s@4::% %%+VD\&  G c *raotherc ||uSNrL)r^ros r___eq__zApplication.__eq__s u}rakeycyrqrLr^rss r_ __getitem__zApplication.__getitem__ racyrqrLrus r_rvzApplication.__getitem__rwrac |j|Srq)rBrus r_rvzApplication.__getitem__s{{3racV|jrtjdtdyy)Nz=Changing state of started or joined application is deprecatedrdrV)rCrXrYrZr^s r_ _check_frozenzApplication._check_frozens# << MMR"  ravaluecyrqrLr^rsr}s r_ __setitem__zApplication.__setitem__rwracyrqrLrs r_rzApplication.__setitem__rwrac|jt|tstjdt d||j |<y)NzIt is recommended to use web.AppKey instances for keys. https://docs.aiohttp.org/en/stable/web_advanced.html#application-s-configrU)categoryrW)r|r[r!rXrYr&rBrs r_rzApplication.__setitem__sA #v& MM**  ! Crac>|j|j|=yrq)r|rBrus r_ __delitem__zApplication.__delitem__s  KK rac,t|jSrq)lenrBr{s r___len__zApplication.__len__s4;;rac,t|jSrq)iterrBr{s r___iter__zApplication.__iter__sDKK  radefaultcyrqrLr^rsrs r_getzApplication.getrwracyrqrLrs r_rzApplication.getrwracyrqrLrs r_rzApplication.getrwrac:|jj||Srq)rBrrs r_rzApplication.gets{{sG,,ractjdtdttj |j S)Nzloop property is deprecatedrUrV)rXrYrZrasyncioAbstractEventLoopr=r{s r_rQzApplication.loops.  35GTUVG--tzz::rac|tj}|j|j|ur td||_|jdur|j |_|j D]}|j|y)Nz8web.Application instance initialized with different loop.)rget_event_loopr= RuntimeErrorr; get_debugrE _set_loop)r^rQsubapps r_rzApplication._set_loops <))+D :: !djj&<J   ;;# ..*DKmm #F   T " #rac|jSrq)rDr{s r_ pre_frozenzApplication.pre_frozenrac~|jryd|_|jj|jj|jj|j j|j j|jj|jjt|j|_ |jrdnd|_ |jD]1}|j|jxs |j|_ 3y)NTF)rDr?freezer<rFrKrGrHrItuple_prepare_middlewarer@rNrArE pre_freezer^rs r_rzApplication.pre_freezes       "  !!((*   " !   " !%*4+C+C+E%F")-(8(8emm UF    $($9$9$TV=T=TD ! Urac|jSrq)rCr{s r_frozenzApplication.frozen1 ||rac|jry|jd|_|jD]}|jyNT)rCrrErrs r_rzApplication.freeze5s9 <<   mm F MMO racRtjdtd|jS)Nzdebug property is deprecatedrUrV)rXrYrZr;r{s r_rRzApplication.debug>s 46HUVW{{rarcVdtddffd }|d|d|dy)NsignamerScht|dfd }t|}|j|y)NcDKjd{y7wrq)send)apprsubsigs r_handlerzEApplication._reg_subapp_signals..reg_handler..handlerGskk&)))s   )rr5rSN)getattrr])rrappsigrr^rs @r_ reg_handlerz4Application._reg_subapp_signals..reg_handlerDs.VW-F *T7+F MM' "ra on_startup on_shutdown on_cleanup)str)r^rrs`` r__reg_subapp_signalszApplication._reg_subapp_signalsCs0 # # # L!M"L!raprefixct|ts td|jd}|s t dt t ||}|j||S)NzPrefix must be str/zPrefix cannot be empty)r[r TypeErrorrstrip ValueErrorrr3 _add_subapp)r^rrfactorys r_ add_subappzApplication.add_subappQsW&#&01 1s#56 60&&A00raresource_factorycl|jr td|jr td|}|jj||j ||j j ||j|j|j|j|S)Nz0Cannot add sub application to frozen applicationzCannot add frozen application) rrrMregister_resourcerrEr]rr=r)r^rrresources r_rzApplication._add_subappZs ;;QR R ==>? ?#% %%h/   ( V$ :: !   TZZ (radomainct|ts tdd|vr t|}n t |}t t ||}|j||S)NzDomain must be str*)r[rrr1r0rr2r)r^rrrulers r_ add_domainzApplication.add_domainjsT&#&01 1 F]%f-D&>D/v>00raroutesc8|jj|Srq)rM add_routes)r^rs r_rzApplication.add_routests{{%%f--rac|jSrq)rFr{s r_on_response_preparezApplication.on_response_preparews(((rac|jSrq)rGr{s r_rzApplication.on_startup{rrac|jSrq)rHr{s r_rzApplication.on_shutdown   rac|jSrq)rIr{s r_rzApplication.on_cleanuprrac|jSrq)rKr{s r_ cleanup_ctxzApplication.cleanup_ctxrrac|jSrq)r<r{s r_rMzApplication.routerrrac|jSrq)r?r{s r_rNzApplication.middlewaresrrarQaccess_log_classrkwargsc t|tstdj||j ||j |j |d<||d<|jr'|jjD] \}}|||< t|jf|j|jd|S)NzMaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got {}rRr)request_factoryrQ) issubclassrrrerrr;r>itemsr-_handle _make_requestr=)r^rQrrkvs r_ _make_handlerzApplication._make_handlers*,@A;;A6BR;S  t ++w%5!"   **002 1q   LL  ..    rac dtjdtd|jd||d|S)NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrUrVrrL)rXrYrZr)r^rQrrs r_ make_handlerzApplication.make_handlersC  W  "t!! (8 g  JQQRST&  h 't,d22sA3A5requestc*Ktj}|j}|jj |d{}|r*t |t stdj||j||jd}||_ |jjtj}|r;|j!|d{}|j"j%d{|~|j&}|j(rV|j*dddD]A}|j,D]0\} } | rt/t1| ||} | ||d{}2C||d{}|S7C777!7w)Nz9match_info should be AbstractMatchInfo instance, not {!r})r)rrrr<resolver[rrreadd_appr _match_infoheadersrrEXPECTexpect_handlerrdrainrrAappsr@rr) r^rrQrR match_inforespexpectrrr new_styles r_rzApplication._handless%%' <<//88 j*;<))/ ); 4 ($$T[[1 #227;;D..&&( ( ( < ((G$$%??4R40)idr{s r___repr__zApplication.__repr__'s D! A..racyrrLr{s r___bool__zApplication.__bool__*srarSN).rq)rr5rSN)rSr\)rSr5)Yrf __module__ __qualname__ frozensetrkr#loggingLoggerrr4r r%rrrintrrr`rrgr rmobjectboolrrrr!r7rvrr|rrrr rrr8propertyrQrrrrrrRrr.rr rrr,r r/r_RespPrepareSignalr _AppSignalrrrrrM _MiddlewaresrNr'rr-rrrrrr*r"r$r)rrrrr+rr rr __classcell__rns@r_r5r5Qs   E4",*.,.48&485050' 50 j) 50 wsCx01 5050w0015050 50n tM2 t   +C +c +d +Ft vbz b   s s   uS&*_5 #  vbz "    s 3 4   !uS&*_5 !c !d !uS&*_5$  !(5fSk)9#:;! vbz D 8B<   vbz B 5R=   s S 3  -uS&*_---s-;g//;;#hw'@'@A#d#$ D  U2t "11m1@P1 (-=)= >HU  11m1@P1.*:!;.]@S.)%7)) J  !Z!! J  !! !\!! 597C  w001 34      B597C  w001 34      $)* 6$& "  !  %  #  7m   & 3XeJ4D.E%F 3$W$$L/#/$rac(eZdZedeefdZy)r6rScJttt|jdS)Nr)rr BaseExceptionargsr{s r_ exceptionszCleanupError.exceptions/sD'166raN)rfrrrr r#r%rLrar_r6r6.s  7D/77rar6c@eZdZdfd ZdeddfdZdeddfdZxZS)r\rSNc0t|g|_yrq)rlr`_exits)r^rns r_r`zCleanupContext.__init__;s 13 rarcK|D]K}||j}|jd{|jj|My7"wrq) __aiter__ __anext__r(r])r^rcbits r_rGzCleanupContext._on_startup?sK #BC""$B,,. KK  r " # s/AA#AcXKg}t|jD]8} |jd{|jt |d:|rt|dk(r|dtd|y7E#t $rYjt $r}|j|Yd}~d}~wwxYww)Nz has more than one 'yield'rrz Multiple errors on cleanup stage) rr(r+r]rStopAsyncIteration Exceptionrr6)r^rerrorsr-excs r_rIzCleanupContext._on_cleanupEs4;;' QB Qlln$$  lbV3M+NOP Q 6{aQi"#EvNN %%  # c"" #sJB*A9A7A9AB*7A99 B'B*B' B"B*"B''B*r)rfrrr`r5rGrIrr s@r_r\r\:s14#[#T# O[OTOrar\)WrrrX functoolsrrtypingrrrrr r r r r rrrrrrrrrr aiosignalr frozenlistrrabcrrrrhelpersr r! http_parserr"logr#streamsr$typedefsr%web_exceptionsr&web_logr'web_middlewaresr( web_protocolr) web_requestr* web_responser+ web_routedefr, web_serverr-web_urldispatcherr.r/r0r1r2r3r4__all__rrrr_MiddlewaresHandlers_Subappsr7r8rr5rr6_CleanupContextBaser\rLrar_rKs-,! #*! ,!5( (* *-)D/!ABCJ'>)BIdO)S TUj)L#HU:t3C-D$EFM"HJL#H-H T] T]Z.sF3K'7!8#!=>Zz7<7 $X{m]4=P.P%QR$O(Ora