Ë
    o¹éj–  ã                   ó°   — 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ZdZ	dZ
d„ Zd e«       z   ddœZdd	„Zdd
„Zd„ Zedk(  r e e«       dd dz   «       yy)zHTiny fal.ai queue client. Reads FAL_KEY from env or infography-mvp/.env.é    Nz/root/notchlightz/root/infography-mvp/.envc                  ó.  — t         j                  j                  d«      } | r| S t        t        «      D ]V  }|j                  d«      sŒ|j                  dd«      d   j                  «       j                  d«      j                  d«      c S  t        d«      ‚)NÚFAL_KEYzFAL_KEY=ú=é   ú"ú'z
no FAL_KEY)	ÚosÚenvironÚgetÚopenÚENVFÚ
startswithÚsplitÚstripÚ
SystemExit)ÚkÚlines     ú /root/notchlight/tools/falgen.pyÚkeyr      s   € Ü
�
‰
�‰�yÓ!€AÙØˆÜ”T“
ò GˆØ�?‰?˜:Õ&Ø—:‘:˜c 1Ó% aÑ(×.Ñ.Ó0×6Ñ6°sÓ;×AÑAÀ#ÓFÒFðGô �\Ó
"Ð"ó    zKey zapplication/json)ÚAuthorizationzContent-Typec                 ór  — t         j                  j                  | |€d n"t        j                  |«      j                  «       t        |€dnd¬«      }t         j                  j                  |d¬«      5 }t        j                  |j                  «       j                  «       «      cd d d «       S # 1 sw Y   y xY w)NÚGETÚPOST)ÚdataÚheadersÚmethodéx   )Útimeout)ÚurllibÚrequestÚRequestÚjsonÚdumpsÚencodeÚHÚurlopenÚloadsÚreadÚdecode)Úurlr   ÚrÚfs       r   Úreqr.      s‹   € Ü�‰×Ñ˜s°°©Ä4Ç:Á:ÈdÓCS×CZÑCZÓC\ÔfgØ/3¨|¡eÀð 	ó 	I€Aä	�‰×	Ñ	 ¨3Ð	Ó	/ð -°1Ü�z‰z˜!Ÿ&™&›(Ÿ/™/Ó+Ó,÷-÷ -ò -ús   Á21B-Â-B6c                 óÚ  — | j                  d«      r#dj                  | j                  d«      d d «      n"dj                  | j                  d«      d d «      }t        d| › �|«      }|d   }|d   }t	        d|› d|› �d	¬
«       t        j
                  «       }t        j
                  «       |z
  dk  r°t        |«      }	|	j                  d«      }
|
dk(  r:t        |	d   «      }t	        d|› dt        j
                  «       |z
  d›d�d	¬
«       |S |
dv r!t        t        j                  |	«      d d «      ‚t        j                  d«       t        j
                  «       |z
  dk  rŒ°t        |«      ‚)NÚblackforestlabsú/é   zhttps://queue.fal.run/Ú
request_idÚ
status_urlú[z	] queued T)ÚflushiX  ÚstatusÚ	COMPLETEDÚresponse_urlz
] done in z.1fÚs)ÚFAILEDÚERRORi   g333333ó?)r   Újoinr   r.   ÚprintÚtimer   ÚRuntimeErrorr#   r$   ÚsleepÚTimeoutError)ÚendpointÚpayloadÚlabelÚtriesÚappÚsubÚridr4   Út0r:   ÚstÚouts               r   ÚrunrM      sW  € Ø/7×/BÑ/BÐCTÔ/Uˆ#�(‰(�8—>‘> #Ó& r¨Ð*Ô
+Ð[^×[cÑ[cÐdl×drÑdrÐsvÓdwÐxzÐyzÐd{Ó[|€Cä
Ð& x jÐ1°7Ó
;€CØ
ˆlÑ
€CØ�\Ñ"€JÜ	ˆAˆeˆW�I˜c˜UÐ
#¨4Õ0Ü	�‰‹€BÜ
�)‰)‹+˜Ñ
˜SÒ
 Ü�
‹OˆØ�U‰U�8‹_ˆØ�ÒÜ�a˜Ñ'Ó(ˆCÜ�A�e�W˜J¤t§y¡y£{°2¡~°cÐ&:¸!Ð<ÀDÕIØˆJØÐ$Ñ$ÜœtŸz™z¨!›}¨T¨cÐ2Ó3Ð3Ü�
‰
�3Œô �)‰)‹+˜Ñ
˜SÓ
 ô �uÓ
Ðr   c                 ó®   — t        j                  t         j                  j                  |«      d¬«       t        j
                  j                  | |«       |S )NT)Úexist_ok)r	   ÚmakedirsÚpathÚdirnamer    r!   Úurlretrieve)r+   rQ   s     r   ÚdownloadrT   -   s6   € Ü‡K�K”—‘—‘ Ó%°Õ5Ü
‡N�N×Ñ˜s DÔ)Ø€Kr   Ú__main__é   z...)N)Úgenéð   )Ú__doc__r#   r	   ÚreÚsysr?   Úurllib.requestr    Úurllib.errorÚROOTr   r   r&   r.   rM   rT   Ú__name__r>   © r   r   ú<module>ra      si   ðá Nß <× <× <Ó <à€Ø"€ò#ð ™s›u‘nÐ6HÑI€ó-óò(ð
 ˆzÒÙ	‰#‹%��ˆ)�eÑ
Õð r   