wce-~ddlZddlZddlZddlZddlmZmZddlmZm Z m Z m Z m Z m Z ddlmZddlmZddlmZddlmZ dd lmZd ZGd d eZdd ZGddeZGddeZGddeZ GddeZ!GddeZ"GddeZ#Gdde#Z$Gdde#Z%y#e$reZYswxYw)N)ABCabstractmethod)Any AwaitableCallableListOptionalSet)URL)PathLike) Application)Server) SSLContext) BaseSiteTCPSiteUnixSite NamedPipeSiteSockSite BaseRunner AppRunner ServerRunner GracefulExitceZdZdZy)rr N)__name__ __module__ __qualname__code4/usr/lib/python3/dist-packages/aiohttp/web_runner.pyrr!s Dr rctN)rrr r!_raise_graceful_exitr$%s .r c veZdZdZddddddded eed ed df d Ze e d e fd Z e ddZ ddZy)r)_runner _ssl_context_backlog_serverN@Nshutdown_timeout ssl_contextbacklogrunnerrr-r.r/returnc|j td|dk7r%d}tj|td||_||_||_||_d|_ y)Nz(Call runner.setup() before making a siter*z,shutdown_timeout should be set on BaseRunner) stacklevel) server RuntimeErrorwarningswarnDeprecationWarning_shutdown_timeoutr&r'r(r))selfr0r-r.r/msgs r!__init__zBaseSite.__init__,s] == IJ J t #@C MM#1a @'7F $ ' 9= r cyr#rr;s r!namez BaseSite.name?s r cBK|jj|ywr#)r& _reg_siter?s r!startzBaseSite.startDs t$scK|jj||j|jj|jj |ywr#)r& _check_siter)close _unreg_siter?s r!stopz BaseSite.stopHsD   & << # LL      &sAA r1N)rrr __slots__floatr rintr=propertyrstrr@rCrHrr r!rr)sBI #',0 >> > j) >  > >& c  %%'r rceZdZdZ ddddddddddeed eed ed eed ed ee dee ddffdZ e defdZ dfd Z xZS)r)_host_port_reuse_address _reuse_portNr*r+)r-r.r/ reuse_address reuse_portr0rhostportr-r.r/rTrUr1ct |||||||_||jrdnd}||_||_||_y)Nr,i i)superr=rPr'rQrRrS) r;r0rVrWr-r.r/rTrU __class__s r!r=zTCPSite.__init__SsW  -#   <,,4$D +%r c|jrdnd}|jdn |j}ttj|||j S)Nhttpshttpz0.0.0.0schemerVrW)r'rPrNr buildrQ)r;r_rVs r!r@z TCPSite.namelsA --6 JJ.yDJJ399FDJJGHHr c `Kt|d{tj}|jj }|J|j ||j|j|j|j|j|jd{|_ y77 w)N)sslr/rTrU)rYrCasyncioget_event_loopr&r5 create_serverrPrQr'r(rRrSr)r;loopr5rZs r!rCz TCPSite.startrsgmo%%'$$!!!!//  JJ JJ!!MM--''0    s"B.B*B B.B, B.,B.)NNrI)rrrrJr rNrLrKrboolr=rMr@rC __classcell__rZs@r!rrPsCI #" & #',0(,%)&&sm&sm &  &j)&& ~&TN& &2IcII   r rc neZdZdZddddddded ed eed ed df fd Z e d e fdZ dfd Z xZS)r_pathr*Nr+r,r0rpathr-r.r/r1c:t|||||||_y)Nr,)rYr=rm)r;r0rnr-r.r/rZs r!r=zUnixSite.__init__s,  -#   r cF|jrdnd}|d|jdS)Nr\r]://unix::)r'rm)r;r_s r!r@z UnixSite.names( --6$**Q//r cKt|d{tj}|jj }|J|j ||j|j|jd{|_ y7s7 w)N)rbr/) rYrCrcrdr&r5create_unix_serverrmr'r(r)rfs r!rCzUnixSite.startsgmo%%'$$!!!!44  JJ!!MM 5    "B B A(B >B ? B  B rI)rrrrJr rKr rrLr=rMrNr@rCrirjs@r!rrs|I#',0   j)  "0c00   r rc \eZdZdZdddddededd ffd Zedefd Zd fd Z xZ S)rrlr*r-r0rrnr-r1Nctj}t|tjs t dt |||||_y)Nz8Named Pipes only available in proactorloop under windowsrw)rcrd isinstanceProactorEventLoopr6rYr=rm)r;r0rnr-rgrZs r!r=zNamedPipeSite.__init__sT%%' '++ M  2BC r c|jSr#rlr?s r!r@zNamedPipeSite.name zzr cKt|d{tj}|jj }|J|j ||jd{}|d|_y7a7w)Nr) rYrCrcrdr&r5start_serving_pipermr))r;rgr5r)rZs r!rCzNamedPipeSite.startsugmo%%'$$!!!// DJJ  qz   s"A;A7AA;'A9(A;9A;rI) rrrrJrNrKr=rMr@rCrirjs@r!rrsYIMQ " *- DI   c""r rc eZdZdZdddddddejd ed eed ed df fd Z e d e fdZ dfd Z xZS)r)_sock_namer*Nr+r,r0rsockr-r.r/r1clt |||||||_|jrdnd}t t dr;|j t jk(r|d|jd}||_ y|jdd\}} ttj||| }||_ y) Nr,r\r]AF_UNIXrqrrr3r^) rYr=rr'hasattrsocketfamilyr getsocknamerNr r`r) r;r0rr-r.r/r_r@rVrWrZs r!r=zSockSite.__init__s  -#    --6 69 %$++*GXXd&6&6&8%9;D ))+BQ/JD$syyTEFD r c|jSr#)rr?s r!r@z SockSite.namer|r cKt|d{tj}|jj }|J|j ||j|j|jd{|_ y7s7 w)N)rrbr/) rYrCrcrdr&r5rerr'r(r)rfs r!rCzSockSite.starts}gmo%%'$$!!!!// ):):DMM0    rurI)rrrrJrrKr rrLr=rMrNr@rCrirjs@r!rrs"I#',0mm   j)  0c  r rc eZdZdZddddedededd fd Zede e fd Z ede efd Z edeefd ZddZeddZddZede fdZeddZdedd fdZdedd fdZdedd fdZy )rshutdown_callback_handle_signals_kwargsr)_sitesr:Fr*)handle_signalsr-rr-kwargsr1Nc Xd|_||_||_d|_g|_||_yr#r)r;rr-rs r!r=zBaseRunner.__init__s3KO- )- &( !1r c|jSr#)r)r?s r!r5zBaseRunner.servers ||r cg}|jD]F}|j}||j}|!|D]!}|j|j #H|Sr#)rr)socketsappendr)r;retsiter5rrs r! addresseszBaseRunner.addresses scKK 7D\\F! ..& '7 4#3#3#567  7 r c,t|jSr#)setrr?s r!siteszBaseRunner.sitess4;;r c:Ktj}|jrI |jtj t |jtjt |jd{|_ y#t$rY)wxYw7wr#) rcrdradd_signal_handlersignalSIGINTr$SIGTERMNotImplementedError _make_serverr)r;rgs r!setupzBaseRunner.setupsz%%'    '' 7KL''8LM "..00 '  1s5!BAB ,B?B B BBBBc Kyw)z8Call any shutdown hooks to help server close gracefully.Nrr?s r!shutdownzBaseRunner.shutdown)scKt|jD]}|jd{|jr|jj |j d{|j r|j d{|jj |jd{|jd{d|_|jrTtj} |jtj|jtjyy77777u#t $rYywxYwwr#)listrrHr) pre_shutdownrrr:_cleanup_serverrrcget_running_loopremove_signal_handlerrrrr)r;rrgs r!cleanupzBaseRunner.cleanup-s % D))+    << LL % % '--/ ! !%%,,...,,''(>(>? ? ?""$$$   ++-D **6==9**6>>:   "/ ?$'  s{,EE?E.E/#EE ,E?E EE +E>EEE E E E EEEEc Kywr#rr?s r!rzBaseRunner._make_serverI  rc Kywr#rr?s r!rzBaseRunner._cleanup_serverMrrrcx||jvrtd|d||jj|y)NSite z! is already registered in runner )rr6rr;rs r!rBzBaseRunner._reg_siteQs9 4;; tf,MdVTU U 4 r cB||jvrtd|d|yNrz is not registered in runner )rr6rs r!rEzBaseRunner._check_siteVs, t{{ "tf,I$PQ Q #r cx||jvrtd|d||jj|yr)rr6removers r!rGzBaseRunner._unreg_siteZs9 t{{ "tf,I$PQ Q 4 r rI)rrrrJrhrKrr=rMr rr5rrr rrrrrrrrrBrErGrr r!rrs'I %"& 2 2 2  2  2( 49   s8}   1GG8 F    !h!4! RRTR!!T!r rc ZeZdZdZdZdddedededd ffd Zdd Z defd Z dd Z xZ S)rzLow-level web server runner _web_serverFr web_serverrrr1Nc 6t|dd|i|||_y)Nrr)rYr=r)r;rrrrZs r!r=zServerRunner.__init__es" AA&A%r c Kywr#rr?s r!rzServerRunner.shutdownk  rc"K|jSwr#rr?s r!rzServerRunner._make_servernss c Kywr#rr?s r!rzServerRunner._cleanup_serverqrrrI) rrr__doc__rJrrhrr=rrrrirjs@r!rr`sL% I=B& &59&MP& &   F  r rc peZdZdZdZdddedededd ffd Ze defd Z dd Z de fd Z ddZxZS)rzWeb Application runner_appFrapprrr1Nc t|dd|i|t|tst dj |||_y)Nrz?The first argument should be web.Application instance, got {!r}r)rYr=ryr TypeErrorformatr)r;rrrrZs r!r=zAppRunner.__init__zsH AA&A#{+%%+VC[  r c|jSr#rr?s r!rz AppRunner.apps yyr cTK|jjd{y7wr#)rrr?s r!rzAppRunner.shutdownsii  """ (&(c|Ktj}|jj||jjj |jj d{|jj |jjdd|i|jS7Fw)Nrgr) rcrdr _set_loop on_startupfreezestartup _make_handlerrrs r!rzAppRunner._make_servers%%' D! ##%ii!!! &tyy&&ADADLLAA "sA1B<3B:4AB<cTK|jjd{y7wr#)rrr?s r!rzAppRunner._cleanup_serversii!!!rrI)rrrrrJrrhrr=rMrrrrrrirjs@r!rrusi I;@  37 KN   [#BFB"r rrI)&rcrrr7abcrrtypingrrrrr r yarlr typedefsr web_apprrrrbr ImportErrorobject__all__ SystemExitrr$rrrrrrrrrr r!rs #@@   : $'s$'N/ h/ d# x# L"H">& x& Rm!m!` : *!" !"K JsB22B<;B<