§
    Æ! h5  ã                  óÐ   — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ  ej        de¦  «          G d	„ d
e¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚAny)ÚArbiter)ÚWorker)ÚConfig)ÚServerz˜The `uvicorn.workers` module is deprecated. Please use `uvicorn-worker` package instead.
For more details, see https://github.com/Kludex/uvicorn-worker.c                  ón   ‡ — e Zd ZU dZdddœZded<   dˆ fd„Zdˆ fd„Zdd„Zdd„Z	dd„Z
dd„Zdd„Zˆ xZS )ÚUvicornWorkerzv
    A worker class for Gunicorn that interfaces with an ASGI consumer callable,
    rather than a WSGI callable.
    Úauto©ÚloopÚhttpzdict[str, Any]ÚCONFIG_KWARGSÚargsr   ÚkwargsÚreturnÚNonec           	     óŒ  •—  t          ¦   «         j        |i |¤Ž t          j        d¦  «        }| j        j        j        |_        |                     | j        j        j        ¦  «         d|_	        t          j        d¦  «        }| j        j
        j        |_        |                     | j        j
        j        ¦  «         d|_	        d d | j        j        | j        | j        | j        | j        j        dœ}| j        j        rê| j        j                             d¦  «        | j        j                             d¦  «        | j        j                             d¦  «        | j        j                             d¦  «        | j        j                             d	¦  «        | j        j                             d
¦  «        | j        j                             d¦  «        dœ}|                     |¦  «         | j        j        d         j        r| j        j        d         j        |d<   |                     | j        ¦  «         t1          di |¤Ž| _        d S )Nzuvicorn.errorFzuvicorn.access)ÚappÚ
log_configÚtimeout_keep_aliveÚtimeout_notifyÚcallback_notifyÚlimit_max_requestsÚforwarded_allow_ipsÚkeyfileÚcertfileÚpasswordÚssl_versionÚ	cert_reqsÚca_certsÚciphers)Ússl_keyfileÚssl_certfileÚssl_keyfile_passwordr   Ússl_cert_reqsÚssl_ca_certsÚssl_ciphersÚbacklog© )ÚsuperÚ__init__ÚloggingÚ	getLoggerÚlogÚ	error_logÚhandlersÚsetLevelÚlevelÚ	propagateÚ
access_logÚcfgÚ	keepaliveÚtimeoutr   Úmax_requestsr   Úis_sslÚssl_optionsÚgetÚupdateÚsettingsÚvaluer   r   Úconfig)Úselfr   r   ÚloggerÚconfig_kwargsÚ
ssl_kwargsÚ	__class__s         €úIc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\uvicorn/workers.pyr,   zUvicornWorker.__init__   sþ  ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)åÔ" ?Ñ3Ô3ˆØœ(Ô,Ô5ˆŒØ�Š˜œÔ*Ô0Ñ1Ô1Ð1Ø ˆÔåÔ"Ð#3Ñ4Ô4ˆØœ(Ô-Ô6ˆŒØ�Š˜œÔ+Ô1Ñ2Ô2Ð2Ø ˆÔð ØØ"&¤(Ô"4Ø"œlØ#Ô3Ø"&Ô"3Ø#'¤8Ô#?ð
ð 
ˆð Œ8Œ?ð 
	-à#œxÔ3×7Ò7¸	ÑBÔBØ $¤Ô 4× 8Ò 8¸Ñ DÔ DØ(,¬Ô(<×(@Ò(@ÀÑ(LÔ(LØ#œxÔ3×7Ò7¸ÑFÔFØ!%¤Ô!5×!9Ò!9¸+Ñ!FÔ!FØ $¤Ô 4× 8Ò 8¸Ñ DÔ DØ#œxÔ3×7Ò7¸	ÑBÔBðð ˆJð × Ò  Ñ,Ô,Ð,àŒ8Ô˜YÔ'Ô-ð 	JØ'+¤xÔ'8¸Ô'CÔ'IˆM˜)Ñ$à×Ò˜TÔ/Ñ0Ô0Ð0åÐ-Ð-˜}Ð-Ð-ˆŒˆˆó    c                óz   •— | j                              ¦   «          t          ¦   «                              ¦   «          d S ©N)r@   Úsetup_event_loopr+   Úinit_process)rA   rE   s    €rF   rK   zUvicornWorker.init_processI   s3   ø€ ØŒ×$Ò$Ñ&Ô&Ð&Ý‰Œ×ÒÑÔÐÐÐrG   c                óÞ   — | j         D ]!}t          j        |t          j        ¦  «         Œ"t          j        t          j        | j        ¦  «         t          j        t          j        d¦  «         d S )NF)ÚSIGNALSÚsignalÚSIG_DFLÚSIGUSR1Úhandle_usr1Úsiginterrupt)rA   Úss     rF   Úinit_signalszUvicornWorker.init_signalsM   s^   € ð ”ð 	-ð 	-ˆAÝŒM˜!�Vœ^Ñ,Ô,Ð,Ð,åŒ•f”n dÔ&6Ñ7Ô7Ð7åÔ�FœN¨EÑ2Ô2Ð2Ð2Ð2rG   c                óŽ   — t          j        ¦   «         }|                     t          j        | j        t          j        d¦  «         dS )z¡Install a SIGQUIT handler on workers.

        - https://github.com/encode/uvicorn/issues/1116
        - https://github.com/benoitc/gunicorn/issues/2604
        N)ÚasyncioÚget_running_loopÚadd_signal_handlerrN   ÚSIGQUITÚhandle_exit)rA   r   s     rF   Ú_install_sigquit_handlerz&UvicornWorker._install_sigquit_handlerX   s:   € õ Ô'Ñ)Ô)ˆØ×Ò¥¤°Ô0@Å&Ä.ÐRVÑWÔWÐWÐWÐWrG   c              ƒ  ó  K  — | j         | j        _        t          | j        ¬¦  «        }|                      ¦   «          |                     | j        ¬¦  «        ƒ d {V —† |j        s t          j	        t          j        ¦  «         d S d S )N)r@   )Úsockets)Úwsgir@   r   r   r[   Úserver]   ÚstartedÚsysÚexitr   ÚWORKER_BOOT_ERROR)rA   Úservers     rF   Ú_servezUvicornWorker._serveb   sŠ   è è € Øœ)ˆŒŒÝ˜tœ{Ð+Ñ+Ô+ˆØ×%Ò%Ñ'Ô'Ð'Ø�lŠl 4¤<ˆlÑ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØŒ~ð 	0ÝŒH•WÔ.Ñ/Ô/Ð/Ð/Ð/ð	0ð 	0rG   c                óN   — t          j        |                      ¦   «         ¦  «        S rI   )rV   Úrunre   ©rA   s    rF   rg   zUvicornWorker.runj   s   € ÝŒ{˜4Ÿ;š;™=œ=Ñ)Ô)Ð)rG   c              ƒ  ó2   K  — |                       ¦   «          d S rI   )Únotifyrh   s    rF   r   zUvicornWorker.callback_notifym   s   è è € Ø�Š‰ŒˆˆˆrG   )r   r   r   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r,   rK   rT   r[   re   rg   r   Ú__classcell__)rE   s   @rF   r
   r
      së   ø€ € € € € € ðð ð
 .4¸VÐ$DÐ$D€MÐDÐDÐDÑDð(.ð (.ð (.ð (.ð (.ð (.ðTð ð ð ð ð ð	3ð 	3ð 	3ð 	3ðXð Xð Xð Xð0ð 0ð 0ð 0ð*ð *ð *ð *ðð ð ð ð ð ð ð rG   r
   c                  ó   — e Zd ZdddœZdS )ÚUvicornH11WorkerrV   Úh11r   N)rk   rl   rm   r   r*   rG   rF   rr   rr   q   s   € € € € € Ø&°Ð6Ð6€M€M€MrG   rr   )Ú
__future__r   rV   r-   rN   ra   ÚwarningsÚtypingr   Úgunicorn.arbiterr   Úgunicorn.workers.baser   Úuvicorn.configr   Úuvicorn.mainr   ÚwarnÚDeprecationWarningr
   rr   r*   rG   rF   ú<module>r}      s$  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $Ø (Ð (Ð (Ð (Ð (Ð (à !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à €„ðFàñô ð ðWð Wð Wð Wð W�Fñ Wô Wð Wðt7ð 7ð 7ð 7ð 7�}ñ 7ô 7ð 7ð 7ð 7rG   