U '7`+@s4ddlZddlZddlZddlmZmZddlmZmZm Z m Z ddl m Z ddl mZddlmZzddlmZWnek reZYnXd ZGd d d eZdd d dZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZ dS)N)ABCabstractmethod)AnyListOptionalSet)URL) Application)Server) SSLContext) BaseSiteTCPSiteUnixSite NamedPipeSiteSockSite BaseRunner AppRunner ServerRunner GracefulExitc@seZdZdZdS)rr N)__name__ __module__ __qualname__coderrE/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/web_runner.pyrsrreturncCs tdSN)rrrrr_raise_graceful_exit#src@sjeZdZdZdddddeeeedddd Ze e e d d d Z e dd d dZ dd ddZdS)r )_runner_shutdown_timeout _ssl_context_backlog_serverN@Nshutdown_timeout ssl_contextbacklogr)runnerr(r)r*rcCs4|jdkrtd||_||_||_||_d|_dS)Nz(Call runner.setup() before making a site)server RuntimeErrorr r!r"r#r$)selfr+r(r)r*rrr__init__*s zBaseSite.__init__rcCsdSrrr.rrrname:sz BaseSite.namecs|j|dSr)r _reg_siter0rrrstart?szBaseSite.startcs|j||jdkr&|j|dS|jt|jdrL|jIdH|jIdH|jj|j IdH|j|dS)N wait_closed) r _check_siter$ _unreg_siteclosehasattrr4shutdownr,r!r0rrrstopCs     z BaseSite.stop)rrr __slots__floatrr intr/propertyrstrr1r3r:rrrrr 's" r c s~eZdZdZddddddddeeeeeeeeee ee dd fdd Z e ed d d Z dd fd d Z ZS)r)_host_port_reuse_address _reuse_portNr%r&)r(r)r* reuse_address reuse_portr) r+hostportr(r)r*rDrErc sFtj||||d||_|dkr0|jr,dnd}||_||_||_dS)Nr'i i)superr/r@r"rArBrC) r.r+rFrGr(r)r*rDrE __class__rrr/Us zTCPSite.__init__rcCs8|jr dnd}|jdkrdn|j}ttj|||jdS)Nhttpshttpz0.0.0.0schemerFrG)r"r@r?rbuildrA)r.rNrFrrrr1nsz TCPSite.namec sPtIdHt}|jj}|j||j|j|j |j |j |j dIdH|_ dS)N)sslr*rDrE)rHr3asyncioget_event_loopr r, create_serverr@rAr"r#rBrCr$r.loopr,rIrrr3tsz TCPSite.start)NN)rrrr;rr?r=r<r boolr/r>r1r3 __classcell__rrrIrrRs.rcsbeZdZdZdddddeeeeeddfdd Z e ed d d Z dd fd d Z Z S)r_pathr%Nr&r'r)r+pathr(r)r*rcstj||||d||_dS)Nr')rHr/rY)r.r+rZr(r)r*rIrrr/s zUnixSite.__init__rcCs |jr dnd}|d|jdS)NrKrL://unix::)r"rY)r.rNrrrr1sz UnixSite.namecsDtIdHt}|jj}|j||j|j|j dIdH|_ dS)N)rPr*) rHr3rQrRr r,Zcreate_unix_serverrYr"r#r$rTrIrrr3szUnixSite.start)rrrr;r?r<rr r=r/r>r1r3rWrrrIrrsrcsVeZdZdZdddeeddfddZeed d d Zdd fd d Z Z S)rrXr%r(rN)r+rZr(rcs6t}t|tjstdtj||d||_dS)Nz8Named Pipes only available in proactorloop under windowsr])rQrR isinstanceZProactorEventLoopr-rHr/rY)r.r+rZr(rUrIrrr/s zNamedPipeSite.__init__rcCs|jSrrXr0rrrr1szNamedPipeSite.namecsBtIdHt}|jj}|||jIdH}|d|_dS)Nr) rHr3rQrRr r,Zstart_serving_piperYr$)r.rUr,r$rIrrr3s zNamedPipeSite.start) rrrr;r?r<r/r>r1r3rWrrrIrrs rcsdeZdZdZdddddejeeeeddfdd Z e e d d d Z dd fd d Z ZS)r)_sock_namer%Nr&r'r)r+sockr(r)r*rc stj||||d||_|jr$dnd}ttdrT|jtjkrT|d|d}n(|dd\}} t t j ||| d}||_ dS) Nr'rKrLAF_UNIXr[r\rM) rHr/r_r"r8socketZfamilyrb getsocknamer?rrOr`) r.r+rar(r)r*rNr1rFrGrIrrr/s zSockSite.__init__rcCs|jSr)r`r0rrrr1sz SockSite.namecsDtIdHt}|jj}|j||j|j|j dIdH|_ dS)N)rarPr*) rHr3rQrRr r,rSr_r"r#r$rTrIrrr3szSockSite.start)rrrr;rdr<rr r=r/r>r?r1r3rWrrrIrrsrc@seZdZdZddeeddddZeee dd d Z ee edd d Z ee edd dZddddZeddddZddddZee dddZeddddZeddddZeddddZeddddZdS) r_handle_signals_kwargsr$_sitesFhandle_signalsN)rkkwargsrcKs||_||_d|_g|_dSrrf)r.rkrlrrrr/szBaseRunner.__init__rcCs|jSr)r$r0rrrr,szBaseRunner.servercCsHg}|jD]8}|j}|dk r |j}|dk r |D]}||q.q |Sr)rir$socketsappendre)r.Zretsiter,rmrarrr addressess zBaseRunner.addressescCs t|jSr)setrir0rrrsitesszBaseRunner.sitescsXt}|jrDz |tjt|tjtWntk rBYnX| IdH|_ dSr) rQrRrgZadd_signal_handlersignalSIGINTrSIGTERMNotImplementedError _make_serverr$r.rUrrrsetupszBaseRunner.setupcsdSrrr0rrrr9szBaseRunner.shutdowncst}|jdkrdSt|jD]}|IdHq |IdHd|_|jrz|t j |t j Wnt k r~YnXdSr) rQrRr$listrir:_cleanup_serverrgZremove_signal_handlerrsrtrurv)r.rUrorrrcleanups  zBaseRunner.cleanupcsdSrrr0rrrrw0szBaseRunner._make_servercsdSrrr0rrrr{4szBaseRunner._cleanup_server)rorcCs.||jkrtd|d||j|dS)NSite z! is already registered in runner )rir-rnr.rorrrr28s zBaseRunner._reg_sitecCs"||jkrtd|d|dSNr}z is not registered in runner )rir-r~rrrr5=s zBaseRunner._check_sitecCs.||jkrtd|d||j|dSr)rir-remover~rrrr6As zBaseRunner._unreg_site)rrrr;rVrr/r>rr r,rrprr rrryrr9r|rwr{r2r5r6rrrrrs&  rcs`eZdZdZdZddeeeddfddZdd d d Z ed d d Z dd ddZ Z S)rzLow-level web server runner _web_serverFrjN) web_serverrkrlrc s tjfd|i|||_dS)Nrk)rHr/r)r.rrkrlrIrrr/LszServerRunner.__init__rcsdSrrr0rrrr9RszServerRunner.shutdowncs|jSrrr0rrrrwUszServerRunner._make_servercsdSrrr0rrrr{XszServerRunner._cleanup_server) rrr__doc__r;r rVrr/r9rwr{rWrrrIrrGsrcsreZdZdZdZddeeeddfddZe ed d d Z dd d d Z e d ddZ dd ddZZS)rzWeb Application runner_appFrjN)apprkrlrc s8tjfd|i|t|ts.td|||_dS)Nrkz?The first argument should be web.Application instance, got {!r})rHr/r^r TypeErrorformatr)r.rrkrlrIrrr/as zAppRunner.__init__rcCs|jSrrr0rrrrlsz AppRunner.appcs|jIdHdSr)rr9r0rrrr9pszAppRunner.shutdowncsRt}|j||jj|jIdH|j|jjfd|i|jS)NrU) rQrRrZ _set_loopZ on_startupZfreezeZstartupZ _make_handlerrhrxrrrrwss    zAppRunner._make_servercs|jIdHdSr)rr|r0rrrr{|szAppRunner._cleanup_server)rrrrr;r rVrr/r>rr9r rwr{rWrrrIrr\s  r)!rQrsrdabcrrtypingrrrrZyarlrZweb_appr rr rPr ImportErrorobject__all__ SystemExitrrr rrrrrrrrrrrs,     +2#)\