Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/web_app.cpython-35.opt-1.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}|dk	r7tjdtdd||_||_||_||_||_t	||_
d|_d|_i|_
d|_g|_t||_t||_t||_t||_||_dS)Nzloop argument is deprecated
stacklevelr(F)rwarningswarnDeprecationWarningrrrrrr	rrrrrrrrr r!r"r#)selfrr$r%r&r'r)r*r0/web_app.py__init__s*											zApplication.__init__cCs&tjdj|jtdddS)Nz8Inheritance class {} from web.Application is discouragedr+r()r,r-format__name__r.)clsr0r0r1__init_subclass__As	zApplication.__init_subclass__csE||jkr.tjdj|tddtj||dS)Nz:Setting custom web.Application.{} attribute is discouragedr+r()ATTRSr,r-r3r.super__setattr__)r/nameval)	__class__r0r1r9GszApplication.__setattr__cCs
||kS)Nr0)r/otherr0r0r1__eq__QszApplication.__eq__cCs|j|S)N)r)r/keyr0r0r1__getitem__TszApplication.__getitem__cCs#|jrtjdtdddS)Nz=Changing state of started or joined application is deprecatedr+)rr,r-r.)r/r0r0r1
_check_frozenWs		zApplication._check_frozencCs|j||j|<dS)N)rBr)r/r?valuer0r0r1__setitem__^s
zApplication.__setitem__cCs|j|j|=dS)N)rBr)r/r?r0r0r1__delitem__bs
zApplication.__delitem__cCs
t|jS)N)lenr)r/r0r0r1__len__fszApplication.__len__cCs
t|jS)N)iterr)r/r0r0r1__iter__iszApplication.__iter__cCs|jS)N)r)r/r0r0r1r)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)r/r)subappr0r0r1rLqs		zApplication._set_loopcCs|jS)N)r)r/r0r0r1frozenszApplication.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)r/rMr0r0r1rOs		






zApplication.freezecCs|jS)N)r)r/r0r0r1r*szApplication.debugcs7fdd}|d|d|ddS)NcsDt|fdd}t|}|j|dS)NcsjIdHdS)N)send)app)rMsubsigr0r1handlerszEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handler)getattrappend)ZsignamerUZappsig)r/rM)rTr1reg_handlersz4Application._reg_subapp_signals.<locals>.reg_handler
on_startupon_shutdown
on_cleanupr0)r/rMrXr0)r/rMr1_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])
rNrKendswith
ValueErrorrr$Zregister_resourcer\rrWrOrrL)r/prefixrMZresourcer0r0r1
add_subapps"			

zApplication.add_subappcCs|jS)N)r)r/r0r0r1on_response_prepareszApplication.on_response_preparecCs|jS)N)r )r/r0r0r1rYszApplication.on_startupcCs|jS)N)r!)r/r0r0r1rZszApplication.on_shutdowncCs|jS)N)r")r/r0r0r1r[szApplication.on_cleanupcCs|jS)N)r)r/r0r0r1r$szApplication.routercCs|jS)N)r)r/r0r0r1r%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_factoryrer))
issubclassr	TypeErrorr3rLrOr*ritemsr_handle
_make_requestr))r/r)rekwargskvr0r0r1make_handlers


	zApplication.make_handlercs|jj|IdHdS)zmCauses on_startup signal

        Should be called in the event loop along with the request handler.
        N)rYrR)r/r0r0r1startupszApplication.startupcs|jj|IdHdS)zMCauses on_shutdown signal

        Should be called before cleanup()
        N)rZrR)r/r0r0r1shutdownszApplication.shutdowncs|jj|IdHdS)zLCauses on_cleanup signal

        Should be called after shutdown()
        N)r[rR)r/r0r0r1cleanupszApplication.cleanupc	Cs%|||||||jd|jS)Nr')rr#)r/messageZpayloadprotocolwriterZtask_clsr0r0r1rj	s	zApplication._make_requestccsxgt|jD]V}t|dddkr<|dfVqtjdj|tdd|dfVqWt|dfVdS)NZ__middleware_version__rTz1old-style middleware "{!r}" deprecated, see #2252r+r(F)reversedrrVr,r-r3r.r
)r/mr0r0r1rQs
zApplication._prepare_middlewarec	s|jj|IdH}|j|d}||_|jjtj}|rt|j|IdH}|j	j
IdH|dkr
|j}|jrxg|j
dddD]O}xF|jD];\}}|rt|d|}q|||IdH}qWqW||IdH}|S)NrrUr_)rZresolveZadd_appZ_match_infoZheadersgetrZEXPECTZexpect_handlerrtZdrainrUrZappsrr)	r/ZrequestZ
match_infoZrespexpectrUrSrwZ	new_styler0r0r1ris$
				zApplication._handlecCs|S)zgunicorn compatibilityr0)r/r0r0r1__call__AszApplication.__call__cCsdjt|S)Nz<Application 0x{:x}>)r3id)r/r0r0r1__repr__EszApplication.__repr__i))r4
__module____qualname__	frozensetr7rr2r6r9r>r@rBrDrErGrIpropertyr)rLrNrOr*r\rcrdrYrZr[r$r%r
rnrorprqrrjrQrirzr|r0r0)r<r1rs^			
%)r)!rJr,collectionsr	functoolsrr^rabcrrrZ
frozenlistr	Zhelpersr
logrZsignalsrZweb_middlewaresr
Zweb_requestrZweb_responserZ
web_serverrZweb_urldispatcherrr__all__rr0r0r0r1<module>s 
Back to Directory File Manager