ó
    ­[j!  ã                  óþ   • S SK Jr  S SKJrJrJrJrJr  S SKrSSK	J
r
  SSKJrJr  / SQrSrS	rS
rSr " S S5      rSS jrSS jr              SS jr            SS jrSS jr " S S\\
   5      rg)é    )Úannotations)ÚAnyÚListÚCallableÚOptionalÚ	AwaitableNé   )ÚJob)ÚJobFailedErrorÚJobWaitTimeoutError)ÚV2ResourceMixinÚJobListÚpoll_until_terminalÚapoll_until_terminalÚDEFAULT_POLL_INITIALÚDEFAULT_POLL_MAXÚDEFAULT_POLL_FACTORÚDEFAULT_WAIT_TIMEOUTg      ð?g      $@g      ø?g     À‚@c                  ó.   • \ rS rSr% SrS\S'   SS jrSrg)	r   é   a  Shared helpers for V2 sub-resources, which target an absolute (non-V1) host.

``_client`` is provided by whichever of ``SyncAPIResource``/``AsyncAPIResource``
this mixes in alongside; it is declared here as ``Any`` only so this mixin's own
methods type-check in isolation.
r   Ú_clientc                ó6   • U R                   R                   U 3$ ©N)r   Ú_v2_base_url)ÚselfÚpaths     Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/landingai_ade/resources/v2/_base.pyÚ_v2_urlÚV2ResourceMixin._v2_url&   s   € Ø—,‘,×+Ñ+Ð,¨T¨FÐ3Ð3ó    © N)r   ÚstrÚreturnr"   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   Ú__static_attributes__r!   r    r   r   r      s   ‡ ñð ƒL÷4r    r   c                ó:   • Ub  U$ [        U [        -  [        5      $ r   )Úminr   r   )ÚcurrentÚpoll_intervals     r   Ú_next_delayr/   *   s"   € ØÑ ØÐÜˆwÔ,Ñ,Ô.>Ó?Ð?r    c          	     ó  • U(       az  U R                   bl  [        SU R                   SU R                  R                   SU R                   R
                  =(       d    U R                   R                  =(       d    S 35      eg g )NúJob z ended z: zunknown error)Úerrorr   Újob_idÚstatusÚvalueÚmessageÚcode)ÚjobÚraise_on_failures     r   Ú_raise_if_failedr:   0   sf   € Þ˜CŸI™IÑ1ÜØ�3—:‘:�,˜g c§j¡j×&6Ñ&6Ð%7°r¸#¿)¹)×:KÑ:K×:pÈsÏyÉyÏ~É~×:pÐapÐ9qÐró
ð 	
ð 2Ðr    c               óP  • U" 5       U-   nUb  UO[         n U " 5       nUR                  (       a  [        X…S9  U$ U" 5       U:¼  a3  [        SUR                   SU SUR
                  R                   S35      eU" [        U[        SXa" 5       -
  5      5      5        [        Xt5      nM‘  )a
  Poll ``get_job`` with backoff until the job reaches a terminal state.

``monotonic``/``sleep`` are injected (rather than reading ``time`` directly) so
tests can drive a fake clock without real time passing; production callers pass
``time.monotonic``/``time.sleep``.
©r9   r1   ú did not finish within ús (last status: ú).ç        )
r   Úis_terminalr:   r   r3   r4   r5   r,   Úmaxr/   )	Úget_jobÚ	monotonicÚsleepÚtimeoutr.   r9   ÚdeadlineÚdelayr8   s	            r   r   r   7   s­   € ñ ‹{˜WÑ$€HØ*Ñ6‰MÔ<P€EØ
Ù‹iˆØ�?�?Ü˜SÒDØˆJÙ‹;˜(Ó"Ü%Ø�s—z‘z�lÐ"9¸'¸ÐBRÐSV×S]ÑS]×ScÑScÐRdÐdfÐgóð ñ 	Œc�%œ˜S (¨Y«[Ñ"8Ó9Ó:Ô;Ü˜EÓ1ˆñ r    c             ƒ  óœ  #   • U" 5       U-   nUb  UO[         n U " 5       I Sh  v•N nUR                  (       a  [        XtS9  U$ U" 5       U:¼  a3  [        SUR                   SU SUR
                  R                   S35      e[        R                  " [        U[        SXQ" 5       -
  5      5      5      I Sh  v•N   [        Xc5      nM¯   N¤ N7f)zHAsync mirror of :func:`poll_until_terminal`; sleeps via ``anyio.sleep``.Nr<   r1   r=   r>   r?   r@   )r   rA   r:   r   r3   r4   r5   ÚanyiorE   r,   rB   r/   )rC   rD   rF   r.   r9   rG   rH   r8   s           r   r   r   U   sÅ   é € ñ ‹{˜WÑ$€HØ*Ñ6‰MÔ<P€EØ
Ù“I�oˆØ�?�?Ü˜SÒDØˆJÙ‹;˜(Ó"Ü%Ø�s—z‘z�lÐ"9¸'¸ÐBRÐSV×S]ÑS]×ScÑScÐRdÐdfÐgóð ô �kŠkœ#˜e¤S¨¨h¸»Ñ.DÓ%EÓFÓG×GÐGÜ˜EÓ1ˆñ Ùñ 	Hùs"   ‚!C£C¤BCÂ6C
Â7CÃ
Cc                ó4   • [        U [        5      (       a  U $ S $ r   )Ú
isinstancer"   )r5   s    r   Ú_cast_opt_strrM   m   s   € Ü˜u¤c×*Ñ*ˆ5Ð4°Ð4r    c                  óf   • \ rS rSr% SrSrS\S'   SrS\S'   SrS	\S
'   Sr	S	\S'   \
SS j5       rSrg)r   éq   zWA list of normalized jobs plus the pagination envelope (``has_more``, ``org_id``, ...).FÚboolÚhas_moreNúOptional[str]Úorg_idzOptional[int]ÚpageÚ	page_sizec                óz  • U " U5      nUR                  S5      n[        U[        5      (       a  UOSUl        [	        UR                  S5      5      Ul        UR                  S5      nUR                  S5      n[        U[        5      (       a  UOS Ul        [        U[        5      (       a  Xcl        U$ S Ul        U$ )NrQ   FrS   rT   rU   )	ÚgetrL   rP   rQ   rM   rS   ÚintrT   rU   )ÚclsÚjobsÚenvelopeÚoutÚhmrT   rU   s          r   ÚbuildÚJobList.buildy   sš   € á�$‹iˆØ�\‰\˜*Ó%ˆÜ'¨¬D×1Ñ1‘r°uˆŒÜ" 8§<¡<°Ó#9Ó:ˆŒ
Ø�|‰|˜FÓ#ˆØ—L‘L Ó-ˆ	Ü% d¬C×0Ñ0‘4°dˆŒÜ%/°	¼3×%?Ñ%?˜	ŒØˆ
ð FJˆŒØˆ
r    r!   )rZ   z	List[Job]r[   Úobjectr#   z	'JobList')r$   r%   r&   r'   r(   rQ   r)   rS   rT   rU   Úclassmethodr^   r*   r!   r    r   r   r   q   s?   ‡ Ùaà€HˆdÓØ €FˆMÓ Ø€Dˆ-ÓØ#€Iˆ}Ó#àó	ó ó	r    r   )r-   Úfloatr.   úOptional[float]r#   rb   )r8   r
   r9   rP   r#   ÚNone)rC   zCallable[[], Job]rD   úCallable[[], float]rE   zCallable[[float], None]rF   rb   r.   rc   r9   rP   r#   r
   )rC   zCallable[[], Awaitable[Job]]rD   re   rF   rb   r.   rc   r9   rP   r#   r
   )r5   r`   r#   rR   )Ú
__future__r   Útypingr   r   r   r   r   rJ   Útypes.v2r
   Úlib.v2_errorsr   r   Ú__all__r   r   r   r   r   r/   r:   r   r   rM   r   r!   r    r   Ú<module>rk      sê   ðå "ç ;Õ ;ã å ß @ò	€ð Ð ØÐ ØÐ ØÐ ÷4ñ 4ô@ô
ð2Øð2ð #ð2ð #ð	2ð
 ð2ð #ð2ð ð2ð 	ô2ð<2Ø)ð2ð #ð2ð ð	2ð
 #ð2ð ð2ð 	ô2ô05ôˆd�3‰iõ r    