Ë
    Fü´jþ4  ã                  óà  — 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+	 	 	 	 	 	 	 	 	 	 	 	 dAd„Z,dBd„Z-dCd„Z.dDd„Z/dEd„Z0dFd„Z1dGd„Z2dHd„Z3dId„Z4dJd„Z5dKd „Z6d!d"d#œdLd$„Z7dMd%„Z8dNd&„Z9 ed'«      Z: ed(«      Z;edOd)„«       Z<edPd*„«       Z<edQd+„«       Z<dRd,„Z<dSd-„Z=dTd.„Z>dUd/„Z?dVd0„Z@dWd1„ZAdXd2„ZBdYd3„ZCdZd4„ZDd[d5„ZEd\d6„ZFd]d7„ZGd8d9œd^d:„ZHd_d;„ZId`d<„ZJdad=„ZKy)bé    )Ú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ÚAsyncAzureOpenAIc                ó@   — | D ��cg c]  }|D ]  }|‘Œ Œ c}}S c c}}w ©N© )ÚtÚsublistÚitems      úR/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/_utils/_utils.pyÚflattenr(   %   s"   € Ø !×6�W¨gÒ6 dŠDÐ6ˆDÓ6Ð6ùÓ6s   †Úbrackets)Úarray_formatc          
     óV   — g }|D ]!  }|j                  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_keyr*   )ÚextendÚ_extract_items)ÚqueryÚpathsr*   ÚfilesÚpaths        r'   Úextract_filesr5   )   s9   € ð$ *,€EØò jˆØ�‰”^ E¨4°qÈÐ[gÔhÕiðjà€Ló    c           
     ó”   — | dk(  ry| dk(  rd|› d�S | dk(  s| dk(  ryt        d	| › d
dj                  t        t        «      «      › �«      ‚)Nr)   z[]Úindicesú[ú]ÚrepeatÚcommaÚ zUnknown array_format value: z, choose from ú, )ÚNotImplementedErrorÚjoinr   r   )r*   Úarray_indexs     r'   Ú_array_suffixrB   A   se   € Ø�zÒ!ØØ�yÒ Ø�;�-˜qÐ!Ð!Ø�xÒ <°7Ò#:ð Ü
Ø
& | n°NÀ4Ç9Á9ÌXÔVaÓMbÓCcÐBdÐeóð r6   c               ó0  — 	 ||   }|dz  }t        | «      rg	 t        d„ ||d  D «       «      r.|t        |«      k(  st	        | |   «      r| j                  |«      }n| |   }|€|}n	|d|› d�z  }t        |||||¬«      S t	        | «      rM|d	k7  rg S t!        t        | «      D ��cg c]&  \  }}t        ||||�|nd
t        ||«      z   |¬«      ‘Œ( c}}«      S g S # t         $ r� t        | «      sg cY S ddlm} |€J ‚t	        | «      rYg }t        | «      D ]E  \  }}	t        ||«      }
|r||
z   n|
} ||	|¬«       |j                  |t        t        |	«      f«       ŒG |cY S  || |¬«       |t        t        | «      fgcY S w xY w# t        $ r g cY S w xY wc c}}w )Nr   )Úassert_is_file_content)Úkeyé   c              3  ó&   K  — | ]	  }|d k(  –— Œ y­w)ú<array>Nr#   )Ú.0Úps     r'   ú	<genexpr>z!_extract_items.<locals>.<genexpr>u   s   è ø€ Ò8 a�1˜	•>Ñ8ùs   ‚r9   r:   r,   rH   r=   )Ú
IndexErrorÚis_givenÚ_filesrD   Úis_listÚ	enumeraterB   Úappendr   r   Úis_dictÚallÚlenÚpopÚKeyErrorr0   r(   )Úobjr4   r-   r.   r*   rE   rD   r3   rA   ÚentryÚsuffixÚemitted_keyr&   s                r'   r0   r0   O   sò  € ð7Ø�5‰kˆð0 
ˆQ�J€EÜˆs„|ð	ô Ñ8¨4°°¨<Ô8Ô8¸eÄsÈ4ÃyÒ>PÔT[Ð\_Ð`cÑ\dÔTeØ—w‘w˜s“|‘à˜3‘x�ð Ð Ø‰Mà˜q   Q˜ZÑ'ˆMÜØØØØ'Ø%ô
ð 	
ô 
�ŒØ�)ÒØˆIäô *3°3«÷ñ &�K ô ØØØà*7Ð*C™ÈÌ}Ð]iÐkvÓOwÑwà!-öóó
ð 	
ð  €IøôI ò 7Ü˜Œ}àŠIõ 	4ð Ð(Ð(Ð(ä�3Œ<Ø13ˆEÜ&/°£nò DÑ"�˜UÜ& |°[ÓA�Ù:G˜}¨vÒ5ÈV�Ù& u°+Õ>Ø—‘˜k¬4´	¸5Ó+AÐBÕCð	Dð
 ŠLá˜s¨Õ6Ø¤¤Y°Ó 4Ð5Ð6Ò6ð+7ûô@ ò 	ð ŠIð		üó*s6   ‚C ˜AF Â#+F
ÃE>Ã0A,E>ÅE>Å=E>ÆFÆFc                óJ   — t        | t        «       xr t        | t        «       S r"   )Ú
isinstancer   r   ©rW   s    r'   rM   rM       s!   € Ü˜#œxÓ(Ð(ÒF´¸CÄÓ1FÐ-FÐFr6   c                ó"   — t        | t        «      S r"   ©r\   Útupler]   s    r'   Úis_tuplera   ®   ó   € Ü�cœ5Ó!Ð!r6   c                ó"   — t        | t        «      S r"   r_   r]   s    r'   Ú
is_tuple_trd   ²   rb   r6   c                ó"   — t        | t        «      S r"   ©r\   r   r]   s    r'   Úis_sequencerg   ¶   ó   € Ü�cœ8Ó$Ð$r6   c                ó"   — t        | t        «      S r"   rf   r]   s    r'   Úis_sequence_trj   º   rh   r6   c                ó"   — t        | t        «      S r"   ©r\   r   r]   s    r'   Ú
is_mappingrm   ¾   ó   € Ü�cœ7Ó#Ð#r6   c                ó"   — t        | t        «      S r"   rl   r]   s    r'   Úis_mapping_trp   Â   rn   r6   c                ó"   — t        | t        «      S r"   )r\   Údictr]   s    r'   rR   rR   Æ   ó   € Ü�cœ4Ó Ð r6   c                ó"   — t        | t        «      S r"   )r\   Úlistr]   s    r'   rO   rO   Ê   rs   r6   c                ó"   — t        | t        «      S r"   )r\   r
   r]   s    r'   Úis_iterablerw   Î   rh   r6   r>   Úor)ÚdelimÚfinalc               ó¢   — t        | «      }|dk(  ry|dk(  r| d   S |dk(  r| d   › d|› d| d   › �S |j                  | d d «      d|› d| d   › �z   S )Nr   r=   rF   r   ú éÿÿÿÿ)rT   r@   )Úseqry   rz   Úsizes       r'   Ú
human_joinr€   Ó   sv   € Üˆs‹8€DØˆq‚yØàˆq‚yØ�1‰vˆàˆq‚yØ�a‘&�˜˜5˜'  3 q¡6 (Ð+Ð+à�:‰:�c˜#˜2�hÓ A e W¨A¨c°"©g¨YÐ"7Ñ7Ð7r6   c                ó   — d| › d�S )zOAdd single quotation marks around the given string. Does *not* do any escaping.ú'r#   )Ústrings    r'   Úquoter„   á   s   € àˆvˆh�aˆ=Ðr6   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: ...
    ```
    c                ó$  •‡ ‡— t        j                  ‰ «      j                  }|j                  «       D ��cg c]+  \  }}|j                  |j
                  |j                  hv r|‘Œ- c}}Št        j                  ‰ «      dˆ ˆˆfd„«       }|S c c}}w )Nc                 ól  •‡— t        «       Št        | «      D ]  \  }}	 ‰j                  ‰|   «       Œ |j                  «       D ]  }‰j                  |«       Œ ‰D ]  }t        ˆfd„|D «       «      }|sŒ nç t        ‰«      dkD  rTt        ‰D ��cg c],  }dt        |D �cg c]  }t        |«      ‘Œ c}d¬«      z   d	z   ‘Œ. c}}«      }d
|› d�}	t	        |	«      ‚t        ‰«      dkD  sJ ‚t        t        ‰d   «      ‰z
  «      }
t        |
«      dkD  r0dt        |
D �cg c]  }t        |«      ‘Œ c}«      › �}	t	        |	«      ‚dt        |
d   «      › �}	t	        |	«      ‚ ‰| i |¤ŽS # t        $ r2 t	        ‰j
                  › dt        ‰«      › dt        | «      › d�«      d ‚w xY wc c}w c c}}w c c}w )Nz	() takes z argument(s) but z were givenc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr"   r#   )rI   ÚparamÚgiven_paramss     €r'   rK   z@required_args.<locals>.inner.<locals>.wrapper.<locals>.<genexpr>  s   øè ø€ ÒJ¸˜u¨Ô4ÑJùs   ƒrF   ú(Úand)rz   ú)z,Missing required arguments; Expected either z arguments to be givenr   zMissing required arguments: zMissing required argument: )ÚsetrP   ÚaddrL   Ú	TypeErrorÚ__name__rT   ÚkeysrS   r€   r„   ru   )ÚargsÚkwargsÚiÚ_rE   ÚvariantÚmatchesÚargÚ
variationsÚmsgÚmissingrŠ   ÚfuncÚ
positionalÚvariantss              @€€€r'   Úwrapperz-required_args.<locals>.inner.<locals>.wrapper  sß  ù€ ä%(£UˆLÜ! $›ò  ‘��1ð Ø ×$Ñ$ Z°¡]Õ3ð ð —{‘{“}ò &�Ø× Ñ  Õ%ð&ð $ò %�ÜÓJÀ'ÔJÓK�ÚÙð%ô
 �x“= 1Ò$Ü!+Ømu×vÐbi˜œzÀÖ*I¸#¬5°­:Ò*IÐQVÔWÑWÐZ]Ó]Óvó"�Jð IÈÈÐTjÐk�Cô   “nÐ$ô ˜x›=¨1Ò,Ð,Ð,ô #¤3 x°¡{Ó#3°lÑ#BÓC�GÜ˜7“| aÒ'Ø <¼ZÐ_fÖHgÐX[ÌÈsÍÒHgÓ=hÐ<iÐj˜ô   “nÐ$ð !<¼EÀ'È!Á*Ó<MÐ;NÐO˜Ü “nÐ$Ù˜Ð( Ñ(Ð(øô9 "ò  Ü#ØŸ=™=˜/¨´3°z³?Ð2CÐCTÔUXÐY]ÓU^ÐT_Ð_jÐkóàð ð üò +JùÓvùò Ihs)   ŸE(ÂF+
Â!F&Â3F+
ÄF1
Å(;F#Æ&F+
)r“   Úobjectr”   r¡   Úreturnr¡   )	ÚinspectÚ	signatureÚ
parametersÚitemsÚkindÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚ	functoolsÚwraps)r�   ÚparamsÚnamer‰   r    rž   rŸ   s   `    @€r'   Úinnerzrequired_args.<locals>.innerü   s‹   ú€ Ü×"Ñ" 4Ó(×3Ñ3ˆð  &Ÿ|™|›~÷
á��eØ�z‰zà×%Ñ%Ø×+Ñ+ðñò ó
ˆ
ô 
�‰˜Ó	ö!	)ó 
ð!	)ðF ˆùó]
s   ¶0B)r�   r   r¢   r   r#   )rŸ   r®   s   ` r'   Úrequired_argsr¯   æ   s   ø€ õ,0ðd €Lr6   Ú_KÚ_Vc                 ó   — y r"   r#   r]   s    r'   Ústrip_not_givenr³   5  s   € Ø(+r6   c                 ó   — y r"   r#   r]   s    r'   r³   r³   9  s   € ØFIr6   c                 ó   — y r"   r#   r]   s    r'   r³   r³   =  s   € Ø,/r6   c                ó˜   — | €yt        | «      s| S | j                  «       D ��ci c]  \  }}t        |t        «      rŒ||“Œ c}}S c c}}w )zHRemove all top-level keys where their values are instances of `NotGiven`N)rm   r¦   r\   r   )rW   rE   Úvalues      r'   r³   r³   A  sA   € à
€{Øä�cŒ?Øˆ
à),¯©«×X™:˜3 ¼JÀuÌhÕ<WˆC�‰JÓXÐXùÓXs
   ¤A½Ac                ó   — t        | d¬«      S )Né
   )Úbase)Úint©Úvals    r'   Úcoerce_integerr¾   L  s   € Üˆs˜ÔÐr6   c                ó   — t        | «      S r"   )Úfloatr¼   s    r'   Úcoerce_floatrÁ   P  s   € Ü�‹:Ðr6   c                ó(   — | dk(  xs | dk(  xs | dk(  S )NÚtrueÚ1Úonr#   r¼   s    r'   Úcoerce_booleanrÆ   T  s   € Ø�&‰=Ò5˜C 3™JÒ5¨#°©+Ð5r6   c                ó   — | €y t        | «      S r"   )r¾   r¼   s    r'   Úmaybe_coerce_integerrÈ   X  ó   € Ø
€{ØÜ˜#ÓÐr6   c                ó   — | €y t        | «      S r"   )rÁ   r¼   s    r'   Úmaybe_coerce_floatrË   ^  s   € Ø
€{ØÜ˜ÓÐr6   c                ó   — | €y t        | «      S r"   )rÆ   r¼   s    r'   Úmaybe_coerce_booleanrÍ   d  rÉ   r6   c                óD   — | j                  |«      r| t        |«      d S | S )zXRemove a prefix from a string.

    Backport of `str.removeprefix` for Python < 3.9
    N)Ú
startswithrT   )rƒ   Úprefixs     r'   ÚremoveprefixrÑ   j  s(   € ð
 ×Ñ˜Ô Ø”c˜&“k�mÐ$Ð$Ø€Mr6   c                óF   — | j                  |«      r| dt        |«        S | S )zXRemove a suffix from a string.

    Backport of `str.removesuffix` for Python < 3.9
    N)ÚendswithrT   )rƒ   rY   s     r'   ÚremovesuffixrÔ   t  s(   € ð
 ‡��vÔØ�nœ˜V›˜Ð%Ð%Ø€Mr6   c                óz   — t        | «      j                  «       }t        j                  j	                  | «      }||fS r"   )r   Ú
read_bytesÚosr4   Úbasename)r4   ÚcontentsÚ	file_names      r'   Úfile_from_pathrÛ   ~  s3   € Ü�D‹z×$Ñ$Ó&€HÜ—‘× Ñ  Ó&€IØ�xÐ Ð r6   c                ó‚  — |j                  «       }t        | «      r@| j                  «       D ]-  \  }}|j                  «       |k(  sŒt        |t        «      sŒ+|c S  t        j                  dd„ |j                  «       «      }|||j                  «       |fD ]  }| j                  |«      }|sŒ|c S  t        d|› d�«      ‚)Nz([^\w])(\w)c                ód   — | j                  d«      | j                  d«      j                  «       z   S )NrF   r   )ÚgroupÚupper)Úpats    r'   ú<lambda>z%get_required_header.<locals>.<lambda>�  s%   € ¸#¿)¹)ÀA»,ÈÏÉÐSTË×I[ÑI[ÓI]Ñ:]€ r6   zCould not find z header)Úlowerrp   r¦   r\   ÚstrÚreÚsubÚ
capitalizerß   ÚgetÚ
ValueError)ÚheadersÚheaderÚlower_headerÚkÚvÚintercaps_headerÚnormalized_headerr·   s           r'   Úget_required_headerrð   „  s·   € Ø—<‘<“>€LÜ�GÔà—M‘M“Oò 	‰DˆAˆqØ�w‰w‹y˜LÓ(¬Z¸¼3Õ-?Ø’ð	ô
 —v‘v˜nÑ.]Ð_e×_pÑ_pÓ_rÓsÐà$ l°F·L±L³NÐDTÐUò ÐØ—‘Ð-Ó.ˆÚØŠLðô
 � v h¨gÐ6Ó
7Ð7r6   c                 óJ   — 	 t        j                  «       S # t        $ r Y yw xY w)NÚfalse)ÚsniffioÚcurrent_async_libraryÚ	Exceptionr#   r6   r'   Úget_async_libraryrö   —  s(   € ðÜ×,Ñ,Ó.Ð.øÜò Ùðús   ‚ –	"¡"é€   ©Úmaxsizec                óN   — 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û   ž  s&   € ô ×!Ñ!Øô€Gô ”�WÓÐr6   c                óh  — t        | «      r6| j                  «       D ��ci c]  \  }}t        |«      t        |«      “Œ c}}S t        | «      r4t	        | t
        t        t        f«      s| D �cg c]  }t        |«      ‘Œ c}S t	        | t        t        f«      r| j                  «       S | S c c}}w c c}w )zvTranslates a mapping / sequence recursively in the same fashion
    as `pydantic` v2's `model_dump(mode="json")`.
    )rm   r¦   Ú	json_saferw   r\   rã   ÚbytesÚ	bytearrayr   r   Ú	isoformat)ÚdatarE   r·   r&   s       r'   rý   rý   ¨  sŽ   € ô �$ÔØCGÇ:Á:Ã<×P±Z°S¸%”	˜#“¤	¨%Ó 0Ñ0ÓPÐPä�4Ô¤¨D´3¼¼yÐ2IÔ!JØ,0Ö1 D”	˜$•Ò1Ð1ä�$œ¤4Ð(Ô)Ø�~‰~ÓÐà€Kùó Qùò 2s   ŸB)Á,B/c                ó&   — ddl m} t        | |«      S )Nr   )r   )Ú	lib.azurer   r\   )Úclientr   s     r'   Úis_azure_clientr  ¸  s   € Ý'ä�f˜kÓ*Ð*r6   c                ó&   — ddl m} t        | |«      S )Nr   )r    )r  r    r\   )r  r    s     r'   Úis_async_azure_clientr  ¾  s   € Ý,ä�fÐ.Ó/Ð/r6   )r$   zIterable[Iterable[_T]]r¢   zlist[_T])r1   zMapping[str, object]r2   zSequence[Sequence[str]]r*   r   r¢   úlist[tuple[str, FileTypes]])r*   r   rA   r»   r¢   rã   )rW   r¡   r4   úSequence[str]r-   r»   r.   ú
str | Noner*   r   r¢   r  )rW   z_T | NotGiven | Omitr¢   zTypeGuard[_T])rW   r¡   r¢   zTypeGuard[tuple[object, ...]])rW   z_TupleT | objectr¢   zTypeGuard[_TupleT])rW   r¡   r¢   zTypeGuard[Sequence[object]])rW   z_SequenceT | objectr¢   zTypeGuard[_SequenceT])rW   r¡   r¢   zTypeGuard[Mapping[str, object]])rW   z_MappingT | objectr¢   zTypeGuard[_MappingT])rW   r¡   r¢   zTypeGuard[dict[object, object]])rW   r¡   r¢   zTypeGuard[list[object]])rW   r¡   r¢   zTypeGuard[Iterable[object]])r~   r	  ry   rã   rz   rã   r¢   rã   )rƒ   rã   r¢   rã   )rŸ   r	  r¢   ú Callable[[CallableT], CallableT])rW   ÚNoner¢   r  )rW   zMapping[_K, _V | NotGiven]r¢   zdict[_K, _V])rW   r¡   r¢   r¡   )rW   zobject | Noner¢   r¡   )r½   rã   r¢   r»   )r½   rã   r¢   rÀ   )r½   rã   r¢   Úbool)r½   r
  r¢   ú
int | None)r½   r
  r¢   zfloat | None)r½   r
  r¢   zbool | None)rƒ   rã   rÐ   rã   r¢   rã   )rƒ   rã   rY   rã   r¢   rã   )r4   rã   r¢   r   )ré   r   rê   rã   r¢   rã   )r¢   rã   )rù   r  r¢   r  )r  r¡   r¢   r¡   )r  r¡   r¢   zTypeGuard[AzureOpenAI])r  r¡   r¢   zTypeGuard[AsyncAzureOpenAI])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   r¡   r   rã   r   r   r   r  r   r    r(   r5   rB   r0   rM   ra   rd   rg   rj   rm   rp   rR   rO   rw   r€   r„   r¯   r°   r±   r³   r¾   rÁ   rÆ   rÈ   rË   rÍ   rÑ   rÔ   rÛ   rð   rö   rû   rý   r  r  r#   r6   r'   ú<module>r     sü  ðÝ "ã 	Û 	Û Û ÷÷ ÷ õ ß #ß 1ã ç HÕ HáˆTƒ]€Ù
�) 5¨°¨Ñ#5Ô
6€Ù�K w¨s°F¨{Ñ';Ô<€	Ù�\¨°&Ñ)9Ô:€
Ù�K x°°S°Ñ'9Ô:€	áß9ó7ð !+ñð  ðð
 #ðð ðð !óó0ðNØ	ðNà
ðNð ð	Nð
 ðNð ðNð !óNóbGó"ó"ó%ó%ó$ó$ó!ó!ó%ð
 48Àdõ 8óó
HñV ˆTƒ]€ÙˆTƒ]€ð 
Ú +ó 
Ø +ð 
Ú Ió 
Ø Ið 
Ú /ó 
Ø /óYóóó6óóóóóó!ó8ó&ð (+õ óó +ô0r6   