
    0P@iT                        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mZ d dlZd dlmZ d dlmZ ej(                  ej*                  fZ ej.                  d	      Z G d
 d      ZddZy)    )annotationsN)Path)socket)	FrameType)CallableIterator)get_subprocess)Configzuvicorn.errorc                  l    e Zd Z	 	 	 	 	 	 	 	 ddZddZddZddZddZddZddZ	ddZ
dd	Zdd
Zy)
BaseReloadc                    || _         || _        || _        t        j                         | _        t        j                         | _        d| _	        d | _
        y )NF)configtargetsockets	threadingEventshould_exitosgetpidpidis_restartingreloader_name)selfr   r   r   s       h/home/www/lebenam.kofcorporation.com/venv/lib/python3.12/site-packages/uvicorn/supervisors/basereload.py__init__zBaseReload.__init__   sE     $??,99;")-    c                    t         j                  dk(  r| j                  rd| _        y| j                  j	                          y)zN
        A signal handler that is registered with the parent process.
        win32FN)sysplatformr   r   set)r   sigframes      r   signal_handlerzBaseReload.signal_handler)   s2     <<7"t'9'9!&D  "r   c                    | j                          | D ]S  }|st        j                  d| j                  dj	                  t        t        |                   | j                          U | j                          y )Nz'%s detected changes in %s. Reloading...z, )	startuploggerwarningr   joinmap_display_pathrestartshutdown)r   changess     r   runzBaseReload.run2   s^     	G=&&IIc-9:
 	 	r   c                v    | j                   j                  | j                  j                        r
t	               y N)r   waitr   reload_delayStopIterationr   s    r   pausezBaseReload.pause?   s-      !9!9:/! ;r   c                    | S r1    r5   s    r   __iter__zBaseReload.__iter__C   s    r   c                "    | j                         S r1   )should_restartr5   s    r   __next__zBaseReload.__next__F   s    ""$$r   c                "   d| j                    d| j                   }dj                  t        j                  t        | j                         dd      t        j                  t        | j                        dd            }t        j                  |d|i       t        D ]"  }t        j                  || j                         $ t        | j                  | j                  | j                  	      | _        | j                  j!                          y )
NzStarted reloader process [z] using z&Started reloader process [{}] using {}cyanTfgboldcolor_messageextrar   r   r   )r   r   formatclickstylestrr'   infoHANDLED_SIGNALSsignalr$   r	   r   r   r   processstart)r   messagerB   r"   s       r   r&   zBaseReload.startupI   s    .txxjASAS@TU@GGKKDHH&t<KKD../FF
 	GO]#CD" 	4CMM#t223	4 &;;t{{DLL
 	r   c                   t         j                  dk(  rXd| _        | j                  j                  J t        j                  | j                  j                  t        j                         n| j                  j                          | j                  j                          t        | j                  | j                  | j                        | _        | j                  j                          y )Nr   TrE   )r   r    r   rM   r   r   killrL   CTRL_C_EVENT	terminater)   r	   r   r   r   rN   r5   s    r   r,   zBaseReload.restartY   s    <<7"!%D<<##///GGDLL$$f&9&9:LL""$%;;t{{DLL
 	r   c                   t         j                  dk(  r| j                  j                          n| j                  j                          | j                  j                          | j                  D ]  }|j                           dj                  t        | j                              }dj                  t        j                  t        | j                        dd            }t        j                  |d|i       y )Nr   zStopping reloader process [{}]r>   Tr?   rB   rC   )r   r    r   r!   rM   rS   r)   r   closerF   rI   r   rG   rH   r'   rJ   )r   sockrO   rB   s       r   r-   zBaseReload.shutdowng   s    <<7"  "LL""$LL 	DJJL	 399#dhh-H8??KKDHH&t<
 	GO]#CDr   c                    t        d      )Nz2Reload strategies should override should_restart())NotImplementedErrorr5   s    r   r;   zBaseReload.should_restartw   s    !"VWWr   N)r   r
   r   z%Callable[[list[socket] | None], None]r   zlist[socket]returnNone)r"   intr#   zFrameType | NonerY   rZ   )rY   rZ   )rY   zIterator[list[Path] | None])rY   zlist[Path] | None)__name__
__module____qualname__r   r$   r/   r6   r9   r<   r&   r,   r-   r;   r8   r   r   r   r      s\    .. 6. 	.
 
.#"% E Xr   r   c                |    	 d| j                  t        j                                dS # t        $ r	 d|  dcY S w xY w)N')relative_tor   cwd
ValueError)paths    r   r+   r+   {   sE    4##DHHJ/022 4&{s   &) ;;)rd   r   rY   rI   )
__future__r   loggingr   rL   r   r   pathlibr   r   typesr   typingr   r   rG   uvicorn._subprocessr	   uvicorn.configr
   SIGINTSIGTERMrK   	getLoggerr'   r   r+   r8   r   r   <module>ro      sk    "  	  
     %  . ! MM
NN
 
		?	+^X ^XBr   