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|jjsht |jj|j IdH|j|dS)N wait_closed) r _check_siter$ _unreg_siteclosehasattrr4shutdownr,AssertionErrorr!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*rErFrc sFtj||||d||_|dkr0|jr,dnd}||_||_||_dS)Nr'i i)superr/rAr"rBrCrD) r.r+rGrHr(r)r*rErF __class__rrr/Us zTCPSite.__init__rcCs8|jr dnd}|jdkrdn|j}ttj|||jdS)Nhttpshttpz0.0.0.0schemerGrH)r"rAr@rbuildrB)r.rOrGrrrr1nsz TCPSite.namec s\tIdHt}|jj}|dk s,t|j||j|j |j |j |j |j dIdH|_dS)N)sslr*rErF)rIr3asyncioget_event_loopr r,r: create_serverrArBr"r#rCrDr$r.loopr,rJrrr3ts z TCPSite.start)NN)rrrr<rr@r>r=r boolr/r?r1r3 __classcell__rrrJrrRs.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')rIr/rZ)r.r+r[r(r)r*rJrrr/s zUnixSite.__init__rcCs |jr dnd}|d|jdS)NrLrM://unix::)r"rZ)r.rOrrrr1sz UnixSite.namecsPtIdHt}|jj}|dk s,t|j||j|j |j dIdH|_ dS)N)rQr*) rIr3rRrSr r,r:Zcreate_unix_serverrZr"r#r$rUrJrrr3s zUnixSite.start)rrrr<r@r=rr r>r/r?r1r3rXrrrJrrsrcsVeZdZdZdddeeddfddZeed d d Zdd fd d Z Z S)rrYr%r(rN)r+r[r(rcs6t}t|tjstdtj||d||_dS)Nz8Named Pipes only available in proactorloop under windowsr^)rRrS isinstanceZProactorEventLoopr-rIr/rZ)r.r+r[r(rVrJrrr/s zNamedPipeSite.__init__rcCs|jSrrYr0rrrr1szNamedPipeSite.namecsNtIdHt}|jj}|dk s,t|||jIdH}|d|_ dS)Nr) rIr3rRrSr r,r:Zstart_serving_piperZr$)r.rVr,r$rJrrr3s  zNamedPipeSite.start) rrrr<r@r=r/r?r1r3rXrrrJrrs 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'rLrMAF_UNIXr\r]rN) rIr/r`r"r8socketZfamilyrc getsocknamer@rrPra) r.r+rbr(r)r*rOr1rGrHrJrrr/s zSockSite.__init__rcCs|jSr)rar0rrrr1sz SockSite.namecsPtIdHt}|jj}|dk s,t|j||j|j |j dIdH|_ dS)N)rbrQr*) rIr3rRrSr r,r:rTr`r"r#r$rUrJrrr3s zSockSite.start)rrrr<rer=rr r>r/r?r@r1r3rXrrrJrrsrc@seZdZdZddeeddddZeee dd d Z ee edd d Z ee edd dZddddZeddddZddddZee dddZeddddZeddddZeddddZeddddZdS) r_handle_signals_kwargsr$_sitesFhandle_signalsN)rlkwargsrcKs||_||_d|_g|_dSrrg)r.rlrmrrrr/szBaseRunner.__init__rcCs|jSr)r$r0rrrr,szBaseRunner.servercCsHg}|jD]8}|j}|dk r |j}|dk r |D]}||q.q |Sr)rjr$socketsappendrf)r.Zretsiter,rnrbrrr addressess zBaseRunner.addressescCs t|jSr)setrjr0rrrsitesszBaseRunner.sitescsXt}|jrDz |tjt|tjtWntk rBYnX| IdH|_ dSr) rRrSrhZadd_signal_handlersignalSIGINTrSIGTERMNotImplementedError _make_serverr$r.rVrrrsetupszBaseRunner.setupcsdSrrr0rrrr9szBaseRunner.shutdowncst}|jdkrdSt|jD]}|IdHq |IdHd|_|jrz|t j |t j Wnt k r~YnXdSr) rRrSr$listrjr;_cleanup_serverrhZremove_signal_handlerrtrurvrw)r.rVrprrrcleanups  zBaseRunner.cleanupcsdSrrr0rrrrx0szBaseRunner._make_servercsdSrrr0rrrr|4szBaseRunner._cleanup_server)rprcCs.||jkrtd|d||j|dS)NSite z! is already registered in runner )rjr-ror.rprrrr28s zBaseRunner._reg_sitecCs"||jkrtd|d|dSNr~z is not registered in runner )rjr-rrrrr5=s zBaseRunner._check_sitecCs.||jkrtd|d||j|dSr)rjr-removerrrrr6As zBaseRunner._unreg_site)rrrr<rWrr/r?rr r,rrqrr rsrzrr9r}rxr|r2r5r6rrrrrs&  rcs`eZdZdZdZddeeeddfddZdd d d Z ed d d Z dd ddZ Z S)rzLow-level web server runner _web_serverFrkN) web_serverrlrmrc s tjfd|i|||_dS)Nrl)rIr/r)r.rrlrmrJrrr/LszServerRunner.__init__rcsdSrrr0rrrr9RszServerRunner.shutdowncs|jSrrr0rrrrxUszServerRunner._make_servercsdSrrr0rrrr|XszServerRunner._cleanup_server) rrr__doc__r<r rWrr/r9rxr|rXrrrJrrGsrcsreZdZdZdZddeeeddfddZe ed d d Z dd d d Z e d ddZ dd ddZZS)rzWeb Application runner_appFrkN)apprlrmrc s8tjfd|i|t|ts.td|||_dS)Nrlz?The first argument should be web.Application instance, got {!r})rIr/r_r TypeErrorformatr)r.rrlrmrJrrr/as zAppRunner.__init__rcCs|jSrrr0rrrrlsz AppRunner.appcs|jIdHdSr)rr9r0rrrr9pszAppRunner.shutdowncsRt}|j||jj|jIdH|j|jjfd|i|jS)NrV) rRrSrZ _set_loopZ on_startupZfreezeZstartupZ _make_handlerriryrrrrxss    zAppRunner._make_servercs|jIdHdSr)rr}r0rrrr||szAppRunner._cleanup_server)rrrrr<r rWrr/r?rr9r rxr|rXrrrJrr\s  r)!rRrtreabcrrtypingrrrrZyarlrZweb_appr rr rQr ImportErrorobject__all__ SystemExitrrr rrrrrrrrrrrs,     +2#)\