Ë
    $Æ%h=  ã                  ó0  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZm
Z
 d dlmZmZmZmZ d dlZd dlZddlmZmZmZmZmZ dd	lmZ dd
lmZmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'  ed«      Z(ed   Z) G d„ d«      Z*	 	 	 	 	 	 d!d„Z+	 	 	 	 	 	 d"d„Z, ed¬«      d#d„«       Z-d$d„Z.d%d„Z/ddœ	 	 	 	 	 	 	 d&d„Z0d'd„Z1	 	 	 	 	 	 d(d„Z2	 	 	 	 	 	 d!d„Z3	 	 	 	 	 	 d"d„Z4ddœ	 	 	 	 	 	 	 d&d„Z5d'd„Z6	 	 	 	 	 	 d(d„Z7 ed¬«      	 	 	 d)	 	 	 	 	 	 	 	 	 d*d „«       Zy)+é    )ÚannotationsN)ÚAnyÚMappingÚTypeVarÚcast)ÚdateÚdatetime)ÚLiteralÚget_argsÚoverrideÚget_type_hintsé   )Úis_listÚis_givenÚ	lru_cacheÚ
is_mappingÚis_iterableé   )Úis_base64_file_input)Úis_list_typeÚis_union_typeÚextract_type_argÚis_iterable_typeÚis_required_typeÚis_annotated_typeÚstrip_annotated_type)Ú
get_originÚ
model_dumpÚis_typeddictÚ_T)Úiso8601Úbase64Úcustomc                  ór   — e Zd ZU dZded<   ded<   ded<   ded<   ddddd	œ	 	 	 	 	 	 	 	 	 dd
„Zedd„«       Zy)ÚPropertyInfoao  Metadata class to be used in Annotated types to provide information about a given type.

    For example:

    class MyParams(TypedDict):
        account_holder_name: Annotated[str, PropertyInfo(alias='accountHolderName')]

    This means that {'account_holder_name': 'Robert'} will be transformed to {'accountHolderName': 'Robert'} before being sent to the API.
    ú
str | NoneÚaliasúPropertyFormat | NoneÚformatÚformat_templateÚdiscriminatorN©r'   r)   r*   r+   c               ó<   — || _         || _        || _        || _        y ©Nr,   )Úselfr'   r)   r*   r+   s        úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/openai/_utils/_transform.pyÚ__init__zPropertyInfo.__init__:   s"   € ð ˆŒ
ØˆŒØ.ˆÔØ*ˆÕó    c           
     óœ   — | j                   j                  › d| j                  › d| j                  › d| j                  › d| j
                  › d�
S )Nz(alias='z
', format=z, format_template='z', discriminator='z'))Ú	__class__Ú__name__r'   r)   r*   r+   )r/   s    r0   Ú__repr__zPropertyInfo.__repr__G   sk   € à—.‘.×)Ñ)Ð*¨(°4·:±:°,¸jÈÏÉÈÐUhÐim×i}Ñi}Ðh~ð  Qð  RV÷  Rdñ  Rdð  Qeð  egð  hð  	hr2   )
r'   r&   r)   r(   r*   r&   r+   r&   ÚreturnÚNone)r7   Ústr)r5   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r1   r   r6   © r2   r0   r%   r%   *   s|   … ñð ÓØ!Ó!ØÓØÓð
 !Ø(,Ø&*Ø$(ñ+ð ð+ð &ð	+ð
 $ð+ð "ð+ð 
ó+ð òhó ñhr2   r%   c                ó    — | €yt        | |«      S )ziWrapper over `transform()` that allows `None` to be passed.

    See `transform()` for more details.
    N)Ú	transform©ÚdataÚexpected_types     r0   Úmaybe_transformrD   L   s   € ð €|ØÜ�T˜=Ó)Ð)r2   c                óX   — t        | t        t        |«      ¬«      }t        t        |«      S )á  Transform dictionaries based off of type information from the given type, for example:

    ```py
    class Params(TypedDict, total=False):
        card_id: Required[Annotated[str, PropertyInfo(alias="cardID")]]


    transformed = transform({"card_id": "<my card ID>"}, Params)
    # {'cardID': '<my card ID>'}
    ```

    Any keys / data that does not have type information given will be included as is.

    It should be noted that the transformations that this function does are not represented in the type system.
    ©Ú
annotation)Ú_transform_recursiver   Útyper    ©rB   rC   Útransformeds      r0   r@   r@   Z   s$   € ô& ' t¼¼TÀ=Ó8QÔR€KÜ”�KÓ Ð r2   i   )Úmaxsizec                óP   — t        | «      rt        | «      d   } t        | «      r| S y)z±If the given type is an `Annotated` type then it is returned, if not `None` is returned.

    This also unwraps the type when applicable, e.g. `Required[Annotated[T, ...]]`
    r   N)r   r   r   )Útype_s    r0   Ú_get_annotated_typerP   q   s*   € ô ˜Ôä˜“ Ñ"ˆä˜ÔØˆàr2   c                ó¤   — t        |«      }|€| S t        |«      dd }|D ]-  }t        |t        «      sŒ|j                  €Œ!|j                  c S  | S )z¬Transform the given `data` based on the annotations provided in `type_`.

    Note: this function only looks at `Annotated` types that contain `PropertyInfo` metadata.
    Nr   )rP   r   Ú
isinstancer%   r'   )ÚkeyrO   Úannotated_typer   rH   s        r0   Ú_maybe_transform_keyrU   �   sc   € ô
 )¨Ó/€NØÐàˆ
ô ˜>Ó*¨1¨2Ð.€KØ!ò $ˆ
Ü�j¤,Õ/°J×4DÑ4DÑ4PØ×#Ñ#Ò#ð$ð €Jr2   c                ó*   — | t         k(  xs	 | t        k(  S r.   )ÚfloatÚintrG   s    r0   Ú_no_transform_neededrY   ”   s   € ØœÑÒ3 *´Ñ"3Ð3r2   )Ú
inner_typec          	     óú  — |€|}t        |«      }t        |«      xs |}t        |«      rt        | «      rt	        | |«      S |t
        k(  rHt        | «      r=t        |«      d   }| j                  «       D ��ci c]  \  }}|t        ||¬«      “Œ c}}S t        |«      rt        | «      s&t        |«      r†t        | «      r{t        | t        «      skt        | t
        «      rt        t         | «      S t#        |d«      }t%        |«      rt        | «      r| S t'        | «      S | D �cg c]  }t        |||¬«      ‘Œ c}S t)        |«      r t        |«      D ]  }	t        | ||	¬«      } Œ | S t        | t*        j,                  «      rt/        | dd¬«      S t1        |«      }
|
€| S t        |
«      dd }|D ]B  }t        |t2        «      sŒ|j4                  €Œ!t7        | |j4                  |j8                  «      c S  | S c c}}w c c}w ©	a‹  Transform the given data against the expected type.

    Args:
        annotation: The direct type annotation given to the particular piece of data.
            This may or may not be wrapped in metadata types, e.g. `Required[T]`, `Annotated[T, ...]` etc

        inner_type: If applicable, this is the "inside" type. This is useful in certain cases where the outside type
            is a container type such as `List[T]`. In that case `inner_type` should be set to `T` so that each entry in
            the list can be transformed using the metadata from the container type.

            Defaults to the same value as the `annotation` argument.
    Nr   rG   r   )rH   rZ   TÚjson)Úexclude_unsetÚmode)r   r   r   r   Ú_transform_typeddictÚdictr   ÚitemsrI   r   r   r   r   rR   r9   r   Úobjectr   rY   Úlistr   ÚpydanticÚ	BaseModelr   rP   r%   r)   Ú_format_datar*   ©rB   rH   rZ   Ústripped_typeÚoriginÚ
items_typerS   ÚvalueÚdÚsubtyperT   r   s               r0   rI   rI   ˜   sè  € ð$ ÐØˆ
ä(¨Ó4€MÜ˜Ó&Ò7¨-€FÜ�MÔ"¤z°$Ô'7Ü# D¨-Ó8Ð8à”‚~œ* TÔ*Ü˜mÓ,¨QÑ/ˆ
ØZ^×ZdÑZdÓZf×gÉJÈCÐQV�Ô)¨%¸JÔGÑGÓgÐgô 
�mÔ	$¬°¬ä˜]Ô+´¸DÔ0AÌ*ÐUYÔ[^ÔJ_ô �dœDÔ!Üœ Ó%Ð%ä% m°QÓ7ˆ
Ü 
Ô+ô
 �tŒ}Ø�Ü˜“:Ðà_cÖdÐZ[Ô$ Q°:È*ÖUÒdÐdä�]Ô#ô
   Ó.ò 	YˆGÜ'¨¸ÐPWÔX‰Dð	Yàˆä�$œ×*Ñ*Ô+Ü˜$¨d¸Ô@Ð@ä(¨Ó4€NØÐØˆô ˜>Ó*¨1¨2Ð.€KØ!ò Uˆ
Ü�j¤,Õ/°J×4EÑ4EÑ4QÜ  j×&7Ñ&7¸×9SÑ9SÓTÒTðUð €Kùó_ hùò. es   Á6G2Ä!G8c                ó6  — t        | t        t        f«      r-|dk(  r| j                  «       S |dk(  r|�| j	                  |«      S |dk(  rÐt        | «      rÅd }t        | t        j                  «      r| j                  «       }nJt        | t        j                  «      r0| j                  «       }t        |t        «      r|j                  «       }t        |t        «      st        d| › dt!        |«      › �«      ‚t#        j$                  |«      j'                  d«      S | S ©Nr!   r#   r"   zCould not read bytes from z; Received Úascii)rR   r   r	   Ú	isoformatÚstrftimer   ÚpathlibÚPathÚ
read_bytesÚioÚIOBaseÚreadr9   ÚencodeÚbytesÚRuntimeErrorrJ   r"   Ú	b64encodeÚdecode©rB   Úformat_r*   Úbinarys       r0   rg   rg   æ   sè   € Ü�$œœxÐ(Ô)Ø�iÒØ—>‘>Ó#Ð#à�hÒ ?Ð#>Ø—=‘= Ó1Ð1à�(ÒÔ3°DÔ9Ø%)ˆä�dœGŸL™LÔ)Ø—_‘_Ó&‰FÜ˜œbŸi™iÔ(Ø—Y‘Y“[ˆFä˜&¤#Ô&ØŸ™›�ä˜&¤%Ô(ÜÐ!;¸D¸6ÀÌTÐRXË\ÈNÐ[Ó\Ð\ä×Ñ Ó'×.Ñ.¨wÓ7Ð7à€Kr2   c                óÔ   — i }t        |d¬«      }| j                  «       D ]E  \  }}t        |«      sŒ |j                  |«      }|€|||<   Œ,t	        ||¬«      |t        ||«      <   ŒG |S ©NT)Úinclude_extrasrG   )r   rb   r   ÚgetrI   rU   ©rB   rC   Úresultr   rS   rl   rO   s          r0   r`   r`     s{   € ð !#€FÜ  ¸tÔD€KØ—j‘j“lò e‰
ˆˆUÜ˜Œð à�—‘ Ó$ˆØˆ=àˆF�3ŠKä7KÈEÐ^cÔ7dˆFÔ'¨¨UÓ3Ò4ðeð €Mr2   c              ƒ  ó<   K  — | €yt        | |«      ƒ d{  –—† S 7 Œ­w)zuWrapper over `async_transform()` that allows `None` to be passed.

    See `async_transform()` for more details.
    N)Úasync_transformrA   s     r0   Úasync_maybe_transformrŠ     s#   è ø€ ð €|ØÜ   }Ó5×5Ð5Ð5ús   ‚•–c              ƒ  ót   K  — t        | t        t        |«      ¬«      ƒ d{  –—† }t        t        |«      S 7 Œ­w)rF   rG   N)Ú_async_transform_recursiver   rJ   r    rK   s      r0   r‰   r‰   #  s1   è ø€ ô& 3°4ÄDÌÈ}ÓD]Ô^×^€KÜ”�KÓ Ð ð _ús   ‚8¡6¢8c          	   ƒ  óT  K  — |€|}t        |«      }t        |«      xs |}t        |«      rt        | «      rt	        | |«      ƒ d{  –—† S |t
        k(  rHt        | «      r=t        |«      d   }| j                  «       D ��ci c]  \  }}|t        ||¬«      “Œ c}}S t        |«      rt        | «      s&t        |«      rŽt        | «      rƒt        | t        «      sst        | t
        «      rt        t         | «      S t#        |d«      }t%        |«      rt        | «      r| S t'        | «      S | D �cg c]  }t)        |||¬«      ƒ d{  –—† ‘Œ c}S t+        |«      r(t        |«      D ]  }	t)        | ||	¬«      ƒ d{  –—† } Œ | S t        | t,        j.                  «      rt1        | dd¬«      S t3        |«      }
|
€| S t        |
«      dd }|D ]J  }t        |t4        «      sŒ|j6                  €Œ!t9        | |j6                  |j:                  «      ƒ d{  –—† c S  | S 7 �ŒÎc c}}w 7 ŒÛc c}w 7 Œ®7 Œ­wr\   )r   r   r   r   Ú_async_transform_typeddictra   r   rb   rI   r   r   r   r   rR   r9   r   rc   r   rY   rd   rŒ   r   re   rf   r   rP   r%   r)   Ú_async_format_datar*   rh   s               r0   rŒ   rŒ   :  s  è ø€ ð$ ÐØˆ
ä(¨Ó4€MÜ˜Ó&Ò7¨-€FÜ�MÔ"¤z°$Ô'7Ü/°°mÓD×DÐDà”‚~œ* TÔ*Ü˜mÓ,¨QÑ/ˆ
ØZ^×ZdÑZdÓZf×gÉJÈCÐQV�Ô)¨%¸JÔGÑGÓgÐgô 
�mÔ	$¬°¬ä˜]Ô+´¸DÔ0AÌ*ÐUYÔ[^ÔJ_ô �dœDÔ!Üœ Ó%Ð%ä% m°QÓ7ˆ
Ü 
Ô+ô
 �tŒ}Ø�Ü˜“:ÐàkoÖpÐfgÔ0°¸zÐV`Ôa×aÑaÒpÐpä�]Ô#ô
   Ó.ò 	eˆGÜ3°DÀZÐ\cÔd×d‰Dð	eàˆä�$œ×*Ñ*Ô+Ü˜$¨d¸Ô@Ð@ä(¨Ó4€NØÐØˆô ˜>Ó*¨1¨2Ð.€KØ!ò aˆ
Ü�j¤,Õ/°J×4EÑ4EÑ4QÜ+¨D°*×2CÑ2CÀZ×E_ÑE_Ó`×`Ò`ðað €Kðg Eûó hð. búÒpð eøð aúst   ‚AH(ÁHÁ9H(Â HÂBH(Ä+HÅH
ÅHÅ-H(Å5H$Å6A"H(ÇH(Ç&$H(È
H&È
H(ÈH(ÈHÈH(È&H(c              ƒ  óx  K  — t        | t        t        f«      r-|dk(  r| j                  «       S |dk(  r|�| j	                  |«      S |dk(  rët        | «      ràd }t        | t        j                  «      r,t        j                  | «      j                  «       ƒ d {  –—† }nJt        | t        j                  «      r0| j                  «       }t        |t        «      r|j                  «       }t        |t        «      st!        d| › dt#        |«      › �«      ‚t%        j&                  |«      j)                  d«      S | S 7 ŒŸ­wrp   )rR   r   r	   rr   rs   r   rt   ru   Úanyiorv   rw   rx   ry   r9   rz   r{   r|   rJ   r"   r}   r~   r   s       r0   r�   r�   ˆ  sÿ   è ø€ Ü�$œœxÐ(Ô)Ø�iÒØ—>‘>Ó#Ð#à�hÒ ?Ð#>Ø—=‘= Ó1Ð1à�(ÒÔ3°DÔ9Ø%)ˆä�dœGŸL™LÔ)Ü Ÿ:™: dÓ+×6Ñ6Ó8×8‰FÜ˜œbŸi™iÔ(Ø—Y‘Y“[ˆFä˜&¤#Ô&ØŸ™›�ä˜&¤%Ô(ÜÐ!;¸D¸6ÀÌTÐRXË\ÈNÐ[Ó\Ð\ä×Ñ Ó'×.Ñ.¨wÓ7Ð7à€Kð 9ús   ‚BD:ÂD8ÂB D:c              ƒ  óð   K  — i }t        |d¬«      }| j                  «       D ]M  \  }}t        |«      sŒ |j                  |«      }|€|||<   Œ,t	        ||¬«      ƒ d {  –—† |t        ||«      <   ŒO |S 7 Œ­wrƒ   )r   rb   r   r…   rŒ   rU   r†   s          r0   rŽ   rŽ   £  s‰   è ø€ ð !#€FÜ  ¸tÔD€KØ—j‘j“lò q‰
ˆˆUÜ˜Œð à�—‘ Ó$ˆØˆ=àˆF�3ŠKä=WÐX]ÐjoÔ=p×7pˆFÔ'¨¨UÓ3Ò4ðqð €Mð 8qús   ‚AA6ÁA4ÁA6c                ó    — t        | |||¬«      S )N)ÚglobalnsÚlocalnsr„   )Ú_get_type_hints)Úobjr”   r•   r„   s       r0   r   r   ¸  s   € ô ˜3¨¸7ÐSaÔbÐbr2   )rB   rc   rC   rc   r7   z
Any | None)rB   r    rC   rc   r7   r    )rO   rJ   r7   útype | None)rS   r9   rO   rJ   r7   r9   )rH   rJ   r7   Úbool)rB   rc   rH   rJ   rZ   r˜   r7   rc   )rB   rc   r€   ÚPropertyFormatr*   r&   r7   rc   )rB   úMapping[str, object]rC   rJ   r7   r›   )NNF)
r—   r   r”   zdict[str, Any] | Noner•   zMapping[str, Any] | Noner„   r™   r7   zdict[str, Any])8Ú
__future__r   rw   r"   rt   Útypingr   r   r   r   r	   r   Útyping_extensionsr
   r   r   r   r–   r‘   re   Ú_utilsr   r   r   r   r   Ú_filesr   Ú_typingr   r   r   r   r   r   r   Ú_compatr   r   r   r    rš   r%   rD   r@   rP   rU   rY   rI   rg   r`   rŠ   r‰   rŒ   r�   rŽ   r>   r2   r0   ú<module>r£      s  ðÝ "ã 	Û Û ß .Ó .ß #ß \Ó \ã Û ÷õ õ *÷÷ ñ ÷ ;Ñ :áˆTƒ]€ð Ð6Ñ7€÷hñ hðD
*Ø
ð
*àð
*ð ó
*ð!Ø
ð!àð!ð ó!ñ. �4Ôòó ðóó&4ð #ñ	KØ
ðKð ðKð ð	Kð
 óKó\ð6Ø
ðàðð óð*
6Ø
ð
6àð
6ð ó
6ð!Ø
ð!àð!ð ó!ð6 #ñ	KØ
ðKð ðKð ð	Kð
 óKó\ð6Ø
ðàðð óñ* �4Ôð '+Ø(,Ø ð	cØ	ðcà#ðcð &ðcð ð	cð
 òcó ñcr2   