+
    i
                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
H
t
 ^ RIHt ]P                  ! 4        ]P                  ! R4      tR R	 ltR
 R ltR# )ze
Some light wrappers around Python's multiprocessing, to deal with cleanly
starting child processes.
)annotationsN)Callable)SpawnProcess)socket)Configspawnc               (    V ^8  d   QhRRRRRRRR/# )	   configr   targetCallable[..., None]socketslist[socket]returnr    )formats   "|C:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\uvicorn\_subprocess.py__annotate__r      s6     C CCC C 	C    c                     \         P                  P                  4       pRV RVRVRV/p\
        P                  \        VR7      #   \        \        3 d    Rp L:i ; i)a  
Called in the parent process, to instantiate a new child process instance.
The child is not yet started at this point.

* config - The Uvicorn configuration instance.
* target - A callable that accepts a list of sockets. In practice this will
           be the `Server.run()` method.
* sockets - A list of sockets to pass to the server. Sockets are bound once
            by the parent process, and then passed to the child processes.
Nr
   r   r   stdin_fileno)r   kwargs)sysstdinfilenoAttributeErrorOSErrorr   Processsubprocess_started)r
   r   r   r   r   s   &&&  r   get_subprocessr      sg    "yy'') 	&&7	F == 26=BB G$ s   A AAc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r	   r
   r   r   r   r   r   r   z
int | Noner   Noner   )r   s   "r   r   r   6   s:        	
 
r   c                    Ve    \         P                  ! V4      \        n        V P	                  4         V! VR7       R#   \
         d     R# i ; i)a  
Called when the child process starts.

* config - The Uvicorn configuration instance.
* target - A callable that accepts a list of sockets. In practice this will
           be the `Server.run()` method.
* sockets - A list of sockets to pass to the server. Sockets are bound once
            by the parent process, and then passed to the child processes.
* stdin_fileno - The file number of sys.stdin, so that it can be reattached
                 to the child process.
N)r   )osfdopenr   r   configure_loggingKeyboardInterrupt)r
   r   r   r   s   &&&&r   r   r   6   sI    $ IIl+	 w  	s   	A   AA)__doc__
__future__r   multiprocessingr#   r   collections.abcr   multiprocessing.contextr   r   uvicorn.configr   allow_connection_picklingget_contextr   r   r   r   r   r   <module>r/      sL   
 #  	 
 $ 0  !  ) ) +##G,CBr   