Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/web_app.cpython-35.pyc



Z'@sddlZddlZddlmZddlmZddlmZddlm	Z	m
Z
mZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZmZdZGdddeZ dS)N)MutableMapping)partial)hdrs)AbstractAccessLoggerAbstractMatchInfoAbstractRouter)
FrozenList)AccessLogger)
web_logger)Signal)_fix_request_current_app)Request)StreamResponse)Server)PrefixedSubAppResource
UrlDispatcherApplicationcsAeZdZeddddddddd	d
ddd
dddgZdedddfdddd\ddddddZddZfdd Zd!d"Z	d#d$Z
d%d&Zd'd(Zd)d*Z
d+d,Zd-d.Zed/d0Zd1d2Zed3d4Zd5d6Zed7d8Zd9d:Zd;d<Zed=d>Zed?d@ZedAdBZedCdDZedEdFZedGdHZdddIedJdKZdLdMZ dNdOZ!dPdQZ"e#dRdSZ$dTdUZ%dVdWZ&dXdYZ'dZd[Z(S)]rlogger_debug_router_loop
_handler_args_middlewares_middlewares_handlers_run_middlewares_state_frozen_subapps_on_response_prepare_on_startup_on_shutdown_on_cleanup_client_max_sizerouterNmiddlewareshandler_argsclient_max_sizeiloopdebug.cCs|dkrt}t|ts0t||dk	rRtjdtdd||_||_||_	||_
||_t||_
d|_d|_i|_d|_g|_t||_t||_t||_t||_||_dS)Nzloop argument is deprecated
stacklevelr(F)r
isinstancerAssertionErrorwarningswarnDeprecationWarningrrrrrr	rrrrrrrrr r!r"r#)selfrr$r%r&r'r)r*r2/web_app.py__init__s,											zApplication.__init__cCs&tjdj|jtdddS)Nz8Inheritance class {} from web.Application is discouragedr+r()r.r/format__name__r0)clsr2r2r3__init_subclass__As	zApplication.__init_subclass__csE||jkr.tjdj|tddtj||dS)Nz:Setting custom web.Application.{} attribute is discouragedr+r()ATTRSr.r/r5r0super__setattr__)r1nameval)	__class__r2r3r;GszApplication.__setattr__cCs
||kS)Nr2)r1otherr2r2r3__eq__QszApplication.__eq__cCs|j|S)N)r)r1keyr2r2r3__getitem__TszApplication.__getitem__cCs#|jrtjdtdddS)Nz=Changing state of started or joined application is deprecatedr+)rr.r/r0)r1r2r2r3
_check_frozenWs		zApplication._check_frozencCs|j||j|<dS)N)rDr)r1rAvaluer2r2r3__setitem__^s
zApplication.__setitem__cCs|j|j|=dS)N)rDr)r1rAr2r2r3__delitem__bs
zApplication.__delitem__cCs
t|jS)N)lenr)r1r2r2r3__len__fszApplication.__len__cCs
t|jS)N)iterr)r1r2r2r3__iter__iszApplication.__iter__cCs|jS)N)r)r1r2r2r3r)mszApplication.loopcCs|dkrtj}|jdk	rB|j|k	rBtd||_|jdkri|j|_x|jD]}|j|qsWdS)Nz8web.Application instance initialized with different loop.)asyncioZget_event_looprRuntimeErrorrZ	get_debugr	_set_loop)r1r)subappr2r2r3rNqs		zApplication._set_loopcCs|jS)N)r)r1r2r2r3frozenszApplication.frozencCs|jr
dSd|_|jj|jj|jj|jj|jj|jjt|j	|_
|jrdnd|_x0|j
D]%}|j|jp|j|_qWdS)NTF)rrfreezerrr r!r"tuple_prepare_middlewarerr%rr)r1rOr2r2r3rQs		






zApplication.freezecCs|jS)N)r)r1r2r2r3r*szApplication.debugcs7fdd}|d|d|ddS)NcsDt|fdd}t|}|j|dS)NcsjIdHdS)N)send)app)rOsubsigr2r3handlerszEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handler)getattrappend)ZsignamerWZappsig)r1rO)rVr3reg_handlersz4Application._reg_subapp_signals.<locals>.reg_handler
on_startupon_shutdown
on_cleanupr2)r1rOrZr2)r1rOr3_reg_subapp_signalss

zApplication._reg_subapp_signalscCs|jrtd|jr*td|jdrI|dd}|dkratdt||}|jj||j||jj	||j
|jdk	r|j|j|S)	Nz0Cannot add sub application to frozen applicationzCannot add frozen application/rzPrefix cannot be empty)r`r_)
rPrMendswith
ValueErrorrr$Zregister_resourcer^rrYrQrrN)r1prefixrOZresourcer2r2r3
add_subapps"			

zApplication.add_subappcCs|jS)N)r)r1r2r2r3on_response_prepareszApplication.on_response_preparecCs|jS)N)r )r1r2r2r3r[szApplication.on_startupcCs|jS)N)r!)r1r2r2r3r\szApplication.on_shutdowncCs|jS)N)r")r1r2r2r3r]szApplication.on_cleanupcCs|jS)N)r)r1r2r2r3r$szApplication.routercCs|jS)N)r)r1r2r2r3r%szApplication.middlewaresaccess_log_classc	Kst|ts$tdj||j||j|j|d<|jr{x'|jjD]\}}|||<qaWt	|j
d|jd|d|j|S)NzMaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got {}r*Zrequest_factoryrgr))
issubclassr	TypeErrorr5rNrQr*ritemsr_handle
_make_requestr))r1r)rgkwargskvr2r2r3make_handlers


	zApplication.make_handlercs|jj|IdHdS)zmCauses on_startup signal

        Should be called in the event loop along with the request handler.
        N)r[rT)r1r2r2r3startupszApplication.startupcs|jj|IdHdS)zMCauses on_shutdown signal

        Should be called before cleanup()
        N)r\rT)r1r2r2r3shutdownszApplication.shutdowncs|jj|IdHdS)zLCauses on_cleanup signal

        Should be called after shutdown()
        N)r]rT)r1r2r2r3cleanupszApplication.cleanupc	Cs%|||||||jd|jS)Nr')rr#)r1messageZpayloadprotocolwriterZtask_clsr2r2r3rl	s	zApplication._make_requestccsxgt|jD]V}t|dddkr<|dfVqtjdj|tdd|dfVqWt|dfVdS)NZ__middleware_version__rTz1old-style middleware "{!r}" deprecated, see #2252r+r(F)reversedrrXr.r/r5r0r
)r1mr2r2r3rSs
zApplication._prepare_middlewarec	sy|jj|IdH}t|ts2t||j||jd}||_|jj	t
j}|r|j|IdH}|j
jIdH|dkr2|j}|jr!xg|jdddD]O}xF|jD];\}}|rt|d|}q|||IdH}qWqW||IdH}t|tsutdj|jt|dd|jD|S)NrrWzIHandler {!r} should return response instance, got {!r} [middlewares {!r}]cSs&g|]}|jD]}|qqSr2)r%).0rUZ
middlewarer2r2r3
<listcomp><s	z'Application._handle.<locals>.<listcomp>ra)rZresolver,rr-Zadd_apprQZ_match_infoZheadersgetrZEXPECTZexpect_handlerrvZdrainrWrZappsrrrr5type)	r1ZrequestZ
match_infoZrespexpectrWrUryZ	new_styler2r2r3rks2

				zApplication._handlecCs|S)zgunicorn compatibilityr2)r1r2r2r3__call__AszApplication.__call__cCsdjt|S)Nz<Application 0x{:x}>)r5id)r1r2r2r3__repr__EszApplication.__repr__i))r6
__module____qualname__	frozensetr9rr4r8r;r@rBrDrFrGrIrKpropertyr)rNrPrQr*r^rerfr[r\r]r$r%r
rprqrrrsrrlrSrkrrr2r2)r>r3rs^			
%)r)!rLr.collectionsr	functoolsrr`rabcrrrZ
frozenlistr	Zhelpersr
logrZsignalsrZweb_middlewaresr
Zweb_requestrZweb_responserZ
web_serverrZweb_urldispatcherrr__all__rr2r2r2r3<module>s 
Back to Directory File Manager