ó
    Ú°›jß
  ã                   óh  • S r SSKrSSKrSSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJr  \" \R                  R!                  S	S
5      5      r\R%                  S\5      r\" \R                  R!                  SS5      5      r\R%                  S\5      r\" 5       rS\	4S jr SS\	4S jjrSS jrS rg)z.
This module is used to handle HTTP requests.
é    N)ÚClientError)ÚFibonacciRetryÚRetryClient)ÚClientSession)ÚRunPodLoggeré   )Ú	WORKER_IDÚRUNPOD_WEBHOOK_POST_OUTPUTÚJOB_DONE_URLz$RUNPOD_POD_IDÚRUNPOD_WEBHOOK_POST_STREAMÚJOB_STREAM_URLÚclient_sessionc              ƒ   ó
  #   • [        SS9n[        XS9nUSSS.SS.nUR                  " U40 UD6 IS	h  v•N nUR                  5       I S	h  v•N   S	S	S	5      IS	h  v•N   g	 N- N N	! , IS	h  v•N  (       d  f       g	= f7f)
z,
Wrapper for transmitting results via POST.
é   )Úattempts)r   Úretry_optionszutf-8z!application/x-www-form-urlencoded)ÚcharsetzContent-TypeT)ÚdataÚheadersÚraise_for_statusN)r   r   ÚpostÚtext)r   ÚurlÚjob_datar   Úretry_clientÚkwargsÚclient_responses          Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/runpod/serverless/modules/rp_http.pyÚ	_transmitr      s‚   é € ô #¨AÑ.€MÜØ%ñ€Lð
 àØ?ñ
ð !ñ€Fð × Ò  Ñ/¨×/Ò/°?Ø×"Ñ"Ó$×$Ð$÷ 0×/Ò/Ù$÷ 0×/×/Ð/üsV   ‚3BµA#¶B¹A)ÁA%ÁA)ÁBÁA'ÁBÁ%A)Á'BÁ)B Á/A2Á0B Á<BÚsessionc              ƒ   óÌ  #   •  US   U R                   S'   [        R                  " USS9nU(       a  SOSnUR                  SUS   5      SU 3-   n[	        XU5      I S	h  v•N   [
        R                  U US   5        U[        :X  a1  UR                  SS	5      S:w  a  [
        R                  SUS   5        g	g	g	 NZ! [         a&  n[
        R                  S
U 3US   5         S	nANiS	nAf[        [        4 a&  n[
        R                  SU 3US   5         S	nAN�S	nAff = f! U[        :X  a1  UR                  SS	5      S:w  a  [
        R                  SUS   5        f f f = f7f)zJ
A helper function to handle the result, either for sending or streaming.
ÚidzX-Request-IDF)Úensure_asciiÚtrueÚfalsez$IDz
&isStream=Nz Failed to return job results. | z$Error while returning job result. | ÚstatusÚIN_PROGRESSz	Finished.)r   ÚjsonÚdumpsÚreplacer   ÚlogÚdebugr   ÚerrorÚ	TypeErrorÚRuntimeErrorr   ÚgetÚinfo)	r    r   ÚjobÚurl_templateÚlog_messageÚ	is_streamÚserialized_job_datar   Úerrs	            r   Ú_handle_resultr8   3   sQ  é € ð-Ø*-¨d©)ˆ�‰˜Ñ'ä"Ÿjšj¨ÀÑFÐæ'‘F¨Wˆ	Ø×"Ñ" 5¨#¨d©)Ó4¸ÀIÀ;Ð7OÑOˆä˜Ð&9Ó:×:Ð:Ü�	‰	�[�M C¨¡IÔ.ð œLÓ(Ø—‘˜X tÓ,°Ó=ä�H‰H�[ # d¡)Õ,ð >ð )ñ 	;øô ó GÜ�	‰	Ð4°S°EÐ:¸CÀ¹I×FÑFûä”|Ð$ó KÜ�	‰	Ð8¸¸Ð>ÀÀDÁ	×JÑJûðKûð œLÓ(Ø—‘˜X tÓ,°Ó=ä�H‰H�[ # d¡)Õ,ð >ð )üs_   ‚E$„AB= Á B;Á!B= Á?<E$Â;B= Â=
D!ÃC(Ã#D$ Ã(D!Ã;DÄD$ ÄD!Ä!D$ Ä$=E!Å!E$c           	   ƒ   óB   #   • [        XU[        SUS9I Sh  v•N   g N7f)z
Return the job results.
zResults sent.)r5   N)r8   r   )r    r   r2   r5   s       r   Úsend_resultr:   S   s$   é € ô Ø˜3¤¨oÈñ÷ ó ùs   ‚—˜c              ƒ   óD   #   • [        XU[        S5      I Sh  v•N   g N7f)z 
Return the stream job results.
zIntermediate results sent.N)r8   r   )r    r   r2   s      r   Ústream_resultr<   \   s#   é € ô Ø˜3¤Ð0Ló÷ ó ùs   ‚ ˜™ )F)Ú__doc__r(   ÚosÚaiohttpr   Úaiohttp_retryr   r   Úrunpod.http_clientr   Ú#runpod.serverless.modules.rp_loggerr   Úworker_stater	   ÚstrÚenvironr0   ÚJOB_DONE_URL_TEMPLATEr*   r   ÚJOB_STREAM_URL_TEMPLATEr   r+   r   r8   r:   r<   © ó    r   Ú<module>rJ      sº   ðñó Û 	å ß 5å ,Ý <å #áØ‡J�J‡N�NÐ/°Ó@óÐ ð %×,Ñ,Ð-=¸yÓI€áØ‡J�J‡N�NÐ/Ð1AÓBóÐ ð )×0Ñ0Ð1AÀ9ÓM€áƒn€ð% Mô %ð. QVñ-Øõ-ô@órI   