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}ntjdtddt|ts2t||dk rJtjdtdd|dk rbtjdtdd||_||_||_ ||_ ||_ 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.warningswarnDeprecationWarning isinstancerAssertionErrorr2r3r4r5r1rr6r7r8r9r:r;r<rr=r>r?r@CleanupContextrBappendrA)selfr1rDrErFrGrHrIrCrCB/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/web_app.py__init__hsP      zApplication.__init__)clsrJcCstjd|jtdddS)Nz8Inheritance class {} from web.Application is discouragedrKrL)rNrOformat__name__rP)rXrCrCrV__init_subclass__szApplication.__init_subclass__)namevalrJcs2||jkr tjd|tddt||dS)Nz:Setting custom web.Application.{} attribute is discouragedrKrL)ATTRSrNrOrYrPsuper __setattr__)rUr\r] __class__rCrVr`s zApplication.__setattr__)otherrJcCs||kSNrC)rUrcrCrCrV__eq__szApplication.__eq__)keyrJcCs |j|Srd)r9rUrfrCrCrV __getitem__szApplication.__getitem__rJcCs|jrtjdtdddS)Nz=Changing state of started or joined application is deprecatedrL)r:rNrOrPrUrCrCrV _check_frozens zApplication._check_frozen)rfvaluerJcCs|||j|<dSrdrlr9)rUrfrmrCrCrV __setitem__szApplication.__setitem__cCs||j|=dSrdrnrgrCrCrV __delitem__szApplication.__delitem__cCs t|jSrd)lenr9rkrCrCrV__len__szApplication.__len__cCs t|jSrd)iterr9rkrCrCrV__iter__szApplication.__iter__cCstjdtddttj|jS)Nzloop property is deprecatedrKrL)rNrOrPrasyncioAbstractEventLoopr4rkrCrCrVrHszApplication.loop)rHrJcCs`|dkrt}|jdk r,|j|k r,td||_|jdkrF||_|jD]}||qLdS)Nz8web.Application instance initialized with different loop.)ruget_event_loopr4 RuntimeErrorr2 get_debugr< _set_loop)rUrHsubapprCrCrVrzs   zApplication._set_loopcCs|jSrd)r;rkrCrCrV 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_freezerUr{rCrCrVrs        zApplication.pre_freezecCs|jSrd)r:rkrCrCrVfrozen szApplication.frozencCs0|jr dS|d|_|jD] }|qdSNT)r:rr<r}rrCrCrVr} s  zApplication.freezecCstjdtdd|jS)Nzdebug property is deprecatedrKrL)rNrOrPr2rkrCrCrVrIszApplication.debug)r{rJcs2tddfdd }|d|d|ddS)N)signamerJcs8t|dddfdd }t|}||dS)Nr/apprJcsIdHdSrd)send)r)r{subsigrCrVhandlerszEApplication._reg_subapp_signals..reg_handler..handler)getattrrT)rrZappsigr)rrV reg_handlers  z4Application._reg_subapp_signals..reg_handler on_startup on_shutdown on_cleanup)str)rUr{rrCrrV_reg_subapp_signalss zApplication._reg_subapp_signals)prefixr{rJcCs@t|tstd|d}|s(tdtt||}|||S)NzPrefix must be str/zPrefix cannot be empty)rQr TypeErrorrstrip ValueErrorrr- _add_subapp)rUrr{factoryrCrCrV add_subapp)s   zApplication.add_subapp)resource_factoryr{rJcCsf|jrtd|jrtd|}|j||||j|||jdk rb| |j|S)Nz0Cannot add sub application to frozen applicationzCannot add frozen application) rrxrDZregister_resourcerr<rTrr4rz)rUrr{resourcerCrCrVr2s     zApplication._add_subapp)domainr{rJcCsFt|tstdnd|kr&t|}nt|}tt||}|||S)NzDomain must be str*)rQrrr+r*rr,r)rUrr{ZrulerrCrCrV add_domainBs    zApplication.add_domain)routesrJcCs |j|Srd)rD add_routes)rUrrCrCrVrLszApplication.add_routescCs|jSrd)r=rkrCrCrVon_response_prepareOszApplication.on_response_preparecCs|jSrd)r>rkrCrCrVrSszApplication.on_startupcCs|jSrd)r?rkrCrCrVrWszApplication.on_shutdowncCs|jSrd)r@rkrCrCrVr[szApplication.on_cleanuprScCs|jSrd)rBrkrCrCrV cleanup_ctx_szApplication.cleanup_ctxcCs|jSrd)r3rkrCrCrVrDcszApplication.routercCs|jSrd)r6rkrCrCrVrEgszApplication.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) issubclassrrrYrzr}r2r5itemsr'_handle _make_requestr4)rUrHrrkvrCrCrV _make_handlerks*    zApplication._make_handlercKs&tjdtdd|jf||d|S)NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrKrLr)rNrOrPr)rUrHrrrCrCrV make_handlerszApplication.make_handlercs|j|IdHdS)zmCauses on_startup signal Should be called in the event loop along with the request handler. N)rrrkrCrCrVstartupszApplication.startupcs|j|IdHdS)zMCauses on_shutdown signal Should be called before cleanup() N)rrrkrCrCrVshutdownszApplication.shutdowncs|j|IdHdS)zLCauses on_cleanup signal Should be called after shutdown() N)rrrkrCrCrVcleanupszApplication.cleanupzasyncio.Task[None])messagepayloadprotocolwritertask_clsrJc Cs|||||||j|jdS)N)rG)r4rA)rUrrrrrrrCrCrVrs zApplication._make_requestccs^t|jD]@}t|dddkr*|dfVq tjd|tdd|dfVq t|dfVdS)NZ__middleware_version__rTz1old-style middleware "{!r}" deprecated, see #2252rKrLF)reversedr6rrNrOrYrPr")rUmrCrCrVrs  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)rurwryr3ZresolverQrrrYZadd_appr}Z _match_infoZheadersgetrZEXPECTZexpect_handlerrZdrainrr8Zappsr7rr) rUrrHrIZ match_infoZrespexpectrrrZ new_stylerCrCrVrs>   zApplication._handlecCs|S)zgunicorn compatibilityrCrkrCrCrV__call__szApplication.__call__cCsdt|S)Nz)rYidrkrCrCrV__repr__szApplication.__repr__cCsdSrrCrkrCrCrV__bool__szApplication.__bool__)SrZ __module__ __qualname__ frozensetr^rloggingZLoggerrr.r _Middlewarer rrintrurvrWrr[rr`objectboolrerhrlrorprrr rtpropertyrHrzr|rrr}rIrr(rrrrr&r r)r_RespPrepareSignalr _AppSignalrrrrrD _MiddlewaresrEr!rr'rrrrrr$rr r#rrrrr%rrrr __classcell__rCrCrarVr/Ps 7      !  &c@s"eZdZeeedddZdS)r0ricCs |jdS)Nr)argsrkrCrCrV exceptionsszCleanupError.exceptionsN)rZrrrr BaseExceptionrrCrCrCrVr0sr0csBeZdZddfdd ZeddddZedddd ZZS) rSNricstg|_dSrd)r_rW_exitsrkrarCrVrWs zCleanupContext.__init__rcs4|D]*}||}|IdH|j|qdSrd) __aiter__ __anext__rrT)rUrcbitrCrCrVr>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 ExceptionrTrxrqr0)rUrerrorsrexcrCrCrVr@s  zCleanupContext._on_cleanup)rZrrrWr/r>r@rrCrCrarVrSsrS)PrurrN 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/rxr0Z_CleanupContextBaserSrCrCrCrVsbL              $  5