Ë
    Âj
  ã                  ó‚   — d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
Z
ddlmZ ed   Zh d£Z	 	 	 	 dd	„Z	 	 	 	 dd
„Zy)é    )ÚannotationsN)ÚAnyÚLiteralÚOptionalÚcast)Úassert_neveré   )Úis_list)ÚobjectÚarrayÚstringÚintegerÚnumberÚbooleanÚnull>
   ú	date-timeÚuriÚdateÚipv4Úipv6ÚtimeÚuuidÚemailÚdurationÚhostnamec                ó@   — | j                  d«      dk(  r	d| vrd| d<   | S )aU  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    úR/var/www/html/venv/lib/python3.12/site-packages/anthropic/lib/_parse/_transform.pyÚget_transformed_stringr#   #   s+   € ð ‡z�z�&Ó˜XÒ%¨(¸&Ñ*@Ø!ˆˆxÑØ€Mó    c           	     óÆ  — t        j                  | «      r*t        | t        j                  «      r| j                  «       } i }i | ¥} | j                  dd«      }|�||d<   |S | j                  dd«      }|�-i }||d<   |j                  «       D ]  \  }}t        |«      ||<   Œ | j                  dd«      }| j                  dd«      }| j                  dd«      }	| j                  dd«      }
t        |«      r'|D �cg c]  }t        t        d|«      «      ‘Œ c}|d<   nvt        |	«      r'|	D �cg c]  }t        t        d|«      «      ‘Œ c}|d<   nDt        |
«      r'|
D �cg c]  }t        t        d|«      «      ‘Œ c}|d<   n|€t        d	«      ‚||d<   | j                  d
d«      }t        |«      r||d
<   | j                  dd«      }|�||d<   | j                  dd«      }|�||d<   |dk(  rq| j                  di «      j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}|d<   | j                  dd«       d|d<   | j                  dd«      }|�ª||d<   n¤|dk(  r*| j                  dd«      }|r|t        v r||d<   n}|r{|| d<   nu|dk(  rN| j                  dd«      }|�t        |«      |d<   | j                  dd«      }|�|dk(  s|dk(  r||d<   n*|�(|| d<   n"|dk(  s|dk(  s|dk(  s|dk(  s|€nt        |«       | rJ|j                  d«      }|�|dz   nddz   d j                  d!„ | j                  «       D «       «      z   d"z   |d<   |S c c}w c c}w c c}w c c}}w )#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$refNz$defsr   Ú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  ó0   K  — | ]  \  }}|› d |› �–— Œ y­w)z: N© )Ú.0ÚkeyÚvalues      r"   Ú	<genexpr>z#transform_schema.<locals>.<genexpr>§   s"   è ø€ ÐPÑ<O©j¨c°5˜3˜%˜r % Ô)Ñ<Oùs   ‚Ú})ÚinspectÚisclassÚ
issubclassÚpydanticÚ	BaseModelÚmodel_json_schemaÚpopr0   Útransform_schemar
   r   Ú
ValueErrorÚSupportedStringFormatsr   r    Újoin)Újson_schemaÚstrict_schemaÚrefÚdefsÚstrict_defsÚnamer!   Útype_Úany_ofÚone_ofÚall_ofÚvariantr*   r+   r,   r8   Úprop_schemar/   r   r0   Ú	min_itemss                        r"   rC   rC   6   sÎ  € ô. ‡��{Ô#¬
°;Ä×@RÑ@RÔ(SØ!×3Ñ3Ó5ˆà$&€MØ!�[�/€Kà
�/‰/˜& $Ó
'€CØ
€Ø #ˆ�fÑØÐà�?‰?˜7 DÓ)€DØÐØ&(ˆØ!,ˆ�gÑà ŸJ™JžL‰LˆD�&Ü 0°Ó 8ˆK˜Òð )ð '2§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   Ã9MÄ+MÅMÈM)r!   r)   Úreturnr)   )rG   z)type[pydantic.BaseModel] | dict[str, Any]rT   r)   )Ú
__future__r   r<   Útypingr   r   r   r   Útyping_extensionsr   r?   Ú_utilsr
   ÚSupportedTypesrE   r#   rC   r6   r$   r"   Ú<module>rZ      s^   ðÝ "ã ß /Ó /Ý *ã å àðñ€òÐ ðØðàóð&uØ:ðuàôur$   