ó
    Ú°›j1  ã                   ó  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  / SQr\" 5       r\R2                  " SSS9r\R7                  S\SSS9  \R7                  SSSSS9  \R7                  SSSSS9  \R7                  S\SSS9  \R7                  S\SSS9  \R7                  S\SS S9  \R7                  S!\SS"S9  S#\4S$ jrS#\4S% jr S#\4S& jr!S' r"S(\	\\4   4S) jr#g)*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                 ó´  • [         R                  5       u  p[        R                  S   /U-   [        l        [	        U5      U S'   U S   S   (       a"  [
        R                  " U S   S   5      U S   S'   U S   R                  SS5      (       a"  [
        R                  " U S   S   5      U S   S'   U S   S   (       a  [        R                  U S   S   5        U $ )z[
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      ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/runpod/serverless/__init__.pyÚ_set_config_argsr,   W   sÑ   € ô
 ×+Ñ+Ó-�M€DÜ—‘˜‘ˆ}˜wÑ&„C„Hô ˜T›
€Fˆ9Ñð ˆiÑ˜×&Ü*.¯*ª*°V¸IÑ5FÀ|Ñ5TÓ*UˆˆyÑ˜,Ñ'ð ˆiÑ×Ñ˜]¨D×1Ñ1Ü+/¯:ª:°f¸YÑ6GÈÑ6VÓ+WˆˆyÑ˜-Ñ(ð ˆiÑ˜×(Ü�‰�f˜YÑ'¨Ñ7Ô8à€Mó    c                  óT   • [        [        R                  R                  SS5      5      $ )zC
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‰z�~‰~Ð4°cÓ:Ó;Ð;r-   c                  óT   • [        [        R                  R                  SS5      5      $ )zJ
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‰z�~‰~Ð;¸SÓAÓBÐBr-   c                 ó^   • A A[         R                  S5        [        R                  " S5        g)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‚HˆQ…Kr-   r(   c                 ób  • [        S[         S35        [        R                  " [        R                  [        5        [
        R                  " 5       U S'   [        U 5      n [        5       n[        5       nU S   S   (       aP  [        R                  S5        SSKJn  UR                  U 5      nUR                  U S   S	   U S   S
   U S   S   S9  gU(       aB  [        R                  SU S35        SSKJn  UR                  U 5      nUR                  SUUS9  g[         R"                  " U 5        g)zý
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!  € ô 
Ð6´~Ð6FÀdÐ
KÔLä
‡M‚M”&—-‘-¤Ô1ä(,×(9Ò(9Ó(;€FÐ$Ñ%Ü˜fÓ%€Fä&Ó(€MÜ4Ó6ÐàˆiÑ˜×(Ü�‰Ð'Ô(Ý'Ø×)Ñ)¨&Ó1ˆ
à× Ñ Ø˜IÑ& }Ñ5Ø˜IÑ& }Ñ5Ø" 9Ñ-Ð.BÑCð 	!ñ 	
ð
 	æÜ�‰Ð<¸]¸OÈ1ÐMÔNÝ'Ø×)Ñ)¨&Ó1ˆ
à× Ñ ØØ"Ø0ð 	!ñ 	
ð
 	ä
‡K‚K�ÔØ
r-   )$Ú__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Ý Ý +Ý 0Ý 6Ý .ò€ñ ƒn€ð 
×	 Ò	 Ø	ÐDñ
€ð × Ñ ØØ	Øð
>ð	 ñ ð × Ñ ØØØØ	'ð	 ñ ð × Ñ ØØØØ	(ð	 ñ ð × Ñ Ø˜# tÐ2Xð ñ ð × Ñ ØØ	ØØ	0ð	 ñ ð × Ñ ØØ	ØØ	/ð	 ñ ð × Ñ ØØ	ØØ	8ð	 ñ ð ô ð4<˜Cô <ðC 3ô Còð-�$�s˜C�x‘.õ -r-   