ó
    °"³jã  ã                  ó†   • S SK Jr  S SKrS SKJrJrJrJr  S SKJ	r	  S SK
r
SSKJr  \S   r1 Skr    SS	 jr    SS
 jrg)é    )ÚannotationsN)ÚAnyÚLiteralÚOptionalÚcast)Úassert_neveré   )Úis_list)ÚobjectÚarrayÚstringÚintegerÚnumberÚbooleanÚnull>
   ÚuriÚdateÚipv4Úipv6ÚtimeÚuuidÚemailÚdurationÚhostnameú	date-timec                óF   • U R                  S5      S:X  a  SU ;  a  SU S'   U $ )a9  Transforms a JSON schema of type string to ensure it conforms to the API's expectations.

Specifically, it ensures that if the schema is of type "string" and does not already
specify a "format", it sets the format to "text".

Args:
    schema: The original JSON schema.

Returns:
    The transformed JSON schema.
Útyper   ÚformatÚtext)Úget)Úschemas    Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/anthropic/lib/_parse/_transform.pyÚget_transformed_stringr#   #   s+   € ð ‡z�z�&Ó˜XÓ%¨(¸&Ó*@Ø!ˆˆxÑØ€Mó    c           	     óZ  • [         R                  " U 5      (       a/  [        U [        R                  5      (       a  U R                  5       n 0 n0 U En U R                  SS5      nUb,  0 nX1S'   UR                  5        H  u  pE[        U5      X4'   M     U R                  SS5      nUb  XaS'   U$ U R                  SS5      nU R                  SS5      nU R                  SS5      n	U R                  SS5      n
[        U5      (       a*  U Vs/ s H  n[        [        SU5      5      PM     snUS'   O†[        U	5      (       a*  U	 Vs/ s H  n[        [        SU5      5      PM     snUS'   OL[        U
5      (       a*  U
 Vs/ s H  n[        [        SU5      5      PM     snUS'   OUc  [        S	5      eXqS'   U R                  S
S5      n[        U5      (       a  XÁS
'   U R                  SS5      nUb  XÑS'   U R                  SS5      nUb  XáS'   US:X  au  U R                  S0 5      R                  5        VVs0 s H  u  nnU[        U5      _M     snnUS'   U R                  SS5        SUS'   U R                  SS5      nUb  UUS'   O¼US:X  a6  U R                  SS5      nU(       a  U[        ;   a  UUS'   O�U(       a  UU S'   O€US:X  aS  U R                  SS5      nUb  [        U5      US'   U R                  SS5      nUb  US:X  d  US:X  a  UUS'   O0Ub  UU S'   O'US:X  d  US:X  d  US:X  d	  US:X  d  Uc  O[        U5        U (       aK  UR                  S5      nUb  US-   OSS-   S R                  S! U R                  5        5       5      -   S"-   US'   U$ s  snf s  snf s  snf s  snnf )#a  
    Transforms a JSON schema to ensure it conforms to the API's expectations.

    Args:
        json_schema (Dict[str, Any]): The original JSON schema.

    Returns:
        The transformed JSON schema.

    Examples:
        >>> transform_schema(
        ...     {
        ...         "type": "integer",
        ...         "minimum": 1,
        ...         "maximum": 10,
        ...         "description": "A number",
        ...     }
        ... )
        {'type': 'integer', 'description': 'A number

{minimum: 1, maximum: 10}'}
    z$defsNz$refr   ÚanyOfÚoneOfÚallOfúdict[str, Any]z>Schema must have a 'type', 'anyOf', 'oneOf', or 'allOf' field.ÚenumÚdescriptionÚtitler   Ú
propertiesÚadditionalPropertiesFÚrequiredr   r   r   ÚitemsÚminItemsr   é   r   r   r   r   z

Ú Ú{z, c              3  ó4   #   • U  H  u  pU S U 3v •  M     g7f)z: N© )Ú.0ÚkeyÚvalues      r"   Ú	<genexpr>Ú#transform_schema.<locals>.<genexpr>ª   s   é € ÐPÒ<O©j¨c˜3˜%˜r % Õ)Ò<Oùs   ‚Ú})ÚinspectÚisclassÚ
issubclassÚpydanticÚ	BaseModelÚmodel_json_schemaÚpopr0   Útransform_schemar
   r   Ú
ValueErrorÚSupportedStringFormatsr   r    Újoin)Újson_schemaÚstrict_schemaÚdefsÚstrict_defsÚnamer!   ÚrefÚtype_Úany_ofÚone_ofÚall_ofÚvariantr*   r+   r,   r8   Úprop_schemar/   r   r0   Ú	min_itemss                        r"   rD   rD   6   sÑ  € ô. ‡‚�{×#Ñ#¬
°;Ä×@RÑ@R×(SÑ(SØ!×3Ñ3Ó5ˆà$&€MØ!�[�/€Kð
 �?‰?˜7 DÓ)€DØÑØ&(ˆØ!,�gÑà ŸJ™JžL‰LˆDÜ 0°Ó 8ˆKÓñ )ð �/‰/˜& $Ó
'€CØ
�Ø #�fÑØÐà&1§o¡o°f¸dÓ&C€EØ�_‰_˜W dÓ+€FØ�_‰_˜W dÓ+€FØ�_‰_˜W dÓ+€Fäˆv‡�ÙciÓ!jÒciÐX_Ô"2´4Ð8HÈ'Ó3RÖ"SÑciÑ!jˆ�gÒÜ	��‰ÙciÓ!jÒciÐX_Ô"2´4Ð8HÈ'Ó3RÖ"SÑciÑ!jˆ�gÒÜ	��‰ÙciÓ!jÒciÐX_Ô"2´4Ð8HÈ'Ó3RÖ"SÑciÑ!jˆ�gÒà‰=ÜÐ]Ó^Ð^à %�fÑà�?‰?˜6 4Ó(€DÜˆt‡}�}Ø $�fÑà—/‘/ -°Ó6€KØÑØ'2�mÑ$à�O‰O˜G TÓ*€EØÑØ!&�gÑà�ÓàGRÇÁÐWcÐegÓGh×GnÑGnÔGpô'
ÚGpÑ3C°3¸ˆCÔ! +Ó.Ò.ÑGpò'
ˆ�lÑ#ð 	�‰Ð.°Ô5Ø05ˆÐ,Ñ-à—?‘? :¨tÓ4ˆØÑØ(0ˆM˜*Ñ%øà	�(Ó	Ø—‘ ¨4Ó0ˆÞ�fÔ 6Ó6Ø&,ˆM˜(Ò#Þà$*ˆK˜Ñ!øØ	�'Ó	Ø—‘ ¨Ó.ˆØÑÜ%5°eÓ%<ˆM˜'Ñ"à—O‘O J°Ó5ˆ	ØÑ  Y°!£^°yÀA³~Ø(1ˆM˜*Ò%ØÑ"à&/ˆK˜
Ñ#øà	�)Ó	˜u¨	Ó1°U¸hÓ5FÈ%ÐSYË/Ð]bÑ]jØä�UÔö Ø#×'Ñ'¨Ó6ˆà%0Ñ%<ˆ[˜6Ò!À"Øñà�i‰iÑP¸K×<MÑ<MÔ<OÓPÓPñQð ñð 	�mÑ$ð ÐùòK "kùâ!jùâ!jùó('
s   Ä	NÅNÅ=N"È6N')r!   r)   Úreturnr)   )rH   z)type[pydantic.BaseModel] | dict[str, Any]rU   r)   )Ú
__future__r   r=   Útypingr   r   r   r   Útyping_extensionsr   r@   Ú_utilsr
   ÚSupportedTypesrF   r#   rD   r6   r$   r"   Ú<module>r[      s^   ðÝ "ã ß /Ó /Ý *ã å àðñ€òÐ ðØðàôð&xØ:ðxàõxr$   