Ë
    ²Œj|1  ã                  óÌ  — 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 d dlZddl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„Z(	 	 	 	 	 	 	 	 	 	 d>d„Z)d?d„Z*d@d„Z+dAd„Z,dBd„Z-dCd„Z.dDd„Z/dEd„Z0dFd„Z1dGd„Z2dHd„Z3dId„Z4dd d!œdJd"„Z5dKd#„Z6dLd$„Z7 ed%«      Z8 ed&«      Z9edMd'„«       Z:edNd(„«       Z:edOd)„«       Z:dPd*„Z:dQd+„Z;dRd,„Z<dSd-„Z=dTd.„Z>dUd/„Z?dVd0„Z@dWd1„ZAdXd2„ZBdYd3„ZCdZd4„ZDd[d5„ZEd6d7œd\d8„ZFd]d9„ZGd^d:„ZHd_d;„ZIy)`é    )ÚannotationsN)
ÚTYPE_CHECKINGÚAnyÚTupleÚMappingÚTypeVarÚCallableÚIterableÚSequenceÚcastÚoverload)ÚPath)ÚdateÚdatetime)Ú	TypeGuardé   )ÚOmitÚNotGivenÚ	FileTypesÚHeadersLikeÚ_TÚ_TupleT.)ÚboundÚ	_MappingTÚ
_SequenceTÚ	CallableT)ÚAzureOpenAIÚAsyncAzureOpenAIc                ó@   — | D ��cg c]  }|D ]  }|‘Œ Œ c}}S c c}}w ©N© )ÚtÚsublistÚitems      ú^/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/openai/_utils/_utils.pyÚflattenr&   %   s"   € Ù !Ô6¡�W«g dŠD¨gˆD Ò6Ð6ùÓ6s   †c          	     óT   — g }|D ]   }|j                  t        | |dd¬«      «       Œ" |S )zÄRecursively extract files from the given dictionary based on specified paths.

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

    Note: this mutates the given dictionary.
    r   N©ÚindexÚflattened_key)ÚextendÚ_extract_items)ÚqueryÚpathsÚfilesÚpaths       r%   Úextract_filesr1   )   s/   € ð *,€EÛˆØ�‰”^ E¨4°qÈÔMÕNð à€Ló    c               ó†  — 	 ||   }|dz  }t        | «      rC	 t        |«      |k(  r| j                  |«      }n| |   }|€|}n	|d|› d�z  }t        ||||¬	«      S t	        | «      r4|d
k7  rg S t        | D �cg c]  }t        ||||�|dz   nd¬	«      ‘Œ c}«      S g S # t         $ r† t        | «      sg cY S ddlm} |€J ‚t	        | «      rBg }| D ]7  } |||r|dz   nd¬«       |j                  |dz   t        t        |«      f«       Œ9 |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_contentz[]Ú )Úkeyé   Ú[Ú]r(   z<array>)Ú
IndexErrorÚis_givenÚ_filesr4   Úis_listÚappendr   r   Úis_dictÚlenÚpopÚKeyErrorr,   r&   )	Úobjr0   r)   r*   r6   r4   r/   Úentryr$   s	            r%   r,   r,   <   s£  € ð7Ø�5‰kˆð, 
ˆQ�J€EÜˆs„|ð
	ä�D“	˜eÒ#Ø—w‘w˜s“|‘à˜3‘x�ð Ð Ø‰Mà˜q   Q˜ZÑ'ˆMÜØØØØ'ô	
ð 	
ô 
�ŒØ�)ÒØˆIäñ  óñ  �Dô ØØØØ:GÐ:S -°$Ò"6ÐY]ö	ð  ñó

ð 
	
ð €Iøô{ ò 7Ü˜Œ}àŠIõ 	4ð Ð(Ð(Ð(ä�3Œ<Ø13ˆEÛ�Ù& uÉ-°-À$Ò2FÐ]_Õ`Ø—‘˜m¨dÑ2´D¼ÀEÓ4JÐKÕLð ð ŠLá˜s¨Õ6Ø¤¤Y°Ó 4Ð5Ð6Ò6ð'7ûô: ò 	ð ŠIð		üò(s5   ‚B ˜%D- Á5D>ÂD*Â3AD*Ä
D*Ä)D*Ä-D;Ä:D;c                óJ   — t        | t        «       xr t        | t        «       S r    )Ú
isinstancer   r   ©rC   s    r%   r;   r;   …   s!   € Ü˜#œxÓ(Ð(ÒF´¸CÄÓ1FÐ-FÐFr2   c                ó"   — t        | t        «      S r    ©rF   ÚtuplerG   s    r%   Úis_tuplerK   “   ó   € Ü�cœ5Ó!Ð!r2   c                ó"   — t        | t        «      S r    rI   rG   s    r%   Ú
is_tuple_trN   —   rL   r2   c                ó"   — t        | t        «      S r    ©rF   r   rG   s    r%   Úis_sequencerQ   ›   ó   € Ü�cœ8Ó$Ð$r2   c                ó"   — t        | t        «      S r    rP   rG   s    r%   Úis_sequence_trT   Ÿ   rR   r2   c                ó"   — t        | t        «      S r    ©rF   r   rG   s    r%   Ú
is_mappingrW   £   ó   € Ü�cœ7Ó#Ð#r2   c                ó"   — t        | t        «      S r    rV   rG   s    r%   Úis_mapping_trZ   §   rX   r2   c                ó"   — t        | t        «      S r    )rF   ÚdictrG   s    r%   r?   r?   «   ó   € Ü�cœ4Ó Ð r2   c                ó"   — t        | t        «      S r    )rF   ÚlistrG   s    r%   r=   r=   ¯   r]   r2   c                ó"   — t        | t        «      S r    )rF   r
   rG   s    r%   Úis_iterablera   ³   rR   r2   c                ó  — t        | «      r;t        t        | j                  «       D ��ci c]  \  }}|t	        |«      “Œ c}}«      S t        | «      r't        t        | D �cg c]  }t	        |«      ‘Œ c}«      S | S c c}}w c c}w )z­Minimal reimplementation of copy.deepcopy() that will only copy certain object types:

    - mappings, e.g. `dict`
    - list

    This is done for performance reasons.
    )rW   r   r   ÚitemsÚdeepcopy_minimalr=   )r$   ÚkÚvrD   s       r%   rd   rd   ·   st   € ô �$ÔÜ”B¸D¿J¹J¼LÔI¹L±D°A°q˜Ô,¨QÓ/Ñ/¸LÒIÓJÐJÜˆt„}Ü”B¹dÓC¹d°UÔ)¨%Õ0¸dÑCÓDÐDØ€Kùó JùâCs   ©A;Á B
z, Ú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   r5   r7   r   Ú éÿÿÿÿ)r@   Újoin)Úseqrh   ri   Úsizes       r%   Ú
human_joinrp   Ç   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Ð7r2   c                ó   — d| › d�S )zOAdd single quotation marks around the given string. Does *not* do any escaping.Ú'r!   )Ústrings    r%   Úquotert   Õ   s   € àˆvˆh�aˆ=Ðr2   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!   )Ú.0ÚparamÚgiven_paramss     €r%   Ú	<genexpr>z@required_args.<locals>.inner.<locals>.wrapper.<locals>.<genexpr>  s   øè ø€ ÐJÁ'¸˜u¨Ô4Á'ùs   ƒr7   Ú(Úand)ri   Ú)z,Missing required arguments; Expected either z arguments to be givenr   zMissing required arguments: zMissing required argument: )ÚsetÚ	enumerateÚaddr:   Ú	TypeErrorÚ__name__r@   ÚkeysÚallrp   rt   r_   )ÚargsÚkwargsÚiÚ_r6   Ú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ÑmuÐbi˜œzÁÓ*IÁ¸#¬5°­:ÀÑ*IÐQVÔWÑWÐZ]Ó]ÐmuÒvó"�Jð IÈÈÐTjÐk�Cô   “nÐ$ô ˜x›=¨1Ò,Ð,Ð,ô #¤3 x°¡{Ó#3°lÑ#BÓC�GÜ˜7“| aÒ'Ø <¼ZÑ_fÓHgÑ_fÐX[ÌÈsÍÐ_fÑ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Ú
parametersrc   ÚkindÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚ	functoolsÚwraps)r‘   ÚparamsÚnamerz   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 €Lr2   Ú_KÚ_Vc                 ó   — y r    r!   rG   s    r%   Ústrip_not_givenr¦   )  s   € Ø(+r2   c                 ó   — y r    r!   rG   s    r%   r¦   r¦   -  s   € ØFIr2   c                 ó   — y r    r!   rG   s    r%   r¦   r¦   1  s   € Ø,/r2   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)rW   rc   rF   r   )rC   r6   Úvalues      r%   r¦   r¦   5  sE   € à
€{Øä�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±   @  s   € Üˆs˜ÔÐr2   c                ó   — t        | «      S r    )Úfloatr¯   s    r%   Úcoerce_floatr´   D  s   € Ü�‹:Ðr2   c                ó(   — | dk(  xs | dk(  xs | dk(  S )NÚtrueÚ1Úonr!   r¯   s    r%   Úcoerce_booleanr¹   H  s   € Ø�&‰=Ò5˜C 3™JÒ5¨#°©+Ð5r2   c                ó   — | €y t        | «      S r    )r±   r¯   s    r%   Úmaybe_coerce_integerr»   L  ó   € Ø
€{ØÜ˜#ÓÐr2   c                ó   — | €y t        | «      S r    )r´   r¯   s    r%   Úmaybe_coerce_floatr¾   R  s   € Ø
€{ØÜ˜ÓÐr2   c                ó   — | €y t        | «      S r    )r¹   r¯   s    r%   Úmaybe_coerce_booleanrÀ   X  r¼   r2   c                óD   — | j                  |«      r| t        |«      d S | S )zXRemove a prefix from a string.

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

    Backport of `str.removesuffix` for Python < 3.9
    N)Úendswithr@   )rs   Úsuffixs     r%   ÚremovesuffixrÈ   h  s(   € ð
 ‡��vÔØ�nœ˜V›˜Ð%Ð%Ø€Mr2   c                óz   — t        | «      j                  «       }t        j                  j	                  | «      }||fS r    )r   Ú
read_bytesÚosr0   Úbasename)r0   ÚcontentsÚ	file_names      r%   Úfile_from_pathrÏ   r  s3   € Ü�D‹z×$Ñ$Ó&€HÜ—‘× Ñ  Ó&€IØ�xÐ Ð r2   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 )Nr7   r   )ÚgroupÚupper)Úpats    r%   Ú<lambda>z%get_required_header.<locals>.<lambda>�  s#   € ¸#¿)¹)ÀA»,ÈÏÉÐSTË×I[ÑI[ÓI]Ò:]r2   zCould not find z header)ÚlowerrZ   rc   rF   ÚstrÚreÚsubÚ
capitalizerÓ   ÚgetÚ
ValueError)ÚheadersÚheaderÚlower_headerre   rf   Úintercaps_headerÚnormalized_headerrª   s           r%   Úget_required_headerrâ   x  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ô
 � v h¨gÐ6Ó
7Ð7r2   c                 óJ   — 	 t        j                  «       S # t        $ r Y yw xY w)NÚfalse)ÚsniffioÚcurrent_async_libraryÚ	Exceptionr!   r2   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ÓÐr2   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")`.
    )rW   rc   Ú	json_safera   rF   r×   ÚbytesÚ	bytearrayr   r   Ú	isoformat)Údatar6   rª   r$   s       r%   rï   rï   œ  s–   € ô �$ÔØCGÇ:Á:Ä<ÔPÁ<±Z°S¸%”	˜#“¤	¨%Ó 0Ñ0À<ÒPÐPä�4Ô¤¨D´3¼¼yÐ2IÔ!JÙ,0Ó1©D D”	˜$•¨DÑ1Ð1ä�$œ¤4Ð(Ô)Ø�~‰~ÓÐà€Kùó Qùò 2s   ŸB)Á,B/c                ó&   — ddl m} t        | |«      S )Nr   )r   )Ú	lib.azurer   rF   )Úclientr   s     r%   Úis_azure_clientr÷   ¬  s   € Ý'ä�f˜kÓ*Ð*r2   c                ó&   — ddl m} t        | |«      S )Nr   )r   )rõ   r   rF   )rö   r   s     r%   Úis_async_azure_clientrù   ²  s   € Ý,ä�fÐ.Ó/Ð/r2   )r"   zIterable[Iterable[_T]]r–   zlist[_T])r-   zMapping[str, object]r.   zSequence[Sequence[str]]r–   úlist[tuple[str, FileTypes]])
rC   r•   r0   úSequence[str]r)   r®   r*   ú
str | Noner–   rú   )rC   z_T | NotGiven | Omitr–   zTypeGuard[_T])rC   r•   r–   zTypeGuard[tuple[object, ...]])rC   z_TupleT | objectr–   zTypeGuard[_TupleT])rC   r•   r–   zTypeGuard[Sequence[object]])rC   z_SequenceT | objectr–   zTypeGuard[_SequenceT])rC   r•   r–   zTypeGuard[Mapping[str, object]])rC   z_MappingT | objectr–   zTypeGuard[_MappingT])rC   r•   r–   zTypeGuard[dict[object, object]])rC   r•   r–   zTypeGuard[list[object]])rC   r•   r–   zTypeGuard[Iterable[object]])r$   r   r–   r   )rn   rû   rh   r×   ri   r×   r–   r×   )rs   r×   r–   r×   )r“   rû   r–   ú Callable[[CallableT], CallableT])rC   ÚNoner–   rþ   )rC   zMapping[_K, _V | NotGiven]r–   zdict[_K, _V])rC   r•   r–   r•   )rC   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)rs   r×   rÃ   r×   r–   r×   )rs   r×   rÇ   r×   r–   r×   )r0   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])JÚ
__future__r   rË   rØ   r—   r�   Útypingr   r   r   r   r   r	   r
   r   r   r   Úpathlibr   r   r   Útyping_extensionsr   rå   Ú_typesr   r   r   r   r   r•   r   r×   r   r   r   rõ   r   r   r&   r1   r,   r;   rK   rN   rQ   rT   rW   rZ   r?   r=   ra   rd   rp   rt   r¢   r£   r¤   r¦   r±   r´   r¹   r»   r¾   rÀ   rÄ   rÈ   rÏ   râ   rè   rí   rï   r÷   rù   r!   r2   r%   Ú<module>r     sâ  ðÝ "ã 	Û 	Û Û ÷÷ ÷ õ ß #Ý 'ã ç ;Ó ;áˆTƒ]€Ù
�) 5¨°¨Ñ#5Ô
6€Ù�K w¨s°F¨{Ñ';Ô<€	Ù�\¨°&Ñ)9Ô:€
Ù�K x°°S°Ñ'9Ô:€	áß9ó7ðð  ðð
 #ðð !óð&FØ	ðFà
ðFð ð	Fð
 ðFð !óFóRGó"ó"ó%ó%ó$ó$ó!ó!ó%óð  48Àdõ 8óó
HñV ˆTƒ]€ÙˆTƒ]€ð 
Ú +ó 
Ø +ð 
Ú Ió 
Ø Ið 
Ú /ó 
Ø /óYóóó6óóóóóó!ó8ó&ð (+õ óó +ô0r2   