U '7`B@srddlZddlZddlZddlmZmZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddlm Z ddl!m"Z"dd l#m$Z$dd l%m&Z&dd l'm(Z(dd l)m*Z*dd l+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8ddl9m:Z:m;Z;mZ>m?Z?m@Z@dZAere(e dge dfZBe(e e2e4ge dfZCe e2ge e4fZDee e2eDge e4fe deDge eDffZEe eEZFeeeeEeGfZHedZIn e(ZBe(ZCe ZDe ZEe ZFeeZHeZIGdddeeJefZKGdddeLZMerZe e eKge dfZNne ZNGdddeNZOdS)N)partialupdate_wrapper) TYPE_CHECKINGAny AsyncIterator AwaitableCallableDictIterableIteratorListMappingMutableMappingOptionalSequenceTupleTypeUnioncast)hdrs)AbstractAccessLoggerAbstractMatchInfoAbstractRouterAbstractStreamWriter) FrozenList)DEBUG)RawRequestMessage) web_logger)Signal) StreamReader) AccessLogger)_fix_request_current_app)RequestHandler)Request)StreamResponse)AbstractRouteDef)Server)AbstractResource AbstractRouteDomain MaskDomainMatchedSubAppResourcePrefixedSubAppResource UrlDispatcher) Application CleanupErrorr/cspeZdZeddddddddd d d d d dddddgZedddddddejee e e ee e efeeejeddddZedddddZere eddfdd Zeed!d"d#Ze ed$d%d&Zdd'd(d)Ze edd*d+d,Ze dd$d-d.Zed'd/d0Zee d'd1d2Z e!ejd'd3d4Z"eejdd5d6d7Z#e!ed'd8d9Z$dd'd:d;Z%e!ed'dd?Z'e!ed'd@dAZ(dddBdCdDZ)e de*dEdFdGZ+e,ge*fde*dHdIdJZ-e de*dKdLdMZ.e e/e0e1dNdOdPZ2e!e3d'dQdRZ4e!e5d'dSdTZ6e!e5d'dUdVZ7e!e5d'dWdXZ8e!dYd'dZd[Z9e!e d'd\d]Z:e!e;d'd^d_Zee?dadbdcZ@de=d`eejee>ee?dadddeZAdd'dfdgZBdd'dhdiZCdd'djdkZDeEfeFeGeHeIdleeEeEdmdndoZJeeKe efd'dpdqZLeEeMdrdsdtZNdd'dudvZOe d'dwdxZPed'dydzZQZRS){r/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.)r1router middlewares handler_argsclient_max_sizeloopdebug)r1rDrErFrGrHrIreturncCs|dkrt}ntjdtdd|dk r8tjdtdd|dk rPtjdtdd||_||_||_||_||_t ||_ d|_ d|_ i|_ d|_d|_g|_t||_t||_t||_t||_t|_|j|jj|j|jj||_dS)Nzrouter argument is deprecated stacklevelzloop argument is deprecated.zdebug argument is deprecatedF)r.warningswarnDeprecationWarningr2r3r4r5r1rr6r7r8r9r:r;r<rr=r>r?r@CleanupContextrBappendrA)selfr1rDrErFrGrHrIrCrCB/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/web_app.py__init__hsN      zApplication.__init__)clsrJcCstjd|jtdddS)Nz8Inheritance class {} from web.Application is discouragedrKrL)rNrOformat__name__rP)rVrCrCrT__init_subclass__szApplication.__init_subclass__)namevalrJcs2||jkr tjd|tddt||dS)Nz:Setting custom web.Application.{} attribute is discouragedrKrL)ATTRSrNrOrWrPsuper __setattr__)rSrZr[ __class__rCrTr^s zApplication.__setattr__)otherrJcCs||kSNrC)rSrarCrCrT__eq__szApplication.__eq__)keyrJcCs |j|Srb)r9rSrdrCrCrT __getitem__szApplication.__getitem__rJcCs|jrtjdtdddS)Nz=Changing state of started or joined application is deprecatedrL)r:rNrOrPrSrCrCrT _check_frozens zApplication._check_frozen)rdvaluerJcCs|||j|<dSrbrjr9)rSrdrkrCrCrT __setitem__szApplication.__setitem__cCs||j|=dSrbrlrerCrCrT __delitem__szApplication.__delitem__cCs t|jSrb)lenr9rirCrCrT__len__szApplication.__len__cCs t|jSrb)iterr9rirCrCrT__iter__szApplication.__iter__cCstjdtddttj|jS)Nzloop property is deprecatedrKrL)rNrOrPrasyncioAbstractEventLoopr4rirCrCrTrHszApplication.loop)rHrJcCs`|dkrt}|jdk r,|j|k r,td||_|jdkrF||_|jD]}||qLdS)Nz8web.Application instance initialized with different loop.)rsget_event_loopr4 RuntimeErrorr2 get_debugr< _set_loop)rSrHsubapprCrCrTrxs   zApplication._set_loopcCs|jSrb)r;rirCrCrT pre_frozenszApplication.pre_frozencCs|jr dSd|_|j|j|j|j|j|j|jt | |_ |j rndnd|_ |jD]}||j p|j |_ qzdS)NTF)r;r6freezer3r=rBr>r?r@tuple_prepare_middlewarer7rEr8r< pre_freezerSryrCrCrTr~s        zApplication.pre_freezecCs|jSrb)r:rirCrCrTfrozen szApplication.frozencCs0|jr dS|d|_|jD] }|qdSNT)r:r~r<r{rrCrCrTr{ s  zApplication.freezecCstjdtdd|jS)Nzdebug property is deprecatedrKrL)rNrOrPr2rirCrCrTrIszApplication.debug)ryrJcs2tddfdd }|d|d|ddS)N)signamerJcs8t|dddfdd }t|}||dS)Nr/apprJcsIdHdSrb)send)r)rysubsigrCrThandlerszEApplication._reg_subapp_signals..reg_handler..handler)getattrrR)rrZappsigr)rrT reg_handlers  z4Application._reg_subapp_signals..reg_handler on_startup on_shutdown on_cleanup)str)rSryrrCrrT_reg_subapp_signalss zApplication._reg_subapp_signals)prefixryrJcCs@t|tstd|d}|s(tdtt||}|||S)NzPrefix must be str/zPrefix cannot be empty) isinstancer TypeErrorrstrip ValueErrorrr- _add_subapp)rSrryfactoryrCrCrT add_subapp)s   zApplication.add_subapp)resource_factoryryrJcCsf|jrtd|jrtd|}|j||||j|||jdk rb| |j|S)Nz0Cannot add sub application to frozen applicationzCannot add frozen application) rrvrDZregister_resourcerr<rRr~r4rx)rSrryresourcerCrCrTr2s     zApplication._add_subapp)domainryrJcCsFt|tstdnd|kr&t|}nt|}tt||}|||S)NzDomain must be str*)rrrr+r*rr,r)rSrryZrulerrCrCrT add_domainBs    zApplication.add_domain)routesrJcCs |j|Srb)rD add_routes)rSrrCrCrTrLszApplication.add_routescCs|jSrb)r=rirCrCrTon_response_prepareOszApplication.on_response_preparecCs|jSrb)r>rirCrCrTrSszApplication.on_startupcCs|jSrb)r?rirCrCrTrWszApplication.on_shutdowncCs|jSrb)r@rirCrCrTr[szApplication.on_cleanuprQcCs|jSrb)rBrirCrCrT cleanup_ctx_szApplication.cleanup_ctxcCs|jSrb)r3rirCrCrTrDcszApplication.routercCs|jSrb)r6rirCrCrTrEgszApplication.middlewaresrHaccess_log_class)rHrkwargsrJcKszt|tstd|||||j|d<||d<|jr^|jD]\}}|||<qLt |j f|j |j d|S)NzMaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got {}rIr)Zrequest_factoryrH) issubclassrrrWrxr{r2r5itemsr'_handle _make_requestr4)rSrHrrkvrCrCrT _make_handlerks*    zApplication._make_handlercKs&tjdtdd|jf||d|S)NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrKrLr)rNrOrPr)rSrHrrrCrCrT make_handlerszApplication.make_handlercs|j|IdHdS)zmCauses on_startup signal Should be called in the event loop along with the request handler. N)rrrirCrCrTstartupszApplication.startupcs|j|IdHdS)zMCauses on_shutdown signal Should be called before cleanup() N)rrrirCrCrTshutdownszApplication.shutdowncs|j|IdHdS)zLCauses on_cleanup signal Should be called after shutdown() N)rrrirCrCrTcleanupszApplication.cleanupzasyncio.Task[None])messagepayloadprotocolwritertask_clsrJc Cs|||||||j|jdS)N)rG)r4rA)rSrrrrrrrCrCrTrs zApplication._make_requestccs^t|jD]@}t|dddkr*|dfVq tjd|tdd|dfVq t|dfVdS)NZ__middleware_version__rTz1old-style middleware "{!r}" deprecated, see #2252rKrLF)reversedr6rrNrOrWrPr")rSmrCrCrTr}s  zApplication._prepare_middleware)requestrJc st}|}|j|IdH}|r>t|ts>td|| || d}||_ |j tj}|r||IdH}|jIdH|dkr|j}|jr|jdddD]<}|jD]0\} } | rtt| |d|}q| ||IdH}qq||IdH}|S)Nz9match_info should be AbstractMatchInfo instance, not {!r})r)rsrurwr3ZresolverrrrWZadd_appr{Z _match_infoZheadersgetrZEXPECTZexpect_handlerrZdrainrr8Zappsr7rr) rSrrHrIZ match_infoZrespexpectrrrZ new_stylerCrCrTrs>   zApplication._handlecCs|S)zgunicorn compatibilityrCrirCrCrT__call__szApplication.__call__cCsdt|S)Nz)rWidrirCrCrT__repr__szApplication.__repr__cCsdSrrCrirCrCrT__bool__szApplication.__bool__)SrX __module__ __qualname__ frozensetr\rloggingZLoggerrr.r _Middlewarer rrintrsrtrUrrYrr^objectboolrcrfrjrmrnrpr rrpropertyrHrxrzr~rr{rIrr(rrrrr&r r)r_RespPrepareSignalr _AppSignalrrrrrD _MiddlewaresrEr!rr'rrrrrr$rr r#rrrr}r%rrrr __classcell__rCrCr_rTr/Ps 7      !  &c@s"eZdZeeedddZdS)r0rgcCs |jdS)Nr)argsrirCrCrT exceptionsszCleanupError.exceptionsN)rXrrrr BaseExceptionrrCrCrCrTr0sr0csBeZdZddfdd ZeddddZedddd ZZS) rQNrgcstg|_dSrb)r]rU_exitsrir_rCrTrUs zCleanupContext.__init__rcs4|D]*}||}|IdH|j|qdSrb) __aiter__ __anext__rrR)rSrcbitrCrCrTr>s zCleanupContext._on_startupc sg}t|jD]j}z|IdHWn>tk r8Yqtk rb}z||W5d}~XYqX|t|dq|rt|dkr|dn td|dS)Nz has more than one 'yield'rrz Multiple errors on cleanup stage) rrrStopAsyncIteration ExceptionrRrvror0)rSrerrorsrexcrCrCrTr@s  zCleanupContext._on_cleanup)rXrrrUr/r>r@rrCrCr_rTrQsrQ)PrsrrN functoolsrrtypingrrrrrr r r r r rrrrrrrrabcrrrrZ frozenlistrZhelpersrZ http_parserrlogrZsignalsrZstreamsr Zweb_logr!Zweb_middlewaresr"Z web_protocolr#Z web_requestr$Z web_responser%Z web_routedefr&Z web_serverr'Zweb_urldispatcherr(r)r*r+r,r-r.__all__rrZ_HandlerrrrZ_MiddlewaresHandlersZ_Subappsrr/rvr0Z_CleanupContextBaserQrCrCrCrTsbL              $  5