§
     �’j‘6  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZmZ d dlZddlmZmZmZmZmZ  ed	¦  «        Z ed
e	e df         ¬¦  «        Z! ede
e"e f         ¬¦  «        Z# edee          ¬¦  «        Z$ ededef         ¬¦  «        Z%erddl&m'Z'm(Z( d|d„Z)ddœd}d„Z*d~d#„Z+dd+„Z,d€d.„Z-d�d0„Z.d‚d3„Z/dƒd5„Z0d„d8„Z1d…d:„Z2d†d=„Z3d‡d?„Z4dˆdA„Z5d‰dC„Z6dDdEdFœdŠdJ„Z7d‹dL„Z8dŒdO„Z9 edP¦  «        Z: edQ¦  «        Z;ed�dS„¦   «         Z<edŽdV„¦   «         Z<ed�dW„¦   «         Z<d�dY„Z<d‘d[„Z=d’d]„Z>d“d_„Z?d”da„Z@d•dc„ZAd–de„ZBd—dg„ZCd˜di„ZDd™dk„ZEdšdo„ZFd›dp„ZGdqdrœdœdt„ZHd�dv„ZIdždy„ZJdŸd{„ZKdS ) é    )ÚannotationsN)
ÚTYPE_CHECKINGÚAnyÚTupleÚMappingÚTypeVarÚCallableÚIterableÚSequenceÚcastÚoverload)ÚPath)ÚdateÚdatetime)Ú	TypeGuardÚget_argsé   )ÚOmitÚNotGivenÚ	FileTypesÚArrayFormatÚHeadersLikeÚ_TÚ_TupleT.)ÚboundÚ	_MappingTÚ
_SequenceTÚ	CallableT)ÚAzureOpenAIÚAsyncAzureOpenAIÚtúIterable[Iterable[_T]]Úreturnúlist[_T]c                ó   — d„ | D ¦   «         S )Nc                ó   — g | ]	}|D ]}|‘ŒŒ
S © r'   )Ú.0ÚsublistÚitems      úBC:\Projects\DSCons\.venv\Lib\site-packages\openai\_utils\_utils.pyú
<listcomp>zflatten.<locals>.<listcomp>&   s%   € Ð6Ð6Ð6�W¨gÐ6Ð6 dˆDÐ6Ð6Ð6Ð6ó    r'   )r!   s    r+   Úflattenr.   %   s   € Ø6Ð6 Ð6Ñ6Ô6Ð6r-   Úbrackets)Úarray_formatÚqueryúMapping[str, object]ÚpathsúSequence[Sequence[str]]r0   r   úlist[tuple[str, FileTypes]]c          
     ób   — g }|D ])}|                      t          | |dd|¬¦  «        ¦  «         Œ*|S )a¨  Recursively extract files from the given dictionary based on specified paths.

    A path may look like this ['foo', 'files', '<array>', 'data'].

    ``array_format`` controls how ``<array>`` segments contribute to the emitted
    field name. Supported values: ``"brackets"`` (``foo[]``), ``"repeat"`` and
    ``"comma"`` (``foo``), ``"indices"`` (``foo[0]``, ``foo[1]``).

    Note: this mutates the given dictionary.
    r   N©ÚindexÚflattened_keyr0   )ÚextendÚ_extract_items)r1   r3   r0   ÚfilesÚpaths        r+   Úextract_filesr>   )   sH   € ð$ *,€EØð jð jˆØ�Š•^ E¨4°qÈÐ[gÐhÑhÔhÑiÔiÐiÐiØ€Lr-   Úarray_indexÚintÚstrc           
     óº   — | dk    rdS | dk    rd|› d�S | dk    s| dk    rdS t          d	| › d
d                     t          t          ¦  «        ¦  «        › �¦  «        ‚)Nr/   z[]Úindicesú[ú]ÚrepeatÚcommaÚ zUnknown array_format value: z, choose from ú, )ÚNotImplementedErrorÚjoinr   r   )r0   r?   s     r+   Ú_array_suffixrL   A   s„   € Ø�zÒ!Ð!ØˆtØ�yÒ Ð Ø!�;Ð!Ð!Ð!Ð!Ø�xÒÐ <°7Ò#:Ð#:ð ˆrÝ
Øe |ÐeÐeÀ4Ç9Â9ÍXÕVaÑMbÔMbÑCcÔCcÐeÐeñô ð r-   ÚobjÚobjectr=   úSequence[str]r8   r9   ú
str | Nonec          	     óP  ‡‡‡‡— 	 ‰‰         }nÌ# t           $ r¿ t          | ¦  «        sg cY S ddlm} ‰€J ‚t	          | ¦  «        rkg }t          | ¦  «        D ]U\  }}	t          ‰|¦  «        }
‰r‰|
z   n|
} ||	|¬¦  «         |                     |t          t          |	¦  «        f¦  «         ŒV|cY S  || ‰¬¦  «         ‰t          t          | ¦  «        fgcY S w xY w‰dz  Št          | ¦  «        ru	 t          d„ ‰‰d …         D ¦   «         ¦  «        r|                      |¦  «        }n| |         }n# t          $ r g cY S w xY w‰€|Šn	‰d|› d�z  Št          |‰‰‰‰¬¦  «        S t	          | ¦  «        r3|d	k    rg S t          ˆˆˆˆfd
„t          | ¦  «        D ¦   «         ¦  «        S g S )Nr   )Úassert_is_file_content)Úkeyé   c              3  ó"   K  — | ]
}|d k    V — ŒdS )ú<array>Nr'   )r(   Úps     r+   ú	<genexpr>z!_extract_items.<locals>.<genexpr>u   s&   è è € Ð8Ð8 a�1˜	’>Ð8Ð8Ð8Ð8Ð8Ð8r-   rD   rE   r7   rV   c                óh   •— g | ].\  }}t          |‰‰‰�‰ndt          ‰|¦  «        z   ‰¬¦  «        ‘Œ/S )NrH   r7   )r;   rL   )r(   r?   r*   r0   r9   r8   r=   s      €€€€r+   r,   z"_extract_items.<locals>.<listcomp>Ž   sg   ø€ ð ð ð ñ &�K õ ØØØà*7Ð*C˜˜ÈÍ}Ð]iÐkvÑOwÔOwÑwà!-ðñ ô ðð ð r-   )Ú
IndexErrorÚis_givenÚ_filesrR   Úis_listÚ	enumeraterL   Úappendr   r   Úis_dictÚallÚpopÚKeyErrorr;   r.   )rM   r=   r8   r9   r0   rS   rR   r<   r?   ÚentryÚsuffixÚemitted_keyr*   s    ````        r+   r;   r;   O   sx  øøøø€ ð7Ø�5ŒkˆˆøÝð 7ð 7ð 7Ý˜‰}Œ}ð 	àˆIˆIˆIð 	4Ð3Ð3Ð3Ð3Ð3ð Ð(Ð(Ð(å�3‰<Œ<ð 	Ø13ˆEÝ&/°¡n¤nð Dð DÑ"�˜UÝ& |°[ÑAÔA�Ø:GÐS˜}¨vÑ5Ð5ÈV�Ø&Ð& u°+Ð>Ñ>Ô>Ð>Ø—’˜k­4µ	¸5Ñ+AÔ+AÐBÑCÔCÐCÐCØˆLˆLˆLàÐ˜s¨Ð6Ñ6Ô6Ð6Ø¥¥Y°Ñ 4Ô 4Ð5Ð6Ð6Ð6Ð6ð+7øøøð. 
ˆQ�J€EÝˆs�|„|ð )
ð	õ Ð8Ð8¨4°°°¬<Ð8Ñ8Ô8Ñ8Ô8ð  Ø—w’w˜s‘|”|��à˜3”x�øøÝð 	ð 	ð 	ð ˆIˆIˆIð		øøøð
 Ð ØˆMˆMà˜Z ˜Z˜Z˜ZÑ'ˆMÝØØØØ'Ø%ð
ñ 
ô 
ð 	
õ 
�‰Œð 
Ø�)ÒÐØˆIåðð ð ð ð ð ð õ *3°3©¬ðñ ô ñ
ô 
ð 	
ð  €Is-   † �C¬BCÂ0%CÃCÃ0?D0 Ä0D?Ä>D?ú_T | NotGiven | OmitúTypeGuard[_T]c                óZ   — t          | t          ¦  «         ot          | t          ¦  «         S ©N)Ú
isinstancer   r   ©rM   s    r+   r[   r[       s'   € Ý˜#�xÑ(Ô(Ð(ÐFµ¸CÅÑ1FÔ1FÐ-FÐFr-   úTypeGuard[tuple[object, ...]]c                ó,   — t          | t          ¦  «        S rj   ©rk   Útuplerl   s    r+   Úis_tuplerq   ®   ó   € Ý�c�5Ñ!Ô!Ð!r-   ú_TupleT | objectúTypeGuard[_TupleT]c                ó,   — t          | t          ¦  «        S rj   ro   rl   s    r+   Ú
is_tuple_trv   ²   rr   r-   úTypeGuard[Sequence[object]]c                ó,   — t          | t          ¦  «        S rj   ©rk   r   rl   s    r+   Úis_sequencerz   ¶   ó   € Ý�c�8Ñ$Ô$Ð$r-   ú_SequenceT | objectúTypeGuard[_SequenceT]c                ó,   — t          | t          ¦  «        S rj   ry   rl   s    r+   Úis_sequence_tr   º   r{   r-   úTypeGuard[Mapping[str, object]]c                ó,   — t          | t          ¦  «        S rj   ©rk   r   rl   s    r+   Ú
is_mappingrƒ   ¾   ó   € Ý�c�7Ñ#Ô#Ð#r-   ú_MappingT | objectúTypeGuard[_MappingT]c                ó,   — t          | t          ¦  «        S rj   r‚   rl   s    r+   Úis_mapping_trˆ   Â   r„   r-   úTypeGuard[dict[object, object]]c                ó,   — t          | t          ¦  «        S rj   )rk   Údictrl   s    r+   r`   r`   Æ   ó   € Ý�c�4Ñ Ô Ð r-   úTypeGuard[list[object]]c                ó,   — t          | t          ¦  «        S rj   )rk   Úlistrl   s    r+   r]   r]   Ê   rŒ   r-   úTypeGuard[Iterable[object]]c                ó,   — t          | t          ¦  «        S rj   )rk   r
   rl   s    r+   Úis_iterabler’   Î   r{   r-   rI   Úor)ÚdelimÚfinalÚseqr”   r•   c               óÜ   — t          | ¦  «        }|dk    rdS |dk    r| d         S |dk    r| d         › d|› d| d         › �S |                     | d d…         ¦  «        d|› d| d         › �z   S )Nr   rH   rT   r   ú éÿÿÿÿ)ÚlenrK   )r–   r”   r•   Úsizes       r+   Ú
human_joinrœ   Ó   sŽ   € Ýˆs‰8Œ8€DØˆq‚y€yØˆràˆq‚y€yØ�1Œvˆàˆq‚y€yØ�a”&Ð+Ð+˜5Ð+Ð+ 3 q¤6Ð+Ð+Ð+à�:Š:�c˜#˜2˜#”hÑÔÐ"7 eÐ"7Ð"7¨c°"¬gÐ"7Ð"7Ñ7Ð7r-   Ústringc                ó   — d| › d�S )zOAdd single quotation marks around the given string. Does *not* do any escaping.ú'r'   )r�   s    r+   Úquoter    á   s   € àˆvˆ=ˆ=ˆ=Ðr-   Úvariantsú Callable[[CallableT], CallableT]c                 ó   ‡ — dˆ fd„}|S )a4  Decorator to enforce a given set of arguments or variants of arguments are passed to the decorated function.

    Useful for enforcing runtime validation of overloaded functions.

    Example usage:
    ```py
    @overload
    def foo(*, a: str) -> str: ...


    @overload
    def foo(*, b: bool) -> str: ...


    # This enforces the same constraints that a static type checker would
    # i.e. that either a or b must be passed to the function
    @required_args(["a"], ["b"])
    def foo(*, a: str | None = None, b: bool | None = None) -> str: ...
    ```
    Úfuncr   r#   c                ó¾   •‡ ‡— t          j        ‰ ¦  «        j        }d„ |                     ¦   «         D ¦   «         Št	          j        ‰ ¦  «        dˆ ˆˆfd„¦   «         }|S )Nc                óB   — g | ]\  }}|j         |j        |j        hv ¯|‘ŒS r'   )ÚkindÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORD)r(   ÚnameÚparams      r+   r,   z0required_args.<locals>.inner.<locals>.<listcomp>þ   sL   € ð 
ð 
ð 
á��eØŒzàÔ%ØÔ+ððð ð ðð ð r-   ÚargsrN   Úkwargsr#   c                 óH  •‡
— t          ¦   «         Š
t          | ¦  «        D ]g\  }}	 ‰
                     ‰|         ¦  «         Œ"# t          $ r9 t	          ‰j        › dt          ‰¦  «        › dt          | ¦  «        › d�¦  «        d ‚w xY w|                     ¦   «         D ]}‰
                     |¦  «         Œ‰D ]!}t          ˆ
fd„|D ¦   «         ¦  «        }|r nÅŒ"t          ‰¦  «        dk    r t          d„ ‰D ¦   «         ¦  «        }d|› d�}n‚t          ‰¦  «        d	k    sJ ‚t          t          ‰d	         ¦  «        ‰
z
  ¦  «        }	t          |	¦  «        dk    rd
t          d„ |	D ¦   «         ¦  «        › �}ndt          |	d	         ¦  «        › �}t	          |¦  «        ‚ ‰| i |¤ŽS )Nz	() takes z argument(s) but z were givenc              3  ó    •K  — | ]}|‰v V — Œ	d S rj   r'   )r(   r«   Úgiven_paramss     €r+   rX   z@required_args.<locals>.inner.<locals>.wrapper.<locals>.<genexpr>  s(   øè è € ÐJÐJ¸˜u¨Ð4ÐJÐJÐJÐJÐJÐJr-   rT   c                óP   — g | ]#}d t          d„ |D ¦   «         d¬¦  «        z   dz   ‘Œ$S )ú(c                ó,   — g | ]}t          |¦  «        ‘ŒS r'   ©r    ©r(   Úargs     r+   r,   zLrequired_args.<locals>.inner.<locals>.wrapper.<locals>.<listcomp>.<listcomp>  s   € Ð*IÐ*IÐ*I¸#­5°©:¬:Ð*IÐ*IÐ*Ir-   Úand)r•   ú))rœ   )r(   Úvariants     r+   r,   zArequired_args.<locals>.inner.<locals>.wrapper.<locals>.<listcomp>  sA   € ÐvÐvÐvÐbi˜�zÐ*IÐ*IÀÐ*IÑ*IÔ*IÐQVÐWÑWÔWÑWÐZ]Ñ]ÐvÐvÐvr-   z,Missing required arguments; Expected either z arguments to be givenr   zMissing required arguments: c                ó,   — g | ]}t          |¦  «        ‘ŒS r'   r´   rµ   s     r+   r,   zArequired_args.<locals>.inner.<locals>.wrapper.<locals>.<listcomp>&  s   € ÐHgÐHgÐHgÐX[ÍÈsÉÌÐHgÐHgÐHgr-   zMissing required argument: )Úsetr^   ÚaddrZ   Ú	TypeErrorÚ__name__rš   Úkeysra   rœ   r�   r    )r¬   r­   ÚiÚ_rS   r¹   ÚmatchesÚ
variationsÚmsgÚmissingr°   r¤   Ú
positionalr¡   s             @€€€r+   Úwrapperz-required_args.<locals>.inner.<locals>.wrapper  s	  øø€ å%(¡U¤UˆLÝ! $™œð  ð  ‘��1ð Ø ×$Ò$ Z°¤]Ñ3Ô3Ð3Ð3øÝ!ð  ð  ð  Ý#Øœ=ÐkÐkµ3°z±?´?ÐkÐkÕUXÐY]ÑU^ÔU^ÐkÐkÐkñô àð ð øøøð
 —{’{‘}”}ð &ð &�Ø× Ò  Ñ%Ô%Ð%Ð%à#ð %ð %�ÝÐJÐJÐJÐJÀ'ÐJÑJÔJÑKÔK�Øð Ø�Eðõ �x‘=”= 1Ò$Ð$Ý!+ØvÐvÐmuÐvÑvÔvñ"ô "�Jð lÈÐkÐkÐk�C�Cå˜x™=œ=¨1Ò,Ð,Ð,Ð,õ #¥3 x°¤{Ñ#3Ô#3°lÑ#BÑCÔC�GÝ˜7‘|”| aÒ'Ð'Øj½ZÐHgÐHgÐ_fÐHgÑHgÔHgÑ=hÔ=hÐjÐj˜˜àO½EÀ'È!Ä*Ñ<MÔ<MÐOÐO˜Ý ‘n”nÐ$Ø�4˜Ð( Ð(Ð(Ð(s   ¦AÁAB)r¬   rN   r­   rN   r#   rN   )ÚinspectÚ	signatureÚ
parametersÚitemsÚ	functoolsÚwraps)r¤   ÚparamsrÇ   rÆ   r¡   s   `  @€r+   Úinnerzrequired_args.<locals>.innerü   s…   øøø€ ÝÔ" 4Ñ(Ô(Ô3ˆð
ð 
à%Ÿ|š|™~œ~ð
ñ 
ô 
ˆ
õ 
Œ˜Ñ	Ô	ð!	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ñ 
Ô	ð!	)ðF ˆr-   )r¤   r   r#   r   r'   )r¡   rÏ   s   ` r+   Úrequired_argsrÐ   æ   s)   ø€ ð,0ð 0ð 0ð 0ð 0ð 0ðd €Lr-   Ú_KÚ_VÚNonec                ó   — d S rj   r'   rl   s    r+   Ústrip_not_givenrÕ   5  s   € Ø(+¨r-   úMapping[_K, _V | NotGiven]údict[_K, _V]c                ó   — d S rj   r'   rl   s    r+   rÕ   rÕ   9  s   € ØFIÀcr-   c                ó   — d S rj   r'   rl   s    r+   rÕ   rÕ   =  s   € Ø,/¨Cr-   úobject | Nonec                óh   — | €dS t          | ¦  «        s| S d„ |                      ¦   «         D ¦   «         S )zHRemove all top-level keys where their values are instances of `NotGiven`Nc                óD   — i | ]\  }}t          |t          ¦  «        °||“ŒS r'   )rk   r   ©r(   rS   Úvalues      r+   ú
<dictcomp>z#strip_not_given.<locals>.<dictcomp>I  s-   € ÐXÐXÐX™:˜3 ½JÀuÍhÑ<WÔ<WÐXˆC�ÐXÐXÐXr-   )rƒ   rË   rl   s    r+   rÕ   rÕ   A  s;   € à
€{Øˆtå�c‰?Œ?ð Øˆ
àXÐX¨¯ª©¬ÐXÑXÔXÐXr-   Úvalc                ó$   — t          | d¬¦  «        S )Né
   )Úbase)r@   ©rà   s    r+   Úcoerce_integerrå   L  s   € Ýˆs˜ÐÑÔÐr-   Úfloatc                ó    — t          | ¦  «        S rj   )ræ   rä   s    r+   Úcoerce_floatrè   P  s   € Ý�‰:Œ:Ðr-   Úboolc                ó&   — | dk    p| dk    p| dk    S )NÚtrueÚ1Úonr'   rä   s    r+   Úcoerce_booleanrî   T  s   € Ø�&Š=Ð5˜C 3šJÐ5¨#°ª+Ð5r-   ú
int | Nonec                ó(   — | €d S t          | ¦  «        S rj   )rå   rä   s    r+   Úmaybe_coerce_integerrñ   X  ó   € Ø
€{ØˆtÝ˜#ÑÔÐr-   úfloat | Nonec                ó(   — | €d S t          | ¦  «        S rj   )rè   rä   s    r+   Úmaybe_coerce_floatrõ   ^  s   € Ø
€{ØˆtÝ˜ÑÔÐr-   úbool | Nonec                ó(   — | €d S t          | ¦  «        S rj   )rî   rä   s    r+   Úmaybe_coerce_booleanrø   d  rò   r-   Úprefixc                ó^   — |                       |¦  «        r| t          |¦  «        d…         S | S )zXRemove a prefix from a string.

    Backport of `str.removeprefix` for Python < 3.9
    N)Ú
startswithrš   )r�   rù   s     r+   Úremoveprefixrü   j  s4   € ð
 ×Ò˜Ñ Ô ð %Ø•c˜&‘k”k�m�mÔ$Ð$Ø€Mr-   re   c                ó`   — |                       |¦  «        r| dt          |¦  «         …         S | S )zXRemove a suffix from a string.

    Backport of `str.removesuffix` for Python < 3.9
    N)Úendswithrš   )r�   re   s     r+   Úremovesuffixrÿ   t  s4   € ð
 ‡‚�vÑÔð &Ø�n�˜V™œ˜�nÔ%Ð%Ø€Mr-   r   c                óŠ   — t          | ¦  «                             ¦   «         }t          j                             | ¦  «        }||fS rj   )r   Ú
read_bytesÚosr=   Úbasename)r=   ÚcontentsÚ	file_names      r+   Úfile_from_pathr  ~  s9   € Ý�D‰zŒz×$Ò$Ñ&Ô&€HÝ”× Ò  Ñ&Ô&€IØ�xÐ Ð r-   Úheadersr   Úheaderc                óÂ  — |                      ¦   «         }t          | ¦  «        rK|                      ¦   «         D ]6\  }}|                      ¦   «         |k    rt          |t          ¦  «        r|c S Œ7t          j        dd„ |                     ¦   «         ¦  «        }|||                     ¦   «         |fD ]}|  	                    |¦  «        }|r|c S Œt          d|› d�¦  «        ‚)Nz([^\w])(\w)c                ó|   — |                       d¦  «        |                       d¦  «                             ¦   «         z   S )NrT   r   )ÚgroupÚupper)Úpats    r+   ú<lambda>z%get_required_header.<locals>.<lambda>�  s,   € ¸#¿)º)ÀA¹,¼,ÈÏÊÐSTÉÌ×I[ÒI[ÑI]ÔI]Ñ:]€ r-   zCould not find z header)Úlowerrˆ   rË   rk   rA   ÚreÚsubÚ
capitalizer  ÚgetÚ
ValueError)r  r  Úlower_headerÚkÚvÚintercaps_headerÚnormalized_headerrÞ   s           r+   Úget_required_headerr  „  só   € Ø—<’<‘>”>€LÝ�GÑÔð à—M’M‘O”Oð 	ð 	‰DˆAˆqØ�wŠw‰yŒy˜LÒ(Ð(­Z¸½3Ñ-?Ô-?Ð(Ø���øõ ”v˜nÐ.]Ð.]Ð_e×_pÒ_pÑ_rÔ_rÑsÔsÐà$ l°F·L²L±N´NÐDTÐUð ð ÐØ—’Ð-Ñ.Ô.ˆØð 	ØˆLˆLˆLð	õ Ð6 vÐ6Ð6Ð6Ñ
7Ô
7Ð7r-   c                 óL   — 	 t          j        ¦   «         S # t          $ r Y dS w xY w)NÚfalse)ÚsniffioÚcurrent_async_libraryÚ	Exceptionr'   r-   r+   Úget_async_libraryr   —  s8   € ðÝÔ,Ñ.Ô.Ð.øÝð ð ð Øˆwˆwðøøøs   ‚ •
#¢#é€   ©Úmaxsizer#  c                óV   — t          j        | ¬¦  «        }t          t          |¦  «        S )zmA version of functools.lru_cache that retains the type signature
    for the wrapped function arguments.
    r"  )rÌ   Ú	lru_cacher   r   )r#  rÇ   s     r+   r%  r%  ž  s0   € õ Ô!Øðñ ô €Gõ •�WÑÔÐr-   Údatac                ó:  — t          | ¦  «        rd„ |                      ¦   «         D ¦   «         S t          | ¦  «        r.t          | t          t
          t          f¦  «        sd„ | D ¦   «         S t          | t          t          f¦  «        r|  	                    ¦   «         S | S )zvTranslates a mapping / sequence recursively in the same fashion
    as `pydantic` v2's `model_dump(mode="json")`.
    c                óN   — i | ]"\  }}t          |¦  «        t          |¦  «        “Œ#S r'   ©Ú	json_saferÝ   s      r+   rß   zjson_safe.<locals>.<dictcomp>­  s,   € ÐPÐPÐP±Z°S¸%•	˜#‘”¥	¨%Ñ 0Ô 0ÐPÐPÐPr-   c                ó,   — g | ]}t          |¦  «        ‘ŒS r'   r)  )r(   r*   s     r+   r,   zjson_safe.<locals>.<listcomp>°  s   € Ð1Ð1Ð1 D•	˜$‘”Ð1Ð1Ð1r-   )
rƒ   rË   r’   rk   rA   ÚbytesÚ	bytearrayr   r   Ú	isoformat)r&  s    r+   r*  r*  ¨  s™   € õ �$ÑÔð QØPÐPÀ4Ç:Â:Á<Ä<ÐPÑPÔPÐPå�4ÑÔð 2¥¨Dµ3½½yÐ2IÑ!JÔ!Jð 2Ø1Ð1¨DÐ1Ñ1Ô1Ð1å�$�¥4Ð(Ñ)Ô)ð  Ø�~Š~ÑÔÐà€Kr-   ÚclientúTypeGuard[AzureOpenAI]c                ó.   — ddl m} t          | |¦  «        S )Nr   )r   )Ú	lib.azurer   rk   )r/  r   s     r+   Úis_azure_clientr3  ¸  s$   € Ø'Ð'Ð'Ð'Ð'Ð'å�f˜kÑ*Ô*Ð*r-   úTypeGuard[AsyncAzureOpenAI]c                ó.   — ddl m} t          | |¦  «        S )Nr   )r    )r2  r    rk   )r/  r    s     r+   Úis_async_azure_clientr6  ¾  s%   € Ø,Ð,Ð,Ð,Ð,Ð,å�fÐ.Ñ/Ô/Ð/r-   )r!   r"   r#   r$   )r1   r2   r3   r4   r0   r   r#   r5   )r0   r   r?   r@   r#   rA   )rM   rN   r=   rO   r8   r@   r9   rP   r0   r   r#   r5   )rM   rg   r#   rh   )rM   rN   r#   rm   )rM   rs   r#   rt   )rM   rN   r#   rw   )rM   r|   r#   r}   )rM   rN   r#   r€   )rM   r…   r#   r†   )rM   rN   r#   r‰   )rM   rN   r#   r�   )rM   rN   r#   r�   )r–   rO   r”   rA   r•   rA   r#   rA   )r�   rA   r#   rA   )r¡   rO   r#   r¢   )rM   rÓ   r#   rÓ   )rM   rÖ   r#   r×   )rM   rN   r#   rN   )rM   rÚ   r#   rN   )rà   rA   r#   r@   )rà   rA   r#   ræ   )rà   rA   r#   ré   )rà   rP   r#   rï   )rà   rP   r#   ró   )rà   rP   r#   rö   )r�   rA   rù   rA   r#   rA   )r�   rA   re   rA   r#   rA   )r=   rA   r#   r   )r  r   r  rA   r#   rA   )r#   rA   )r#  rï   r#   r¢   )r&  rN   r#   rN   )r/  rN   r#   r0  )r/  rN   r#   r4  )LÚ
__future__r   r  r  rÈ   rÌ   Útypingr   r   r   r   r   r	   r
   r   r   r   Úpathlibr   r   r   Útyping_extensionsr   r   r  Ú_typesr   r   r   r   r   r   rN   r   rA   r   r   r   r2  r   r    r.   r>   rL   r;   r[   rq   rv   rz   r   rƒ   rˆ   r`   r]   r’   rœ   r    rÐ   rÑ   rÒ   rÕ   rå   rè   rî   rñ   rõ   rø   rü   rÿ   r  r  r   r%  r*  r3  r6  r'   r-   r+   ú<module>r<     s  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à €€€à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hà€WˆT�]„]€Ø
ˆ'�) 5¨°¨Ô#5Ð
6Ñ
6Ô
6€ØˆG�K w¨s°F¨{Ô';Ð<Ñ<Ô<€	ØˆW�\¨°&Ô)9Ð:Ñ:Ô:€
ØˆG�K x°°S°Ô'9Ð:Ñ:Ô:€	àð :Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9ð7ð 7ð 7ð 7ð !+ðð ð ð ð ð ð0ð ð ð ðNð Nð Nð NðbGð Gð Gð Gð"ð "ð "ð "ð"ð "ð "ð "ð%ð %ð %ð %ð%ð %ð %ð %ð$ð $ð $ð $ð$ð $ð $ð $ð!ð !ð !ð !ð!ð !ð !ð !ð%ð %ð %ð %ð
 48Àdð 8ð 8ð 8ð 8ð 8ð 8ðð ð ð ð
Hð Hð Hð HðV €WˆT�]„]€Ø€WˆT�]„]€ð 
Ø +Ð +Ð +ñ 
„Ø +ð 
Ø IÐ IÐ Iñ 
„Ø Ið 
Ø /Ð /Ð /ñ 
„Ø /ðYð Yð Yð Yðð ð ð ðð ð ð ð6ð 6ð 6ð 6ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ð8ð 8ð 8ð 8ð&ð ð ð ð (+ð ð ð ð ð ð ðð ð ð ð +ð +ð +ð +ð0ð 0ð 0ð 0ð 0ð 0r-   