§
    AxÅj1  ã                   óv  — d 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m	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 ddlmZ g d¢Z e¦   «         Z ej        dd¬¦  «        Ze                     dedd¬¦  «         e                     dddd¬¦  «         e                     dddd¬¦  «         e                     dedd¬¦  «         e                     dedd¬¦  «         e                     dedd ¬¦  «         e                     d!edd"¬¦  «         d#efd$„Zd#efd%„Z d#efd&„Z!d'„ Z"d(e	eef         fd)„Z#dS )*zš
Contains the main entrypoint for the Runpod Serverless Worker.

Arguments can be passed in when the worker is started, and will be passed to the worker.
é    N)ÚAnyÚDicté   )Ú__version__é   )Úworker)ÚRunPodLogger)Úprogress_update)Úregister_fitness_check)ÚVolumeCache)Ústartr
   r   Úrunpod_versionr   Úrunpodz#Runpod Serverless Worker Arguments.)ÚprogÚdescriptionz--rp_log_levelzrControls what level of logs are printed to the console.
                    Options: ERROR, WARN, INFO, and DEBUG.)ÚtypeÚdefaultÚhelpz--rp_debuggerÚ
store_truezFlag to enable the Debugger.)Úactionr   r   z--rp_serve_apizFlag to start the API server.z--rp_api_porti@  z$Port to start the FastAPI server on.z--rp_api_concurrencyz%Number of concurrent FastAPI workers.z--rp_api_hostÚ	localhostz$Host to start the FastAPI server on.z--test_inputz-Test input for the worker, formatted as JSON.Úreturnc                 ó  — t                                ¦   «         \  }}t          j        d         g|z   t          _        t	          |¦  «        | d<   | d         d         r)t          j        | d         d         ¦  «        | d         d<   | d                              dd¦  «        r)t          j        | d         d         ¦  «        | d         d<   | d         d         r&t           	                    | d         d         ¦  «         | S )zg
    Sets the config rp_args, removing any recognized arguments from sys.argv.
    Returns: config
    r   Úrp_argsÚ
test_inputÚtest_outputNÚrp_log_level)
ÚparserÚparse_known_argsÚsysÚargvÚvarsÚjsonÚloadsÚgetÚlogÚ	set_level)ÚconfigÚargsÚunknowns      úKC:\Projects\Historical\venv\Lib\site-packages\runpod/serverless/__init__.pyÚ_set_config_argsr,   W   sï   € õ
 ×+Ò+Ñ-Ô-�M€Dˆ'Ý”˜”ˆ}˜wÑ&…C„Hõ ˜T™
œ
€Fˆ9Ñð ˆiÔ˜Ô&ð VÝ*.¬*°V¸IÔ5FÀ|Ô5TÑ*UÔ*UˆˆyÔ˜,Ñ'ð ˆiÔ×Ò˜]¨DÑ1Ô1ð XÝ+/¬:°f¸YÔ6GÈÔ6VÑ+WÔ+WˆˆyÔ˜-Ñ(ð ˆiÔ˜Ô(ð 9Ý�Š�f˜YÔ'¨Ô7Ñ8Ô8Ð8à€Mó    c                  ó\   — t          t          j                             dd¦  «        ¦  «        S )zK
    Get the realtime port from the environment variable if it exists.
    ÚRUNPOD_REALTIME_PORTÚ0©ÚintÚosÚenvironr%   © r-   r+   Ú_get_realtime_portr6   q   s#   € õ �rŒz�~Š~Ð4°cÑ:Ô:Ñ;Ô;Ð;r-   c                  ó\   — t          t          j                             dd¦  «        ¦  «        S )zR
    Get the realtime concurrency from the environment variable if it exists.
    ÚRUNPOD_REALTIME_CONCURRENCYÚ1r1   r5   r-   r+   Ú_get_realtime_concurrencyr:   x   s#   € õ �rŒz�~Š~Ð;¸SÑAÔAÑBÔBÐBr-   c                 óf   — ~ ~t                                d¦  «         t          j        d¦  «         dS )z$
    Handles the SIGINT signal.
    zSIGINT received. Shutting down.r   N)r&   Úinfor    Úexit)ÚsigÚframes     r+   Ú_signal_handlerr@      s-   € ð 	ˆUÝ‡H‚HÐ.Ñ/Ô/Ð/Ý„HˆQ�K„K€K€K€Kr-   r(   c                 óÔ  — t          dt          › d�¦  «         t          j        t          j        t          ¦  «         t          j        ¦   «         | d<   t          | ¦  «        } t          ¦   «         }t          ¦   «         }| d         d         rst                               d¦  «         ddlm} |                     | ¦  «        }|                     | d         d	         | d         d
         | d         d         ¬¦  «         dS |rSt                               d|› d�¦  «         ddlm} |                     | ¦  «        }|                     d||¬¦  «         dS t!          j        | ¦  «         dS )a  
    Starts the serverless worker.

    config (Dict[str, Any]): Configuration parameters for the worker.

    config["handler"] (Callable): The handler function to run.

    config["rp_args"] (Dict[str, Any]): Arguments for the worker, populated by runtime arguments.
    z*--- Starting Serverless Worker |  Version z ---Úreference_counter_startr   Úrp_serve_apizStarting API server.r   )Ú
rp_fastapiÚrp_api_hostÚrp_api_portÚrp_api_concurrency)Úapi_hostÚapi_portÚapi_concurrencyNz)Starting API server for realtime on port ú.z0.0.0.0)Úprintr   ÚsignalÚSIGINTr@   ÚtimeÚperf_counterr,   r6   r:   r&   r<   ÚmodulesrD   Ú	WorkerAPIÚstart_uvicornr   Úmain)r(   Úrealtime_portÚrealtime_concurrencyrD   Ú
api_servers        r+   r   r   ‹   s�  € õ 
Ð
Kµ~Ð
KÐ
KÐ
KÑLÔLÐLå
„M•&”-¥Ñ1Ô1Ð1å(,Ô(9Ñ(;Ô(;€FÐ$Ñ%Ý˜fÑ%Ô%€Få&Ñ(Ô(€MÝ4Ñ6Ô6ÐàˆiÔ˜Ô(ð 
Ý�ŠÐ'Ñ(Ô(Ð(Ø'Ð'Ð'Ð'Ð'Ð'Ø×)Ò)¨&Ñ1Ô1ˆ
à× Ò Ø˜IÔ& }Ô5Ø˜IÔ& }Ô5Ø" 9Ô-Ð.BÔCð 	!ñ 	
ô 	
ð 	
ð
 	ˆàð 
Ý�ŠÐM¸]ÐMÐMÐMÑNÔNÐNØ'Ð'Ð'Ð'Ð'Ð'Ø×)Ò)¨&Ñ1Ô1ˆ
à× Ò ØØ"Ø0ð 	!ñ 	
ô 	
ð 	
ð
 	ˆå
„K�ÑÔÐØ
€Fr-   )$Ú__doc__Úargparser#   r3   rM   r    rO   Útypingr   r   Úversionr   r   Ú r   Úmodules.rp_loggerr	   Úmodules.rp_progressr
   Úmodules.rp_fitnessr   Úutils.rp_volume_cacher   Ú__all__r&   ÚArgumentParserr   Úadd_argumentÚstrr2   Údictr,   r6   r:   r@   r   r5   r-   r+   ú<module>rf      sÉ  ððð ð €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø .Ð .Ð .Ð .Ð .Ð .ðð ð €ð €l�n„n€ð 
!ˆÔ	 Ø	ÐDð
ñ 
ô 
€ð × Ò ØØ	Øð
>ð	 ñ ô ð ð × Ò ØØØØ	'ð	 ñ ô ð ð × Ò ØØØØ	(ð	 ñ ô ð ð × Ò Ø˜# tÐ2Xð ñ ô ð ð × Ò ØØ	ØØ	0ð	 ñ ô ð ð × Ò ØØ	ØØ	/ð	 ñ ô ð ð × Ò ØØ	ØØ	8ð	 ñ ô ð ð ð ð ð ð ð4<˜Cð <ð <ð <ð <ðC 3ð Cð Cð Cð Cðð ð ð-�$�s˜C�x”.ð -ð -ð -ð -ð -ð -r-   