§
    Æ! hO2  ã                  óŽ  — 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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mZmZmZ d dlZd dlmZ er$d dlmZ d dlmZ d d	lmZ d d
lmZ eeeeef         Z ej!        ej"        fZ#e	j        dk    re#ej$        fz  Z# ej%        d¦  «        Z& G d„ d¦  «        Z' G d„ d¦  «        Z(dS )é    )ÚannotationsN)Ú
formatdate)Ú	FrameType)ÚTYPE_CHECKINGÚ	GeneratorÚSequenceÚUnion)ÚConfig)ÚH11Protocol)ÚHttpToolsProtocol)ÚWebSocketProtocol)Ú
WSProtocolÚwin32zuvicorn.errorc                  ó   — e Zd ZdZdd„ZdS )ÚServerStatezP
    Shared servers state that is available between all protocol instances.
    ÚreturnÚNonec                ón   — d| _         t          ¦   «         | _        t          ¦   «         | _        g | _        d S )Nr   )Útotal_requestsÚsetÚconnectionsÚtasksÚdefault_headers)Úselfs    úHc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\uvicorn/server.pyÚ__init__zServerState.__init__,   s/   € ØˆÔÝ+.©5¬5ˆÔÝ.1©e¬eˆŒ
Ø:<ˆÔÐÐó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r   '   s2   € € € € € ðð ð=ð =ð =ð =ð =ð =r   r   c                  ó’   — e Zd Zdd„Zddd	„Zddd
„Zddd„Zddd„Zd d„Zd!d„Z	d"d„Z
ddd„Zd!d„Zej        d#d„¦   «         Zd$d„ZdS )%ÚServerÚconfigr
   r   r   c                ó€   — || _         t          ¦   «         | _        d| _        d| _        d| _        d| _        g | _        d S )NFg        )r&   r   Úserver_stateÚstartedÚshould_exitÚ
force_exitÚlast_notifiedÚ_captured_signals)r   r&   s     r   r   zServer.__init__4   sA   € ØˆŒÝ'™MœMˆÔàˆŒØ ˆÔØˆŒØ ˆÔà,.ˆÔÐÐr   NÚsocketsúlist[socket.socket] | Nonec                ó„   — | j                              ¦   «          t          j        |                      |¬¦  «        ¦  «        S )N©r.   )r&   Úsetup_event_loopÚasyncioÚrunÚserve©r   r.   s     r   r4   z
Server.run?   s4   € ØŒ×$Ò$Ñ&Ô&Ð&ÝŒ{˜4Ÿ:š:¨g˜:Ñ6Ô6Ñ7Ô7Ð7r   c              ƒ  óš   K  — |                       ¦   «         5  |                      |¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S ©N)Úcapture_signalsÚ_server6   s     r   r5   zServer.serveC   s    è è € Ø×!Ò!Ñ#Ô#ð 	'ð 	'Ø—+’+˜gÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   —A Á AÁAc              ƒ  óR  K  — t          j        ¦   «         }| j        }|j        s|                     ¦   «          |                     |¦  «        | _        d}dt          j        dd¬¦  «        z   dz   }t           
                    ||d|i¬¦  «         |                      |¬	¦  «        ƒ d {V —† | j        rd S |                      ¦   «         ƒ d {V —† |                      |¬	¦  «        ƒ d {V —† d
}dt          j        dd¬¦  «        z   dz   }t           
                    ||d|i¬¦  «         d S )NzStarted server process [%d]zStarted server process [z%dÚcyan)Úfgú]Úcolor_message©Úextrar1   zFinished server process [%d]zFinished server process [)ÚosÚgetpidr&   ÚloadedÚloadÚlifespan_classÚlifespanÚclickÚstyleÚloggerÚinfoÚstartupr*   Ú	main_loopÚshutdown)r   r.   Ú
process_idr&   Úmessager?   s         r   r:   zServer._serveG   sJ  è è € Ý”Y‘[”[ˆ
à”ˆØŒ}ð 	Ø�KŠK‰MŒMˆMà×-Ò-¨fÑ5Ô5ˆŒà/ˆØ2µU´[ÀÈ&Ð5QÑ5QÔ5QÑQÐTWÑWˆÝ�Š�G˜Z°ÀÐ/OˆÑPÔPÐPà�lŠl 7ˆlÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔð 	ØˆFØ�nŠnÑÔÐÐÐÐÐÐÐØ�mŠm GˆmÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,à0ˆØ3µe´kÀ$È6Ð6RÑ6RÔ6RÑRÐUXÑXˆÝ�Š�G˜Z°ÀÐ/OˆÑPÔPÐPÐPÐPr   c              ƒ  óº  ‡ ‡K  — ‰ j                              ¦   «         ƒ d {V —† ‰ j         j        r	d‰ _        d S ‰ j        Š	 ddˆˆ fd„}t	          j        ¦   «         }|�†dd	„}g ‰ _        |D ]t}t          j        ¦   «         d
k    }‰j	        dk    r|r ||¦  «        }| 
                    ||‰j        ‰j        ¬¦  «        ƒ d {V —†}‰ j                             |¦  «         Œu|}�n×‰j        �rt          j        ‰j        t          j        t          j        ¦  «        }| 
                    ||‰j        ‰j        ¬¦  «        ƒ d {V —†}|j        €J ‚|j        }|g‰ _        �n^‰j        �¥d}	t*          j                             ‰j        ¦  «        rt+          j        ‰j        ¦  «        j        }	|                     |‰j        ‰j        ‰j        ¬¦  «        ƒ d {V —†}t+          j        ‰j        |	¦  «         |j        €J ‚|j        }|g‰ _        n²	 | 
                    |‰j        ‰j        ‰j        ‰j        ¬¦  «        ƒ d {V —†}nd# t<          $ rW}
t>                                |
¦  «         ‰ j          !                    ¦   «         ƒ d {V —† tE          j#        d¦  «         Y d }
~
nd }
~
ww xY w|j        €J ‚|j        }|g‰ _        |€‰  $                    |¦  «         n	 d‰ _%        d S )NTÚ_loopú asyncio.AbstractEventLoop | Noner   úasyncio.Protocolc                óT   •— ‰                      ‰‰j        ‰j        j        | ¬¦  «        S )N)r&   r(   Ú	app_staterR   )Úhttp_protocol_classr(   rG   Ústate)rR   r&   r   s    €€r   Úcreate_protocolz'Server.startup.<locals>.create_protocolf   s6   ø€ ð ×-Ò-ØØ!Ô.Øœ-Ô-Øð	 .ñ ô ð r   Úsockúsocket.SocketTypec                óp   — ddl m} |                      t          j        ¦   «         ¦  «        } ||¦  «        S )Nr   )Ú	fromshare)Úsocketr]   ÚsharerB   rC   )rZ   r]   Ú	sock_datas      r   Ú_share_socketz%Server.startup.<locals>._share_socketw   s=   € ð
 -Ð,Ð,Ð,Ð,Ð,à ŸJšJ¥r¤y¡{¤{Ñ3Ô3�	Ø �y Ñ+Ô+Ð+r   ÚWindowsé   )rZ   ÚsslÚbacklogi¶  )Úpathrd   re   )ÚhostÚportrd   re   r8   )rR   rS   r   rT   )rZ   r[   r   r[   )&rG   rL   r*   r&   r3   Úget_running_loopÚserversÚplatformÚsystemÚworkersÚcreate_serverrd   re   ÚappendÚfdr^   ÚfromfdÚAF_UNIXÚSOCK_STREAMr.   ÚudsrB   rf   ÚexistsÚstatÚst_modeÚcreate_unix_serverÚchmodrg   rh   ÚOSErrorrJ   ÚerrorrN   ÚsysÚexitÚ_log_started_messager)   )r   r.   rY   Úloopra   rZ   Ú
is_windowsÚserverÚ	listenersÚ	uds_permsÚexcr&   s   `          @r   rL   zServer.startup^   sˆ  øøè è € ØŒm×#Ò#Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØŒ=Ô$ð 	Ø#ˆDÔØˆFà”ˆð 7;ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ Ô'Ñ)Ô)ˆð Ðð,ð ,ð ,ð ,ð >@ˆDŒLØð ,ð ,�Ý%œ_Ñ.Ô.°)Ò;�
Ø”> AÒ%Ð%¨*Ð%Ø(˜=¨Ñ.Ô.�DØ#×1Ò1°/ÈÐRXÔR\ÐflÔftÐ1ÑuÔuÐuÐuÐuÐuÐuÐu�Ø”×#Ò# FÑ+Ô+Ð+Ð+ØˆI‰IàŒYÐ"å”= ¤­F¬N½FÔ<NÑOÔOˆDØ×-Ò-¨oÀDÈfÌjÐbhÔbpÐ-ÑqÔqÐqÐqÐqÐqÐqÐqˆFØ”>Ð-Ð-Ð-ØœˆIØ"˜8ˆDŒL‰LàŒZÐ#àˆIÝŒw�~Š~˜fœjÑ)Ô)ð 8ÝœG F¤JÑ/Ô/Ô7�	Ø×2Ò2Ø f¤j°f´jÈ&Ì.ð 3ñ ô ð ð ð ð ð ð ˆFõ ŒH�V”Z Ñ+Ô+Ð+Ø”>Ð-Ð-Ð-ØœˆIØ"˜8ˆDŒLˆLðØ#×1Ò1Ø#ØœØœØœ
Ø"œNð  2ñ  ô  ð ð ð ð ð ð ��øõ ð ð ð Ý—’˜SÑ!Ô!Ð!Ø”m×,Ò,Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ý”˜‘”������øøøøðøøøð
 ”>Ð-Ð-Ð-ØœˆIØ"˜8ˆDŒLàˆ?Ø×%Ò% iÑ0Ô0Ð0Ð0ð àˆŒˆˆs   È
4H? È?
J É	AJÊJ r‚   úSequence[socket.SocketType]c                ó  — | j         }|j        �7|d         }t                               d|                     ¦   «         ¦  «         d S |j        �"t                               d|j        ¦  «         d S d}|j        €dn|j        }d|v rd}|j        }|dk    r |d                              ¦   «         d         }|j        rd	nd
}d|› d�}dt          j
        |d¬¦  «        z   dz   }	t                               ||||d|	i¬¦  «         d S )Nr   z3Uvicorn running on socket %s (Press CTRL+C to quit)z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z
%s://%s:%dz0.0.0.0ú:z%s://[%s]:%drc   ÚhttpsÚhttpzUvicorn running on z (Press CTRL+C to quit)T)Úboldr?   r@   )r&   rp   rJ   rK   Úgetsocknamert   rg   rh   rd   rH   rI   )
r   r‚   r&   rZ   Úaddr_formatrg   rh   Úprotocol_namerP   r?   s
             r   r~   zServer._log_started_message»   s?  € Ø”ˆàŒ9Ð Ø˜Q”<ˆDÝ�KŠKØEØ× Ò Ñ"Ô"ñô ð ð ð ð
 ŒZÐ#Ý�KŠKÐRÐTZÔT^Ñ_Ô_Ð_Ð_Ð_ð 'ˆKØ &¤Ð 3�9�9¸¼ˆDØ�dˆ{ˆ{à,�à”;ˆDØ�qŠyˆyØ  ”|×/Ò/Ñ1Ô1°!Ô4�à'-¤zÐ=˜G˜G°vˆMØP¨KÐPÐPÐPˆGØ1µE´KÀÐRVÐ4WÑ4WÔ4WÑWÐZsÑsˆMÝ�KŠKØØØØØ&¨Ð6ð ñ ô ð ð ð r   c              ƒ  óÎ   K  — d}|                       |¦  «        ƒ d {V —†}|sC|dz  }|dz  }t          j        d¦  «        ƒ d {V —† |                       |¦  «        ƒ d {V —†}|¯Ad S d S )Nr   rc   i / çš™™™™™¹?)Úon_tickr3   Úsleep)r   Úcounterr*   s      r   rM   zServer.main_loopÞ   s¬   è è € ØˆØ ŸLšL¨Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1ˆØð 	6Ø�q‰LˆGØ Ñ&ˆGÝ”- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø $§¢¨WÑ 5Ô 5Ð5Ð5Ð5Ð5Ð5Ð5ˆKð	 ð 	6ð 	6ð 	6ð 	6ð 	6r   r’   ÚintÚboolc              ƒ  óÔ  K  — |dz  dk    r­t          j         ¦   «         }t          |d¬¦  «                             ¦   «         }| j        j        rd|fg}ng }|| j        j        z   | j        _        | j        j        �>|| j	        z
  | j        j
        k    r&|| _	        | j                             ¦   «         ƒ d {V —† | j        rdS | j        j        �| j        j        | j        j        k    S dS )Né
   r   T)Úusegmts   dateF)Útimer   Úencoder&   Údate_headerÚencoded_headersr(   r   Úcallback_notifyr,   Útimeout_notifyr*   Úlimit_max_requestsr   )r   r’   Úcurrent_timeÚcurrent_daterš   s        r   r�   zServer.on_tickç   sÿ   è è € à�R‰<˜1ÒÐÝœ9™;œ;ˆLÝ% l¸4Ð@Ñ@Ô@×GÒGÑIÔIˆLàŒ{Ô&ð !Ø '¨Ð6Ð7��à �à0;¸d¼kÔ>YÑ0YˆDÔÔ-ð Œ{Ô*Ð6Ø $Ô"4Ñ4°t´{Ô7QÒQÐQØ)5�DÔ&Øœ+×5Ò5Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð Ôð 	Ø�4ØŒ;Ô)Ð5ØÔ$Ô3°t´{Ô7UÒUÐUØˆur   c              ƒ  ó*  K  — t                                d¦  «         | j        D ]}|                     ¦   «          Œ|pg D ]}|                     ¦   «          Œt	          | j        j        ¦  «        D ]}|                     ¦   «          Œt          j	        d¦  «        ƒ d {V —† 	 t          j
        |                      ¦   «         | j        j        ¬¦  «        ƒ d {V —† n‘# t          j        $ r t                                dt!          | j        j        ¦  «        ¦  «         | j        j        D ]=}t$          j        dk     r|                     ¦   «          Œ'|                     d¬¦  «         Œ>Y nw xY w| j        s!| j                             ¦   «         ƒ d {V —† d S d S )NzShutting downr�   )Útimeoutz=Cancel %s running task(s), timeout graceful shutdown exceeded)é   é	   z2Task cancelled, timeout graceful shutdown exceeded)Úmsg)rJ   rK   rj   ÚcloseÚlistr(   r   rN   r3   r‘   Úwait_forÚ_wait_tasks_to_completer&   Útimeout_graceful_shutdownÚTimeoutErrorr{   Úlenr   r|   Úversion_infoÚcancelr+   rG   )r   r.   r�   rZ   Ú
connectionÚts         r   rN   zServer.shutdown  sö  è è € Ý�Š�OÑ$Ô$Ð$ð ”lð 	ð 	ˆFØ�LŠL‰NŒNˆNˆNØ�M˜rð 	ð 	ˆDØ�JŠJ‰LŒLˆLˆLõ ˜tÔ0Ô<Ñ=Ô=ð 	"ð 	"ˆJØ×ÒÑ!Ô!Ð!Ð!ÝŒm˜CÑ Ô Ð Ð Ð Ð Ð Ð Ð ð	WÝÔ"Ø×,Ò,Ñ.Ô.ØœÔ=ðñ ô ð ð ð ð ð ð ð ð øõ Ô#ð 		Wð 		Wð 		WÝ�LŠLØOÝ�DÔ%Ô+Ñ,Ô,ñô ð ð Ô&Ô,ð Wð W�ÝÔ# fÒ,Ð,Ø—H’H‘J”J�J�Jà—H’HÐ!U�HÑVÔVÐVÐVð	Wð Wð		Wøøøð Œð 	+Ø”-×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+s   Â!8C ÃBE(Å'E(c              ƒ  ó  K  — | j         j        rc| j        s\d}t                               |¦  «         | j         j        r4| j        s-t          j        d¦  «        ƒ d {V —† | j         j        r| j        ¯-| j         j        rc| j        s\d}t                               |¦  «         | j         j        r4| j        s-t          j        d¦  «        ƒ d {V —† | j         j        r| j        ¯-| j        D ]}| 	                    ¦   «         ƒ d {V —† Œd S )Nz8Waiting for connections to close. (CTRL+C to force quit)r�   z@Waiting for background tasks to complete. (CTRL+C to force quit))
r(   r   r+   rJ   rK   r3   r‘   r   rj   Úwait_closed)r   r¥   r�   s      r   r©   zServer._wait_tasks_to_complete$  sL  è è € àÔÔ(ð 	)°´ð 	)ØLˆCÝ�KŠK˜ÑÔÐØÔ#Ô/ð )¸¼ð )Ý”m CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð Ô#Ô/ð )¸¼ð )ð ÔÔ"ð 	)¨4¬?ð 	)ØTˆCÝ�KŠK˜ÑÔÐØÔ#Ô)ð )°$´/ð )Ý”m CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð Ô#Ô)ð )°$´/ð )ð ”lð 	'ð 	'ˆFØ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð	'ð 	'r   úGenerator[None, None, None]c              #  ó²  ‡ K  — t          j        ¦   «         t          j        ¦   «         urd V — d S ˆ fd„t          D ¦   «         }	 d V — |                     ¦   «         D ]\  }}t          j        ||¦  «         Œn4# |                     ¦   «         D ]\  }}t          j        ||¦  «         Œw xY wt          ‰ j        ¦  «        D ]}t          j        |¦  «         Œd S )Nc                óF   •— i | ]}|t          j         |‰j        ¦  «        “ŒS r#   )ÚsignalÚhandle_exit)Ú.0Úsigr   s     €r   ú
<dictcomp>z*Server.capture_signals.<locals>.<dictcomp>>  s*   ø€ ÐbÐbÐbÈ3˜S¥&¤-°°TÔ5EÑ"FÔ"FÐbÐbÐbr   )	Ú	threadingÚcurrent_threadÚmain_threadÚHANDLED_SIGNALSÚitemsr¶   Úreversedr-   Úraise_signal)r   Úoriginal_handlersr¹   ÚhandlerÚcaptured_signals   `    r   r9   zServer.capture_signals6  s  øè è € õ Ô#Ñ%Ô%­YÔ-BÑ-DÔ-DÐDÐDØˆEˆEˆEØˆFð cÐbÐbÐbÕRaÐbÑbÔbÐð	,ØˆEˆEˆEà 1× 7Ò 7Ñ 9Ô 9ð ,ð ,‘��WÝ”˜c 7Ñ+Ô+Ð+Ð+ð,øÐ 1× 7Ò 7Ñ 9Ô 9ð ,ð ,‘��WÝ”˜c 7Ñ+Ô+Ð+Ð+ð,øøøõ
  (¨Ô(>Ñ?Ô?ð 	1ð 	1ˆOÝÔ Ñ0Ô0Ð0Ð0ð	1ð 	1s   ÁA8 Á81B)r¹   ÚframeúFrameType | Nonec                óˆ   — | j                              |¦  «         | j        r|t          j        k    r	d| _        d S d| _        d S )NT)r-   ro   r*   r¶   ÚSIGINTr+   )r   r¹   rÅ   s      r   r·   zServer.handle_exitJ  sI   € ØÔ×%Ò% cÑ*Ô*Ð*ØÔð 	$ ¥v¤}Ò 4Ð 4Ø"ˆDŒOˆOˆOà#ˆDÔÐÐr   )r&   r
   r   r   r8   )r.   r/   r   r   )r‚   r…   r   r   r   )r’   r“   r   r”   )r   r³   )r¹   r“   rÅ   rÆ   r   r   )r   r    r!   r   r4   r5   r:   rL   r~   rM   r�   rN   r©   Ú
contextlibÚcontextmanagerr9   r·   r#   r   r   r%   r%   3   s:  € € € € € ð	/ð 	/ð 	/ð 	/ð8ð 8ð 8ð 8ð 8ð'ð 'ð 'ð 'ð 'ðQð Qð Qð Qð Qð.[ð [ð [ð [ð [ðz!ð !ð !ð !ðF6ð 6ð 6ð 6ðð ð ð ð4!+ð !+ð !+ð !+ð !+ðF'ð 'ð 'ð 'ð$ Ôð1ð 1ð 1ñ Ôð1ð&$ð $ð $ð $ð $ð $r   r%   ))Ú
__future__r   r3   rÉ   ÚloggingrB   rk   r¶   r^   r|   r»   r˜   Úemail.utilsr   Útypesr   Útypingr   r   r   r	   rH   Úuvicorn.configr
   Úuvicorn.protocols.http.h11_implr   Ú%uvicorn.protocols.http.httptools_implr   Ú,uvicorn.protocols.websockets.websockets_implr   Ú)uvicorn.protocols.websockets.wsproto_implr   Ú	ProtocolsrÈ   ÚSIGTERMr¾   ÚSIGBREAKÚ	getLoggerrJ   r   r%   r#   r   r   ú<module>rÙ      sç  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à €€€à !Ð !Ð !Ð !Ð !Ð !àð UØ;Ð;Ð;Ð;Ð;Ð;ØGÐGÐGÐGÐGÐGØNÐNÐNÐNÐNÐNØDÐDÐDÐDÐDÐDà�kÐ#4°jÐBSÐSÔT€Ið „MØ
„Nð€ð „<�7ÒÐØ˜œÐ)Ñ)€Oà	ˆÔ	˜?Ñ	+Ô	+€ð	=ð 	=ð 	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð\$ð \$ð \$ð \$ð \$ñ \$ô \$ð \$ð \$ð \$r   