+
    cMi                    $   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHtHt ^ RIHt ]! ]4      P#                  4       P$                  ^,          t]R,          R,          t]P+                  R	R	R
7        ! R R]4      t ! R R4      tR# )    )annotationsN)Path)Any)KlingConfig	ENDPOINTS)make_jwt_from_envlogsrequestsT)parentsexist_okc                  >   a  ] tR t^tRRRRRR/R V 3R llltRtV ;t# )	KlingClientErrorcategoryunknownstatus_codeNresponse_bodyc               (    V ^8  d   QhRRRRRRRR/# )   messagestrr   r   
int | Noner   
str | None )formats   "scripts/kling_client.py__annotate__KlingClientError.__annotate__   s*     + + +# +PZ +r| +    c               	J   < \         SV `  V4       W n        W0n        W@n        R # N)super__init__r   r   r   )selfr   r   r   r   	__class__s   &&$$$r   r"   KlingClientError.__init__   s!    ! &*r   )r   r   r   )__name__
__module____qualname____firstlineno__r"   __static_attributes____classcell__)r$   s   @r   r   r      s-    +	 +]a +  @D + + +r   r   c                  ~    ] tR t^tRR R lltR R ltR R ltR R	 ltR
 R ltRR R llt	R R lt
R R ltRtR# )KlingClientNc                   V ^8  d   QhRR/# )r   configzKlingConfig | Noner   )r   s   "r   r   KlingClient.__annotate__   s     f f1 fr   c           
     	   T;'       g    \        4       V n        V P                  P                  '       g    \        V P                  P                  \	        4       V P                  P
                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  R 7      V n        R# R#   \         d   p\        RT 2RR7      ThRp?ii ; i))api_base_url	api_tokencallback_base_urlrequest_timeout_secconcurrency_limitcallback_shared_secretassets_rootzKling auth bootstrap failed: r/   r   N)r   r/   r3   r2   r   r4   r5   r6   r7   r8   	Exceptionr   )r#   r/   es   && r   r"   KlingClient.__init__   s    --{{$$$f)!%!9!9/1&*kk&C&C(,(G(G&*kk&C&C+/;;+M+M $ 7 7 %  f&)Fqc'JU]^deefs   BC C3C..C3c                   V ^8  d   QhRR/# )r   returnzdict[str, str]r   )r   s   "r   r   r0   +   s     h h. hr   c                	<    R RV P                   P                   2RR/# )AuthorizationzBearer zContent-Typezapplication/json)r/   r3   )r#   s   &r   _headersKlingClient._headers+   s$    74;;+@+@*A!BNTfggr   c                    V ^8  d   QhRRRR/# )r   endpoint_typer   r>   r   )r   s   "r   r   r0   .   s     ; ;# ;# ;r   c                	    \         P                  ! V4      pV'       g   \        R V 2RR7      hV P                  P                  P                  R4      V,           # )zUnknown endpoint_type: r/   r9   /)r   getr   r/   r2   rstrip)r#   rD   paths   && r   _urlKlingClient._url.   sI    }}]+"%<]O#LW_``{{''..s3d::r   c               $    V ^8  d   QhRRRRRR/# )r   statusr   bodyr   r>   r   r   )r   s   "r   r   r0   4   s!      * J 3 r   c                	0   T;'       g    R P                  4       pVR9   g   RV9   g   RV9   g   RV9   d   R# V'       d   RTu;8:  d
   R8  d    R#  RV9   g   R	V9   d   R# V'       d   R
Tu;8:  d
   R8  d    R#  RV9   g   RV9   g   RV9   d   R# R# ) concurrencyquotaz
rate limitquota_or_concurrencyi  iX  	transient
moderationzcontent riski  	malformedjsonhtmldoctypeunexpected_responser   )i  i  )lower)r#   rM   rN   blobs   &&& r   _categorizeKlingClient._categorize4   s    

!!#Z=D#8GtO|_cOc)cV)c) *4>T#9cV)c) *T>Vt^yD/@(r   c               $    V ^8  d   QhRRRRRR/# )r   rD   r   payloaddict[str, Any]r>   r   )r   s   "r   r   r0   B   s&     W W# W W> Wr   c                	F    V P                  R V P                  V4      W!4      # )POST)_requestrJ   )r#   rD   r`   s   &&&r   postKlingClient.postB   s    }}VTYY}%=wVVr   c               $    V ^8  d   QhRRRRRR/# )r   urlr   	log_labelr>   ra   r   )r   s   "r   r   r0   E   s!     : :3 :3 :^ :r   c                	*    V P                  R VRV4      # )GETN)rd   )r#   rh   ri   s   &&&r   get_urlKlingClient.get_urlE   s    }}UCy99r   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r   methodr   rh   r`   zdict[str, Any] | Noneri   r>   ra   r   )r   s   "r   r   r0   H   s2      s  7L Y\ ao r   c                	   Ve&   \         P                  ! V4      P                  R4      MR p\        P                  P                  W%V P                  4       VR7      p \        P                  P                  W`P                  P                  R7      ;_uu_ 4       pVP                  4       P                  RRR7      p\        VRR 4      p	R R R 4        \         P*                  ! X4      pT P#                  YC;'       g    / T4       T#   + '       g   i     LE; i  \        P                  P                   d   p
T
P                  4       P                  RRR7      pT P                  T
P                   T4      pT P#                  YC;'       g    / R\%        T
4      R	T
P                   R
TRT/4       \'        \%        T
4      YP                   TR7      T
hR p
?
i\(         dF   p
T P#                  YC;'       g    / R\%        T
4      RR/4       \'        \%        T
4      RR7      T
hR p
?
ii ; i  \         P,                   dQ   p
T P                  X	X4      pT P#                  YC;'       g    / RRT
 2R	T	R
TRT/4       \'        RT
 2YTR7      T
hR p
?
ii ; i)Nzutf-8)dataheadersro   )timeoutreplace)errorsrM   ignoreerrorr   r   r   )r   r   r   r   r9   zNon-JSON response: zNon-JSON response from Kling: )rW   dumpsencodeurllibrequestRequestrA   urlopenr/   r5   readdecodegetattrrw   	HTTPErrorr]   code
_write_logr   r   r:   loadsJSONDecodeError)r#   ro   rh   r`   ri   rawreqresprN   rM   r;   r   rq   s   &&&&&        r   rd   KlingClient._requestH   s^   5<5Hdjj!((1dnn$$SDMMOTZ$[	F''[[5T5T'UUY]yy{))'))D x6 V	K::d#D 		==b$7) VU ||%% 	m668??78?<D''5HOOI}}"wAWXW]W]_npt  wA  CK  7L  M"3q6H&&`dekll 	FOOI}}"wA
T]6^_"3q6I>AE	F ## 	K''5HOOI}}"wBUVWUX@Y[hjp  sB  DH  JT  V^  7_  `"%CA3#GRZ  C  D  JK  K	Ksc   <D /DD H# D	D D H 7BGH H A HH #J8AJJc               (    V ^8  d   QhRRRRRRRR/# )r   rD   r   r`   ra   responser>   Noner   )r   s   "r   r   r0   b   s0     N N Nn NP^ Ncg Nr   c           
     	    \        \        P                  ! 4       R ,          4      p\        V RV R2,          pVP                  \        P
                  ! RVRVRV/R^R7      4       R# )	i  _z.jsonrD   r`   r   F)ensure_asciiindentN)inttimeREQ_LOG_DIR
write_textrW   rx   )r#   rD   r`   r   tsrI   s   &&&&  r   r   KlingClient._write_logb   sf    t#$t1]O599

O]IwXbdl#m  }B  KL  M  	Nr   )r/   r    )query)r&   r'   r(   r)   r"   rA   rJ   r]   re   rl   rd   r   r*   r   r   r   r-   r-      s4    f h;W:4N Nr   r-   )
__future__r   rW   r   urllib.errorrz   urllib.requestpathlibr   typingr   configs.klingr   r   scripts.kling_authr   __file__resolver   ROOTr   mkdirRuntimeErrorr   r-   r   r   r   <module>r      sx    "       0 0H~''*Vmj(   $  .+| +KN KNr   