Ë
    ©2ÚiŒ_ ã            	      ó¸  — U d Z ddlmZ ddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZ ddlmZmZ ddlmZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ ddlmZmZmZ ddl
mZm Z m!Z!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/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZCmDZD ddlEmFZFmGZGmHZH ddlImJZJ ddlKmLZL ddlmMZM ddlNmOZOmPZPmQZQmRZR ddlSmTZTmUZU ddlVmWZWmXZX ddlYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_ ddlOm`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZl ddlmmnZnmoZo ddlpmqZq dd lrmsZsmtZtmuZumvZv dd!lwmxZx dd"lRmyZy dd#lzm{Z{ erdd$l|m}Z} dd%l~mZ dd&l€m�Z� dd'lwm‚Z‚ e	�j                  d(k\  Z„ e…e3e†d)f   «      Z‡e)ehedecf   Zˆ e(d*eˆ¬+«      Z‰e)eaeh   eaed   eaec   f   ZŠe<Z‹e!e e‹ge0j\                  f   ZŒe�e
�j                  gZ�d,e�d-<   e‘e
�j$                  e�j&                  �j(                  gZ•d,e�d.<   e–e
�j.                  e�j&                  �j0                  gZ™d,e�d/<   eše
�j6                  e�j&                  �j.                  gZœd,e�d0<   e�e
jD                  e�j&                  �j<                  e�j&                  jL                  gZŸd,e�d1<   	 	 	 	 	 	 dSd2„Z dTd3„Z¡	 	 	 	 	 	 dUd4„Z¢	 	 	 	 	 	 	 	 dVd5„Z£	 	 	 	 	 	 	 	 dWd6„Z¤e"e'e    e@f   Z¥	 	 	 	 	 	 	 	 dXd7„Z¦ G d8„ d9«      Z§d:„ d;„ d<„ d=„ d>„ d?„ d@„ dA„ dBœZ¨dCe�dD<   	 	 	 	 	 	 	 	 dYdE„Z©dZdF„Zª	 	 	 	 	 	 	 	 d[dG„Z«d\dH„Z¬d]dI„Z­ G dJ„ dKe7«      Z®ddddddLœ	 	 	 	 	 	 	 	 	 	 	 	 	 d^dM„Z¯ G dN„ dO«      Z°d_dP„Z± G dQ„ dR«      Z²y)`z-Convert python types to pydantic-core schema.é    )ÚannotationsN)Úcontextmanager)ÚcopyÚdeepcopy)ÚEnum)Úpartial)Ú	ParameterÚ_ParameterKindÚ	signature)Úchain)Ú
attrgetter)ÚFunctionTypeÚ
LambdaTypeÚ
MethodType)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚ
ForwardRefÚIterableÚIteratorÚMappingÚTypeÚTypeVarÚUnionÚcastÚoverload)Úwarn)Ú
CoreSchemaÚPydanticUndefinedÚcore_schemaÚto_jsonable_python)Ú	AnnotatedÚFinalÚLiteralÚTypeAliasTypeÚ	TypedDictÚget_argsÚ
get_originÚis_typeddicté   )ÚGetCoreSchemaHandlerÚGetJsonSchemaHandler)Ú
ConfigDictÚJsonEncoder)ÚPydanticSchemaGenerationErrorÚPydanticUndefinedAnnotationÚPydanticUserError)ÚAliasChoicesÚ	AliasPathÚ	FieldInfo)ÚJsonSchemaValue)Úversion_short)ÚPydanticDeprecatedSince20é   )Ú_decoratorsÚ_discriminated_unionÚ_known_annotated_metadataÚ_typing_extra)ÚConfigWrapperÚConfigWrapperStack)ÚCoreMetadataHandlerÚbuild_metadata_dict)Ú,NEEDS_APPLY_DISCRIMINATED_UNION_METADATA_KEYÚCoreSchemaOrFieldÚdefine_expected_missing_refsÚget_refÚget_type_refÚ%is_list_like_schema_with_items_schema)ÚComputedFieldInfoÚ	DecoratorÚDecoratorInfosÚFieldSerializerDecoratorInfoÚFieldValidatorDecoratorInfoÚModelSerializerDecoratorInfoÚModelValidatorDecoratorInfoÚRootValidatorDecoratorInfoÚValidatorDecoratorInfoÚget_attribute_from_basesÚinspect_field_serializerÚinspect_model_serializerÚinspect_validator)Úcollect_dataclass_fieldsÚget_type_hints_infer_globalns)ÚPydanticRecursiveRef)Úget_standard_typevars_mapÚhas_instance_in_typeÚrecursively_defined_type_refsÚreplace_types)ÚCallbackGetCoreSchemaHandler)Úis_finalvar)Úlenient_issubclass©Ú	BaseModel)ÚFieldValidatorModes)ÚStandardDataclass)ÚGetJsonSchemaFunction)é   é   é{   ÚFieldDecoratorInfoType)Úboundz
list[type]ÚTUPLE_TYPESÚ
LIST_TYPESÚ	SET_TYPESÚFROZEN_SET_TYPESÚ
DICT_TYPESc                ó~   — t        | t        t        f«      rd| j                  v ry| j                  D ]	  }||k(  sŒ	 y y)z×Check if field name is in validator fields.

    Args:
        info: The field info.
        field: The field name to check.

    Returns:
        `True` if field name is in validator fields, `False` otherwise.
    Ú*TF)Ú
isinstancerP   rL   Úfields)ÚinfoÚfieldÚv_field_names      úZ/var/www/html/acx/venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.pyÚ)check_validator_fields_against_field_namerv   p   sG   € ô �$Ô/Ô1LÐMÔNØ�$—+‘+ÑØØŸ™ò ˆØ˜5Ó Ùðð ó    c           	     óZ  — t        |«      }| D ]›  }t        |j                  t        t        f«      rd|j                  j
                  v rŒ<|j                  j                  du rŒU|j                  j
                  D ].  }||vsŒt        d|j                  › d|j                  › d�d¬«      ‚ Œ� y)	av  Check if the defined fields in decorators exist in `fields` param.

    It ignores the check for a decorator if the decorator has `*` as field or `check_fields=False`.

    Args:
        decorators: An iterable of decorators.
        fields: An iterable of fields name.

    Raises:
        PydanticUserError: If one of the field names does not exist in `fields` param.
    ro   Fz*Decorators defined with incorrect fields: ú.zO (use check_fields=False if you're inheriting from the model and intended this)zdecorator-missing-field©ÚcodeN)
Úsetrp   rr   rP   rL   rq   Úcheck_fieldsr2   Úcls_refÚcls_var_name)Ú
decoratorsrq   Údecrs   s       ru   Úcheck_decorator_fields_existr‚   †   s®   € ô �‹[€FØò ˆÜ�c—h‘hÔ!7Ô9TÐ UÔVÐ[^Ðbe×bjÑbj×bqÑbqÑ[qØØ�8‰8× Ñ  EÑ)ØØ—X‘X—_‘_ò 	ˆEØ˜FÒ"Ü'Ø@ÀÇÁÀÈQÈs×O_ÑO_ÐN`Øeðfà2ôð ñ	ñrw   c                óZ   — | D �cg c]  }t        |j                  |«      sŒ|‘Œ c}S c c}w ©N)rv   rr   )Úvalidator_functionsrs   r�   s      ru   Ú$filter_field_decorator_info_by_fieldr†   ¡   s*   € ð /Öm�CÔ2[Ð\_×\dÑ\dÐfkÕ2lŠCÒmÐmùÒms   …(¡(c                ót  — | d   dk(  rt        | d   ||«      | d<   | S t        | «      r:| j                  dd «      }|€t        j                  «       }t        |||«      | d<   | S | d   dk(  r:| j                  dd «      }|€t        j                  «       }t        |||«      | d<   | S |rt        d| d   › �«      ‚| S )NÚtypeÚnullableÚschemaÚitems_schemaÚdictÚvalues_schemazO`@validator(..., each_item=True)` cannot be applied to fields with a schema of )Úapply_each_item_validatorsrG   Úgetr!   Ú
any_schemaÚapply_validatorsÚ	TypeError)rŠ   Úeach_item_validatorsÚ
field_nameÚinner_schemas       ru   rŽ   rŽ   §   sò   € ð ˆf�~˜Ò#Ü5°f¸XÑ6FÐH\Ð^hÓiˆˆxÑØˆÜ	.¨vÔ	6Ø—z‘z .°$Ó7ˆØÐÜ&×1Ñ1Ó3ˆLÜ!1°,Ð@TÐV`Ó!aˆˆ~Ñð €Mð 
�‰˜6Ò	!ð —z‘z /°4Ó8ˆØÐÜ&×1Ñ1Ó3ˆLÜ"2°<ÐAUÐWaÓ"bˆˆÑð
 €Mñ	 
ÜØ]Ð^dÐekÑ^lÐ]mÐnó
ð 	
ð €Mrw   c               óô   —  || «      }|j                  |«      }d|v r|d   }|j                  «        d|ig|d<   d|vr|j                  |d<   |j                  }|rd|vrt	        j
                  |«      |d<   |S )a0  Add title and description for model-like classes' JSON schema.

    Args:
        schema_or_field: The schema data to generate a JSON schema from.
        handler: The `GetCoreSchemaHandler` instance.
        cls: The model-like class.

    Returns:
        JsonSchemaValue: The updated JSON schema.
    z$refÚallOfÚtitleÚdescription)Úresolve_ref_schemaÚclearÚ__name__Ú__doc__ÚinspectÚcleandoc)Úschema_or_fieldÚhandlerÚclsÚjson_schemaÚoriginal_schemaÚrefÚ	docstrings          ru   Úmodify_model_json_schemar§   Ç   s�   € ñ ˜/Ó*€KØ×0Ñ0°Ó=€Oà�Ñ Ø˜fÑ%ˆØ×ÑÔØ%+¨S M ?ˆ˜Ñ Ø�oÑ%Ø#&§<¡<ˆ˜Ñ Ø—‘€IÙ�]¨/Ñ9Ü)0×)9Ñ)9¸)Ó)Dˆ˜Ñ&ØÐrw   c                ó"  — | s|S d|v r|S |gt        |d|j                  j                  «      dd ¢­D ]Y  }| j                  |«      }|€Œt	        j
                  dt        «       › d�t        «       t        j                  |d¬«      |d<   |c S  |S )	a  Iterate over the json_encoders and add the first matching encoder to the schema.

    Args:
        json_encoders: A dictionary of types and their encoder functions.
        tp: The type to check for a matching encoder.
        schema: The schema to add the encoder to.
    ÚserializationÚ__mro__Néÿÿÿÿz=`json_encoders` is deprecated. See https://docs.pydantic.dev/z</concepts/serialization/#custom-serializers for alternativesÚjson)Ú	when_used)
ÚgetattrÚ	__class__rª   r�   Úwarningsr   r7   r8   r!   Ú$plain_serializer_function_ser_schema)Újson_encodersÚtprŠ   ÚbaseÚencoders        ru   Ú,_add_custom_serialization_from_json_encodersr¶   æ   s±   € ñ ØˆØ˜&Ñ Øˆð ÐH”g˜b )¨R¯\©\×-AÑ-AÓBÀ3ÀBÐGÑHò ˆØ×#Ñ# DÓ)ˆØˆ?Øä�‰ØKÌMËOÐK\ð  ]Yð  ZÜ%ô	
ô #.×"RÑ"RÐSZÐflÔ"mˆˆÑØŠðð €Mrw   c                  óL  — e Zd ZdZdZ	 dD	 	 	 	 	 	 	 dEd„Ze	 	 	 	 	 	 	 	 	 	 dFd„«       ZedGd„«       Z	edHd„«       Z
edId„«       ZdJd	„ZdKd
„ZdLd„ZdKd„ZdKd„ZdKd„ZdMd„ZdNd„ZdOd„ZdPd„ZdQd„ZdRd„Z	 dS	 	 	 	 	 dTd„ZdUd„ZdQd„ZdVd„ZdWd„ZedXd„«       ZedYd„«       ZdZd[d„ZdWd„Zd\d„Z d]d „Z!d^d!„Z"d^d"„Z#d^d#„Z$d_d$„Z%dd%œ	 	 	 	 	 	 	 	 	 d`d&„Z&	 	 	 	 	 	 	 	 dad'„Z'	 	 	 	 	 	 	 	 dbd(„Z(dcd)„Z)ddd*„Z*	 	 	 	 dOd+„Z+ded,„Z,dfd-„Z-dgd.„Z.e/j`                  df	 	 	 	 	 	 	 	 	 dhd/„Z1did0„Z2djd1„Z3dkd2„Z4dld3„Z5dmd4„Z6dnd5„Z7djd6„Z8	 	 	 	 	 	 dod7„Z9dpd8„Z:dqd9„Z;	 	 	 	 	 	 drd:„Z<dsd;„Z=	 	 	 	 	 	 dtd<„Z>d=„ f	 	 	 	 	 	 	 dud>„Z?dvd?„Z@	 	 	 	 	 	 dvd@„ZA	 	 	 	 	 	 	 	 dwdA„ZB	 dZ	 	 	 	 	 	 	 dxdB„ZC	 	 	 	 	 	 dydC„ZDy)zÚGenerateSchemaz\Generate core schema for a Pydantic model, dataclass and types like `str`, `datetime`, ... .)Ú_config_wrapper_stackÚ_types_namespaceÚ_typevars_mapÚ _needs_apply_discriminated_unionÚ_has_invalid_schemaÚfield_name_stackÚdefsNc                ó˜   — t        |«      | _        || _        || _        d| _        d| _        t        «       | _        t        «       | _	        y ©NF)
r?   r¹   rº   r»   r¼   r½   Ú_FieldNameStackr¾   Ú_Definitionsr¿   )ÚselfÚconfig_wrapperÚtypes_namespaceÚtypevars_maps       ru   Ú__init__zGenerateSchema.__init__  sE   € ô &8¸Ó%GˆÔ"Ø /ˆÔØ)ˆÔØ05ˆÔ-Ø#(ˆÔ Ü /Ó 1ˆÔÜ “Nˆ�	rw   c                óš   — | j                  | «      }||_        ||_        ||_        d|_        d|_        t        «       |_        ||_        |S rÁ   )	Ú__new__r¹   rº   r»   r¼   r½   rÂ   r¾   r¿   )r¢   Úconfig_wrapper_stackrÆ   rÇ   r¿   Úobjs         ru   Ú__from_parentzGenerateSchema.__from_parent$  sQ   € ð �k‰k˜#ÓˆØ$8ˆÔ!Ø.ˆÔØ(ˆÔØ/4ˆÔ,Ø"'ˆÔÜ.Ó0ˆÔØˆŒØˆ
rw   c                ó.   — | j                   j                  S r„   )r¹   Útail©rÄ   s    ru   Ú_config_wrapperzGenerateSchema._config_wrapper6  s   € à×)Ñ)×.Ñ.Ð.rw   c                ó¶   — | j                   j                  xs t        }|j                  | j                  | j
                  | j                  | j                  «      S r„   )rÑ   Úschema_generatorr¸   Ú_GenerateSchema__from_parentr¹   rº   r»   r¿   )rÄ   r¢   s     ru   Ú_current_generate_schemaz'GenerateSchema._current_generate_schema:  sM   € à×"Ñ"×3Ñ3ÒE´~ˆØ× Ñ Ø×&Ñ&Ø×!Ñ!Ø×ÑØ�I‰Ió	
ð 	
rw   c                ó.   — | j                   j                  S r„   )rÑ   Úarbitrary_types_allowedrÐ   s    ru   Ú_arbitrary_typeszGenerateSchema._arbitrary_typesD  s   € à×#Ñ#×;Ñ;Ð;rw   c                ó*   — t        j                  «       S )zGenerate a CoreSchema for `str`)r!   Ú
str_schemarÐ   s    ru   rÚ   zGenerateSchema.str_schemaH  s   € ä×%Ñ%Ó'Ð'rw   c                óJ   — t        j                  | j                  |«      «      S r„   )r!   Úlist_schemaÚgenerate_schema©rÄ   r³   Ú
items_types      ru   Ú_list_schemazGenerateSchema._list_schemaN  s   € Ü×&Ñ& t×';Ñ';¸JÓ'GÓHÐHrw   c                ój   — t        j                  | j                  |«      | j                  |«      «      S r„   )r!   Údict_schemarÝ   )rÄ   r³   Ú	keys_typeÚvalues_types       ru   Ú_dict_schemazGenerateSchema._dict_schemaQ  s,   € Ü×&Ñ& t×';Ñ';¸IÓ'FÈ×H\ÑH\Ð]hÓHiÓjÐjrw   c                óJ   — t        j                  | j                  |«      «      S r„   )r!   Ú
set_schemarÝ   rÞ   s      ru   Ú_set_schemazGenerateSchema._set_schemaT  s   € Ü×%Ñ% d×&:Ñ&:¸:Ó&FÓGÐGrw   c                óJ   — t        j                  | j                  |«      «      S r„   )r!   Úfrozenset_schemarÝ   rÞ   s      ru   Ú_frozenset_schemaz GenerateSchema._frozenset_schemaW  s   € Ü×+Ñ+¨D×,@Ñ,@ÀÓ,LÓMÐMrw   c                óJ   — t        j                  | j                  |«      «      S r„   )r!   Útuple_variable_schemarÝ   rÞ   s      ru   Ú_tuple_variable_schemaz%GenerateSchema._tuple_variable_schemaZ  s   € Ü×0Ñ0°×1EÑ1EÀjÓ1QÓRÐRrw   c                ór   — |D �cg c]  }| j                  |«      ‘Œ }}t        j                  |«      S c c}w r„   )rÝ   r!   Útuple_positional_schema)rÄ   r³   Úitems_typesrß   Úitems_schemass        ru   Ú_tuple_positional_schemaz'GenerateSchema._tuple_positional_schema]  s7   € ØLWÖX¸j˜×-Ñ-¨jÕ9ÐXˆÐXÜ×2Ñ2°=ÓAÐAùò Ys   …4c                óš   — t        |t        «      s't        |›d�t        «       t	        j
                  «       S t	        j                  |«      S )Na   is not a Python type (it may be an instance of an object), Pydantic will allow any object with no validation since we cannot even enforce that the input is an instance of the given type. To get rid of this error wrap the type with `pydantic.SkipValidation`.)rp   rˆ   r   ÚUserWarningr!   r�   Úis_instance_schema)rÄ   r³   s     ru   Ú_arbitrary_type_schemaz%GenerateSchema._arbitrary_type_schemaa  sL   € Ü˜"œdÔ#ÜØ�&ð Zð Zô ôô ×)Ñ)Ó+Ð+Ü×-Ñ-¨bÓ1Ð1rw   c                ó    — t        d|›d�«      ‚)Nú,Unable to generate pydantic-core schema for a¨  . Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.

If you got this error by calling handler(<some type>) within `__get_pydantic_core_schema__` then you likely need to call `handler.generate_schema(<some type>)` since we do not call `__get_pydantic_core_schema__` on `<some type>` otherwise to avoid infinite recursion.)r0   ©rÄ   rÌ   s     ru   Ú_unknown_type_schemaz#GenerateSchema._unknown_type_schemam  s#   € Ü+Ø:¸3¸'ð Bfð fó
ð 	
rw   c                óØ   — 	 t        j                  ||«      S # t         j                  $ r> t        j                  ||«       d|v rd|d   t        <   nt        di|d<   d| _        |cY S w xY w)NÚmetadataT)r;   Úapply_discriminatorÚMissingDefinitionForUnionRefÚset_discriminatorrB   r¼   )rÄ   rŠ   Údiscriminators      ru   Ú_apply_discriminator_to_unionz,GenerateSchema._apply_discriminator_to_unionx  s‚   € ð	Ü'×;Ñ;ØØóð øô $×@Ñ@ò 	ä ×2Ñ2ØØôð ˜VÑ#ØSW��zÑ"Ô#OÒPä&RÐTXÐ%Y��zÑ"Ø48ˆDÔ1ØŠMð	ús   ‚ ˜AA)Á(A)c                ó*  — t        d|j                  dd «      «      }|r|| j                  j                  |<   d|v rt	        j
                  |d   «      }t	        j                  |t        | j                  j                  j                  «       «      «      S )Nú
str | Noner¥   )	r   r�   r¿   Údefinitionsr!   Údefinition_reference_schemaÚdefinitions_schemaÚlistÚvalues)rÄ   rŠ   r¥   s      ru   Úcollect_definitionsz"GenerateSchema.collect_definitions‹  s|   € Ü�< §¡¨E°4Ó!8Ó9ˆÙØ)/ˆD�I‰I×!Ñ! #Ñ&Ø�F‰?Ü ×<Ñ<¸VÀE¹]ÓKˆFÜ×-Ñ-ØÜ�—‘×&Ñ&×-Ñ-Ó/Ó0ó
ð 	
rw   c                ó~   — t        |«      j                  }|j                  dg «      }||vr|j                  |«       y y )NÚpydantic_js_functions)r@   rý   Ú
setdefaultÚappend)rÄ   Úmetadata_schemaÚjs_functionrý   r  s        ru   Ú_add_js_functionzGenerateSchema._add_js_function–  sD   € Ü& Ó7×@Ñ@ˆØ (× 3Ñ 3Ð4KÈRÓ PÐð Ð3Ñ3Ø!×(Ñ(¨Õ5ð 4rw   Tc                óH  — d}|r| j                  ||«      }|�|}|€| j                  |«      }t        ||«      }|�4t        || j                  j
                  «      }|r| j                  ||«       t        | j                  j                  ||«      }| j                  |«      }|S )aä  Generate core schema.

        Args:
            obj: The object to generate core schema for.
            from_dunder_get_core_schema: Whether to generate schema from either the
                `__get_pydantic_core_schema__` function or `__pydantic_core_schema__` property.

        Returns:
            The generated core schema.

        Raises:
            PydanticUndefinedAnnotation:
                If it is not possible to evaluate forward reference.
            PydanticSchemaGenerationError:
                If it is not possible to generate pydantic-core schema.
            TypeError:
                - If `alias_generator` returns a non-string value.
                - If V1 style validator with `each_item=True` applied on a wrong field.
            PydanticUserError:
                - If `typing.TypedDict` is used instead of `typing_extensions.TypedDict` on Python < 3.12.
                - If `__modify_schema__` method is used instead of `__get_pydantic_json_schema__`.
        N)Ú_generate_schema_from_propertyÚ_generate_schemaÚ!_extract_get_pydantic_json_schemaÚresolve_original_schemar¿   r  r  r¶   rÑ   r²   Ú_post_process_generated_schema)rÄ   rÌ   Úfrom_dunder_get_core_schemarŠ   Úfrom_propertyÚmetadata_js_functionr  s          ru   rÝ   zGenerateSchema.generate_schema¡  s¬   € ð6 %)ˆá&Ø ×?Ñ?ÀÀSÓIˆMØÐ(Ø&�àˆ>Ø×*Ñ*¨3Ó/ˆFä@ÀÀfÓMÐØÐ+Ü5°f¸d¿i¹i×>SÑ>SÓTˆOÙØ×%Ñ% oÐ7KÔLä=¸d×>RÑ>R×>`Ñ>`ÐbeÐgmÓnˆà×4Ñ4°VÓ<ˆàˆrw   c                óN  — | j                   j                  |«      5 \  }}|�|cddd«       S |j                  }|j                  }|j                  }t        t        |j                  j                  «       |j                  j                  «       |j                  j                  «       «      h |j                  «       £|j                  «       £«       t        |j                  d¬«      }|j                  |«      }t        t!        t"        |¬«      g¬«      }	|j$                  j                  «       }
d}|j'                  d«      dk(  r–|g|j(                  ¢­D ]ƒ  }|j*                  j'                  dd«      }|€Œ"t-        |«      }|t.        t0        fvrt3        d	«      ‚| j5                  |j*                  d   d
¬«      d   }|t6        usŒr| j9                  |«      } n | j:                  j=                  |«      5  | j>                  } |j@                  r]| jC                  d|d   |«      }|d   }tE        ||
d«      }tG        jH                  ||tK        |dd«      d
tK        |dd«      |||	¬«      }�n	tG        jL                  |jO                  «       D ��ci c]  \  }}|| jQ                  |||«      “Œ c}}|j                  «       D �cg c]  }| jS                  ||j                  «      ‘Œ  c}||jT                  ¬«      }tW        ||jX                  j                  «       d«      }t[        |t]        «       «      }|�|}tE        ||
d«      }tG        jH                  ||tK        |dd«      dtK        |dd«      |||	¬«      }| j_                  ||j`                  j                  «       «      }tE        ||
d«      }| jc                  |«      | j                   jd                  |<   tG        jf                  |«      cddd«       cddd«       S c c}}w c c}w # 1 sw Y   nxY w	 ddd«       y# 1 sw Y   yxY w)z%Generate schema for a Pydantic model.NF)Úcheck©r¢   ©Újs_functionsÚextra_fields_behaviorÚallowÚ__pydantic_extra__zEThe type annotation for `__pydantic_extra__` must be `Dict[str, ...]`T©Úrequiredr9   ÚrootrŠ   ÚinnerÚ__pydantic_custom_init__Ú__pydantic_post_init__)Úcustom_initÚ
root_modelÚ	post_initÚconfigr¥   rý   )Úcomputed_fieldsÚextras_schemaÚ
model_nameÚouter)4r¿   Úget_schema_or_refÚmodel_fieldsÚ__pydantic_decorators__r-  r‚   r   Úfield_validatorsr	  Úfield_serializersÚ
validatorsÚkeysr>   Úmodel_configÚcore_configrA   r   r§   Úmodel_validatorsr�   rª   Ú__annotations__r)   r   rŒ   r0   Ú _get_args_resolving_forward_refsr   rÝ   r¹   ÚpushrÕ   Ú__pydantic_root_model__Ú_common_field_schemaÚapply_model_validatorsr!   Úmodel_schemar®   Úmodel_fields_schemaÚitemsÚ_generate_md_field_schemaÚ_computed_field_schemarœ   r‘   Úroot_validatorsrD   rZ   Ú_apply_model_serializersÚmodel_serializersr  r  r  )rÄ   r¢   Ú	model_refÚmaybe_schemarq   r€   r-  rÅ   r9  rý   r:  r.  r³   Úextras_annotationÚextra_items_typeÚ
root_fieldr•   rA  ÚkÚvÚdÚfields_schemaÚnew_inner_schemarŠ   s                           ru   Ú_model_schemazGenerateSchema._model_schemaÒ  s:  € à�Y‰Y×(Ñ(¨Ó-ð U	JÑ1J°)¸\ØÐ'Ø#÷U	Jñ U	Jð ×%Ñ%ˆFØ×4Ñ4ˆJØ(×8Ñ8ˆOÜ(ÜØ×/Ñ/×6Ñ6Ó8Ø×0Ñ0×7Ñ7Ó9Ø×)Ñ)×0Ñ0Ó2óð
 :�&—+‘+“-Ð9 /×"6Ñ"6Ó"8Ð9ôô +¨3×+;Ñ+;À5ÔIˆNØ(×4Ñ4°SÓ9ˆKÜ*¼ÔAYÐ_bÔ9cÐ8dÔeˆHà)×:Ñ:×AÑAÓCÐà ˆMØ�‰Ð6Ó7¸7ÒBØÐ- §¡Ñ-ò "�BØ(+×(;Ñ(;×(?Ñ(?Ð@TÐVZÓ([Ð%Ø(Ñ4Ü'Ð(9Ó:˜Ø¤d¬D \Ñ1Ü"?Ø gó#ð ð ,0×+PÑ+PØ×/Ñ/Ð0DÑEØ%)ð ,Qó ,ð ñ,Ð(ð ,´3Ò6Ø,0×,@Ñ,@ÐAQÓ,R˜MÙ!ð"ð  ×+Ñ+×0Ñ0°Ó@ñ .JØ×4Ñ4�Ø×.Ò.Ø!%×!:Ñ!:¸6À6È&Á>ÐS]Ó!^�JØ#-¨hÑ#7�LÜ#9¸,ÐHXÐZaÓ#b�LÜ#.×#;Ñ#;ØØ$Ü$+¨CÐ1KÈTÓ$RØ#'Ü")¨#Ð/GÈÓ"NØ*Ø%Ø!)ô	$’Lô =H×<[Ñ<[ØY_×YeÑYeÓYg×hÑQUÐQRÐTU˜˜D×:Ñ:¸1¸aÀÓLÑLÓhð &5×%;Ñ%;Ó%=ö)à !ð !×7Ñ7¸¸:×;WÑ;WÕXò)ð '4Ø#&§<¡<ô=�Mô $4°MÀ:×C]ÑC]×CdÑCdÓCfÐhlÓ#m�LÜ'CÀLÔRoÓRqÓ'rÐ$Ø'Ð3Ø'7˜Ü#9¸,ÐHXÐZaÓ#b�Lä#.×#;Ñ#;ØØ$Ü$+¨CÐ1KÈTÓ$RØ#(Ü")¨#Ð/GÈÓ"NØ*Ø%Ø!)ô	$�Lð ×6Ñ6°|ÀZ×EaÑEa×EhÑEhÓEjÓk�Ü/°Ð8HÈ'ÓR�Ø37×3VÑ3VÐW]Ó3^�—	‘	×%Ñ% iÑ0Ü"×>Ñ>¸yÓI÷].Jð .J÷OU	Jñ U	Jùór iùò)÷'.Jð .Júð .J÷OU	J÷ U	Jñ U	JúsV   œP­EPÅ6APÇ/PÇ5BPÊO:Ê+PË #P Ë#DPÏ'	PÏ:PÐP	Ð
PÐP$c                ó¬   — dd„}|d   dk(  rB| j                   j                  j                  |d   D �ci c]  } ||«      |“Œ c}«       |d   }|S c c}w )zuUnpack all 'definitions' schemas into `GenerateSchema.defs.definitions`
        and return the inner schema.
        c                ó   — | d   S )Nr¥   © )Úss    ru   rE   z1GenerateSchema._unpack_refs_defs.<locals>.get_ref0  s   € Ø�U‘8ˆOrw   rˆ   r  rŠ   )rW  r   ÚreturnÚstr)r¿   r  Úupdate)rÄ   rŠ   rE   rW  s       ru   Ú_unpack_refs_defsz GenerateSchema._unpack_refs_defs+  sZ   € ó
	ð �&‰>˜]Ò*Ø�I‰I×!Ñ!×(Ñ(ÀÈÑAVÖ)W¸A©'°!«*°a©-Ò)WÔXØ˜HÑ%ˆFØˆùò *Xs   ³Ac                óú  — | j                   j                  |«      5 \  }}|�|cddd«       S 	 ddd«       ||u rd}nd}t        |dd«      }|€\t        |dd«      }|€yt        dt        «       t        j                   |«       D �cg c]  }t        j                  |«      ‘Œ c}«      }	nSt        t        j                  |«      j                  «      dk(  r	 ||«      }	n ||t        | j                  | |¬«      «      }	| j                  |	«      }	t        |	«      }
|
r=| j!                  |	«      | j                   j"                  |
<   t        j$                  |
«      S | j!                  |	«      }	|	S # 1 sw Y   �Œ?xY wc c}w )	a0  Try to generate schema from either the `__get_pydantic_core_schema__` function or
        `__pydantic_core_schema__` property.

        Note: `__get_pydantic_core_schema__` takes priority so it can
        decide whether to use a `__pydantic_core_schema__` attribute, or generate a fresh schema.
        NÚunpackzto-defÚ__get_pydantic_core_schema__Ú__get_validators__zc`__get_validators__` is deprecated and will be removed, use `__get_pydantic_core_schema__` instead.r9   )Úref_mode)r¿   r1  r®   r   r8   r!   Úchain_schemaÚ"with_info_plain_validator_functionÚlenrž   r   Ú
parametersr\   r  r[  rE   r  r  r  )rÄ   rÌ   ÚsourceÚ_rJ  r`  Ú
get_schemar6  rO  rŠ   r¥   s              ru   r  z-GenerateSchema._generate_schema_from_property8  sx  € ð �Y‰Y×(Ñ(¨Ó-ð 	$Ñ1B°!°\ØÐ'Ø#÷	$ñ 	$Ø'÷	$ð �&‰=Ø‰HàˆHô ˜SÐ"@À$ÓGˆ
ØÐÜ  Ð&:¸DÓAˆJØÐ!ØÜØuÜ)ôô !×-Ñ-ÑjtÓjvÖ.wÐef¬{×/]Ñ/]Ð^_Õ/`Ò.wÓx‰Fä”7×$Ñ$ ZÓ0×;Ñ;Ó<ÀÒAá# FÓ+‘á#ØÔ8¸×9NÑ9NÐPTÐ_gÔhó�ð ×'Ñ'¨Ó/ˆä�f‹oˆÙØ)-×)LÑ)LÈVÓ)TˆD�I‰I×!Ñ! #Ñ&Ü×:Ñ:¸3Ó?Ð?à×4Ñ4°VÓ<ˆàˆ÷K	$ñ 	$üò$ /xs   œE+ÂE8Å+E5c                ó.  — 	 t        j                  || j                  ¬«      }t        |t        «      rt	        |j                  d|› �«      ‚| j                  rt        || j                  «      }|S # t        $ r}t	        j
                  |«      |‚d }~ww xY w)N)Úglobalnsz%Unable to evaluate forward reference )r=   Úevaluate_fwd_refrº   Ú	NameErrorr1   Úfrom_name_errorrp   r   Ú__forward_arg__r»   r[   )rÄ   rÌ   Úes      ru   Ú_resolve_forward_refz#GenerateSchema._resolve_forward_refg  s�   € ð	HÜ×0Ñ0°¸t×?TÑ?TÔUˆCô
 �cœ:Ô&Ü-¨c×.AÑ.AÐEjÐknÐjoÐCpÓqÐqà×ÒÜ  T×%7Ñ%7Ó8ˆCàˆ
øô ò 	HÜ-×=Ñ=¸aÓ@ÀaÐGûð	Hús   ‚!A0 Á0	BÁ9BÂBc                 ó   — y r„   rV  )rÄ   rÌ   r$  s      ru   r<  z/GenerateSchema._get_args_resolving_forward_refs}  ó   € àrw   c                 ó   — y r„   rV  rú   s     ru   r<  z/GenerateSchema._get_args_resolving_forward_refs�  rq  rw   c           	     óÄ   — t        |«      }|r<t        |D �cg c]%  }t        |t        «      r| j	                  |«      n|‘Œ' c}«      }|S |rt        d|› d�«      ‚|S c c}w )Nz	Expected z+ to have generic parameters but it had none)r(   Útuplerp   r   ro  r’   )rÄ   rÌ   r$  ÚargsÚas        ru   r<  z/GenerateSchema._get_args_resolving_forward_refs…  sk   € Ü˜‹}ˆÙÜÐdhÖiÐ_`¼*ÀQÌ
Ô:S˜$×3Ñ3°AÔ6ÐYZÑZÒiÓjˆDð ˆñ Ü˜i¨ uÐ,WÐXÓYÐYØˆùò js   —*Ac                ó>   — | j                  |«      }|st        S |d   S )Nr   )r<  r   )rÄ   rÌ   ru  s      ru   Ú_get_first_arg_or_anyz$GenerateSchema._get_first_arg_or_any�  s#   € Ø×4Ñ4°SÓ9ˆÙÜˆJØ�A‰wˆrw   c                ó¤   — | j                  |«      }|st        t        fS t        |«      dk  rt        |«      }t	        d|› d�«      ‚|d   |d   fS )Nr+   z Expected two type arguments for z, got 1r   r9   )r<  r   rc  r)   r’   )rÄ   rÌ   ru  Úorigins       ru   Ú_get_first_two_args_or_anyz)GenerateSchema._get_first_two_args_or_any“  s[   € Ø×4Ñ4°SÓ9ˆÙÜœ�:ÐÜˆt‹9�qŠ=Ü “_ˆFÜÐ>¸v¸hÀgÐNÓOÐOØ�A‰w˜˜Q™ÐÐrw   c                ól   — d|v r|d   }| j                   |t        <   |S t        | j                   i|d<   |S )Nrý   )r¼   rB   )rÄ   rŠ   rý   s      ru   r  z-GenerateSchema._post_process_generated_schemaœ  sL   € Ø˜ÑØ˜jÑ)ˆHØEI×EjÑEjˆHÔAÑBð
 ˆô =¸d×>cÑ>cð"ˆF�:Ñð ˆrw   c                óæ   — | j                   }d| _         | j                  }d| _        | j                  | j                  |«      «      }| j                   xs || _         | j                  xs || _        |S )zJRecursively generate a pydantic-core schema for any supported python type.F)r½   r¼   r  Ú_generate_schema_inner)rÄ   rÌ   Úhas_invalid_schemaÚneeds_apply_discriminated_unionrŠ   s        ru   r  zGenerateSchema._generate_schema¦  ss   € à!×5Ñ5ÐØ#(ˆÔ Ø*.×*OÑ*OÐ'Ø05ˆÔ-Ø×4Ñ4°T×5PÑ5PÐQTÓ5UÓVˆØ#'×#;Ñ#;Ò#QÐ?QˆÔ Ø04×0UÑ0UÒ0xÐYxˆÔ-Øˆrw   c                óÆ  — t        |t        «      r| j                  |«      S t        |t        «      r|S t        |t        «      rt        |«      }t        |t
        «      r | j                  | j                  |«      «      S ddlm	} t        ||«      r| j                  |«      S t        |t        «      r t        j                  |j                  ¬«      S | j!                  |«      S )Nr+   r_   )Ú
schema_ref)rp   Ú_AnnotatedTypeÚ_annotated_schemarŒ   rY  r   rÝ   ro  Úmainr`   r^   rS  rW   r!   r  Útype_refÚ
match_type)rÄ   rÌ   r`   s      ru   r~  z%GenerateSchema._generate_schema_inner±  s²   € Ü�cœ>Ô*Ø×)Ñ)¨#Ó.Ð.ä�cœ4Ô àˆJä�cœ3ÔÜ˜S“/ˆCä�cœ:Ô&Ø×'Ñ'¨×(AÑ(AÀ#Ó(FÓGÐGå$ä˜c 9Ô-Ø×%Ñ% cÓ*Ð*ä�cÔ/Ô0Ü×:Ñ:ÀcÇlÁlÔSÐSà�‰˜sÓ#Ð#rw   c                óø  — |t         u r| j                  «       S |t        u rt        j                  «       S |t
        u rt        j                  «       S |t        u rt        j                  «       S |t        u rt        j                  «       S |t        u s|t        u rt        j                  «       S |�|t        j                  u rt        j                   «       S |t"        v r| j%                  |«      S |t&        v r!| j)                  || j+                  |«      «      S |t,        v r!| j/                  || j+                  |«      «      S |t0        v r!| j3                  || j+                  |«      «      S |t4        v r" | j6                  |g| j9                  |«      ¢­Ž S t;        |t<        «      r| j?                  |«      S |t@        k(  r| jC                  «       S t        jD                  |«      rt        jF                  «       S t        jH                  |«      r| jK                  |«      S tM        |«      r| jO                  |d«      S t        jP                  |«      r| jS                  |d«      S t        jT                  |«      r| jW                  |jX                  «      S |tZ        j\                  k(  r| j_                  |«      S |t`        jb                  jd                  u s|tf        jd                  u r| ji                  «       S t;        |tf        jj                  «      r| jm                  |«      S to        |«      r<|tp        u rt        j                  «       S | jW                  | j+                  |«      «      S t;        |tr        tt        tv        tx        f«      r| j{                  |«      S t}        j~                  |«      r3t�        |t‚        «      r#ddlBmC}  ||| jˆ                  jŠ                  «      S t        jŒ                  |«      r| j�                  |d«      S | j‘                  |d«      }|�|\  }}| j“                  ||«      S t•        |«      }|�| j—                  ||«      S | j˜                  r| j›                  |«      S | j�                  |«      S )aÈ  Main mapping of types to schemas.

        The general structure is a series of if statements starting with the simple cases
        (non-generic primitive types) and then handling generics and other more complex cases.

        Each case either generates a schema directly, calls into a public user-overridable method
        (like `GenerateSchema.tuple_variable_schema`) or calls into a private method that handles some
        boilerplate before calling into the user-facing method (e.g. `GenerateSchema._tuple_schema`).

        The idea is that we'll evolve this into adding more and more user facing methods over time
        as they get requested and we figure out what the right API for them is.
        Nr9   )Úget_enum_core_schemarV  )OrY  rÚ   Úbytesr!   Úbytes_schemaÚintÚ
int_schemaÚfloatÚfloat_schemaÚboolÚbool_schemar   Úobjectr�   r=   ÚNoneTypeÚnone_schemari   Ú_tuple_schemarj   rà   rx  rk   rè   rl   rë   rm   rå   r{  rp   r&   Ú_type_alias_type_schemarˆ   Ú_type_schemaÚis_callable_typeÚcallable_schemaÚis_literal_typeÚ_literal_schemar*   Ú_typed_dict_schemaÚis_namedtupleÚ_namedtuple_schemaÚis_new_typerÝ   Ú__supertype__ÚreÚPatternÚ_pattern_schemaÚcollectionsÚabcÚHashableÚtypingÚ_hashable_schemar   Ú_unsubstituted_typevar_schemar]   r$   r   r   r   r   Ú_callable_schemarž   ÚisclassÚ
issubclassr   Ú_std_types_schemar‰  rÑ   Úconfig_dictÚis_dataclassÚ_dataclass_schemaÚ0_get_prepare_pydantic_annotations_for_known_typeÚ_apply_annotationsr)   Ú_match_generic_typerØ   r÷   rû   )rÄ   rÌ   r‰  ÚresÚsource_typer   rz  s          ru   r‡  zGenerateSchema.match_typeÉ  sÒ  € ð ”#‰:Ø—?‘?Ó$Ð$Ø”E‰\Ü×+Ñ+Ó-Ð-Ø”C‰ZÜ×)Ñ)Ó+Ð+Ø”E‰\Ü×+Ñ+Ó-Ð-Ø”D‰[Ü×*Ñ*Ó,Ð,Ø”C‰Z˜3¤&™=Ü×)Ñ)Ó+Ð+Øˆ[˜C¤=×#9Ñ#9Ñ9Ü×*Ñ*Ó,Ð,Ø”KÑØ×%Ñ% cÓ*Ð*Ø”JÑØ×$Ñ$ S¨$×*DÑ*DÀSÓ*IÓJÐJØ”IÑØ×#Ñ# C¨×)CÑ)CÀCÓ)HÓIÐIØÔ$Ñ$Ø×)Ñ)¨#¨t×/IÑ/IÈ#Ó/NÓOÐOØ”JÑØ$�4×$Ñ$ SÐP¨4×+JÑ+JÈ3Ó+OÒPÐPÜ˜œ]Ô+Ø×/Ñ/°Ó4Ð4Ø”DŠ[Ø×$Ñ$Ó&Ð&Ü×+Ñ+¨CÔ0Ü×.Ñ.Ó0Ð0Ü×*Ñ*¨3Ô/Ø×'Ñ'¨Ó,Ð,Ü˜#ÔØ×*Ñ*¨3°Ó5Ð5Ü×(Ñ(¨Ô-Ø×*Ñ*¨3°Ó5Ð5Ü×&Ñ& sÔ+à×'Ñ'¨×(9Ñ(9Ó:Ð:Ø”B—J‘JÒØ×'Ñ'¨Ó,Ð,Ø”K—O‘O×,Ñ,Ñ,°´v·±Ñ0FØ×(Ñ(Ó*Ð*Ü˜œVŸ^™^Ô,Ø×5Ñ5°cÓ:Ð:Ü˜ÔØ”e‰|Ü"×-Ñ-Ó/Ð/Ø×'Ñ'Ø×*Ñ*¨3Ó/óð ô ˜œl¬J¼
ÄGÐLÔMØ×(Ñ(¨Ó-Ð-Ü�_‰_˜SÔ!¤j°´dÔ&;Ý?á'¨¨T×-AÑ-A×-MÑ-MÓNÐNä×%Ñ% cÔ*Ø×)Ñ)¨#¨tÓ4Ð4à×CÑCÀCÈÓLˆØˆ?Ø'*Ñ$ˆK˜Ø×*Ñ*¨;¸ÓDÐDä˜C“ˆØÐØ×+Ñ+¨C°Ó8Ð8à× Ò Ø×.Ñ.¨sÓ3Ð3Ø×(Ñ(¨Ó-Ð-rw   c                óf  — t        |t        «      r| j                  |«      S t        j                  |«      r| j                  ||«      S t        j                  |«      r| j                  ||«      S | j                  ||«      }|�|S t        j                  |«      r| j                  |«      S |t        v r| j                  |«      S |t        v r!| j                  || j                  |«      «      S |t         v r!| j#                  || j                  |«      «      S |t$        v r!| j'                  || j                  |«      «      S |t(        v r" | j*                  |g| j-                  |«      ¢­Ž S t/        |«      r| j1                  ||«      S |t2        j4                  t6        fv r| j9                  |«      S |t2        j:                  t<        j>                  j:                  hv r| jA                  |«      S |t2        jB                  t<        j>                  jB                  t2        jD                  t<        j>                  jD                  hv r| jG                  |«      S |tH        jJ                  t2        jJ                  fv r| jM                  |«      S | jN                  r| jQ                  |«      S | jS                  |«      S r„   )*rp   r&   r–  r=   r¯  r°  r�  rž  r  Úorigin_is_unionÚ_union_schemari   r•  rj   rà   rx  rk   rè   rl   rë   rm   rå   r{  r*   rœ  r§  r   rˆ   Ú_subclass_schemaÚSequencer¤  r¥  Ú_sequence_schemar   Ú	GeneratorÚ_iterable_schemar¡  r¢  r£  rØ   r÷   rû   )rÄ   rÌ   rz  r  s       ru   r³  z"GenerateSchema._match_generic_type   sR  € Ü�fœmÔ,Ø×/Ñ/°Ó4Ð4ô ×%Ñ% fÔ-Ø×)Ñ)¨#¨vÓ6Ð6Ü×&Ñ& vÔ.Ø×*Ñ*¨3°Ó7Ð7à×;Ñ;¸FÀCÓHˆØÐ$Ø Ð ä×(Ñ(¨Ô0Ø×%Ñ% cÓ*Ð*Ø”{Ñ"Ø×%Ñ% cÓ*Ð*Ø”zÑ!Ø×$Ñ$ S¨$×*DÑ*DÀSÓ*IÓJÐJØ”yÑ Ø×#Ñ# C¨×)CÑ)CÀCÓ)HÓIÐIØÔ'Ñ'Ø×)Ñ)¨#¨t×/IÑ/IÈ#Ó/NÓOÐOØ”zÑ!Ø$�4×$Ñ$ SÐP¨4×+JÑ+JÈ3Ó+OÒPÐPÜ˜&Ô!Ø×*Ñ*¨3°Ó7Ð7ØœŸ™¤TÐ*Ñ*Ø×(Ñ(¨Ó-Ð-ØœŸ™¬¯©×)AÑ)AÐBÑBØ×(Ñ(¨Ó-Ð-ØœŸ™¬¯©×)AÑ)AÄ6×CSÑCSÔU`×UdÑUd×UnÑUnÐoÑoØ×(Ñ(¨Ó-Ð-ØœŸ
™
¤F§N¡NÐ3Ñ3Ø×'Ñ'¨Ó,Ð,à× Ò Ø×.Ñ.¨vÓ6Ð6Ø×(Ñ(¨Ó-Ð-rw   r#  c          	     ó    — | j                  |||«      }t        j                  |d   |j                  «       sdn||d   |d   |d   |d   ¬«      S )zAPrepare a TypedDictField to represent a model or typeddict field.rŠ   FÚserialization_excludeÚvalidation_aliasÚserialization_aliasrý   )r$  r¿  rÀ  rÁ  rý   )r?  r!   Útyped_dict_fieldÚis_required)rÄ   ÚnameÚ
field_infor€   r$  Úcommon_fields         ru   Ú_generate_td_field_schemaz(GenerateSchema._generate_td_field_schemaL  sf   € ð ×0Ñ0°°zÀ:ÓNˆÜ×+Ñ+Ø˜Ñ"Ø",×"8Ñ"8Ô":‘UÀØ".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ! *Ñ-ô
ð 	
rw   c           	     ó‚   — | j                  |||«      }t        j                  |d   |d   |d   |d   |d   |d   ¬«      S )z0Prepare a ModelField to represent a model field.rŠ   r¿  rÀ  rÁ  Úfrozenrý   ©r¿  rÀ  rÁ  rÉ  rý   )r?  r!   Úmodel_field©rÄ   rÄ  rÅ  r€   rÆ  s        ru   rD  z(GenerateSchema._generate_md_field_schema_  s^   € ð ×0Ñ0°°zÀ:ÓNˆÜ×&Ñ&Ø˜Ñ"Ø".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ Ñ)Ø! *Ñ-ô
ð 	
rw   c                óÀ   — | j                  |||«      }t        j                  ||d   |j                  xs d|j                  rdnd|d   |d   |d   |d   |d   ¬	«	      S )
zJPrepare a DataclassField to represent the parameter/field, of a dataclass.rŠ   NFr¿  rÀ  rÁ  rÉ  rý   )Ú	init_onlyÚkw_onlyr¿  rÀ  rÁ  rÉ  rý   )r?  r!   Údataclass_fieldÚinit_varrÏ  rÌ  s        ru   Ú_generate_dc_field_schemaz(GenerateSchema._generate_dc_field_schemap  s|   € ð ×0Ñ0°°zÀ:ÓNˆÜ×*Ñ*ØØ˜Ñ"Ø ×)Ñ)Ò1¨TØ&×.Ò.‘D°EØ".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ Ñ)Ø! *Ñ-ô

ð 
	
rw   c                óø  ‡ ‡‡‡— t        ‰j                  t        t        f«      r¹‰ j                  }‰ j
                  r[|xs i j                  «       }|j                  ‰ j
                  j                  «       D ��ci c]  \  }}|j                  |“Œ c}}«       t        j                  ‰j                  |d «      }|‰j                  urt        |t        «      s|‰_        ‰j                  ‰j                  }	}dˆˆ fd„}
‰ j                  j                  |«      5  ‰j                   �‰ j#                  ||	|
¬«      }n‰ j#                  ||	«      }d d d «       t%        |j&                  j)                  «       |«      }t+        |«      rd‰_        |D �cg c]  }|j.                  j0                  du sŒ|‘Œ }}|D �cg c]	  }||vsŒ|‘Œ }}t3        ||«      }t5        |t%        ||«      |«      }t5        |t%        |j6                  j)                  «       |«      |«      }‰j9                  «       st;        ‰|«      }‰ j=                  |t%        |j>                  j)                  «       |«      «      }‰j@                  ‰jB                  tE        ‰jF                  «      dœŠ‰j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}Š‰jH                  Šdˆˆfd„}tK        |g¬«      }‰ jL                  jN                  }|rj‰jP                  �‰jP                  dk  rO ||«      }tS        |t        «      stU        d|› d	|jV                  › �«      ‚|‰_,        |‰_-        |‰_.        d‰_(        tS        ‰jZ                  t^        t`        f«      r‰jZ                  jc                  «       }n‰jZ                  }te        |‰jf                  rdnd |‰j\                  ‰jh                  |¬
«      S c c}}w # 1 sw Y   �Œ•xY wc c}w c c}w c c}}w )Nc                ó@   •— ‰j                  | ‰j                  «      } | S r„   )r  r  )rŠ   rÅ  rÄ   s    €€ru   r   z>GenerateSchema._common_field_schema.<locals>.set_discriminator“  s    ø€ Ø×7Ñ7¸À
×@XÑ@XÓYˆFØˆMrw   )Útransform_inner_schemaT)r˜   r™   Úexamplesc                óž   •— i  || «      ¥‰¥}t        ‰t        «      r|j                  t        ‰«      «       |S t	        ‰«      r ‰|«       |S r„   )rp   rŒ   rZ  r"   Úcallable)rŠ   r¡   r£   Újson_schema_extraÚjson_schema_updatess      €€ru   Újson_schema_update_funczDGenerateSchema._common_field_schema.<locals>.json_schema_update_funcÂ  sX   ø€ ØD™W V›_ÐDÐ0CÐDˆKÜÐ+¬TÔ2Ø×"Ñ"Ô#5Ð6GÓ#HÔIð Ðô Ð+Ô,Ù! +Ô.ØÐrw   ©Újs_annotation_functionsr9   úalias_generator ú must return str, not rÊ  ©rŠ   r   rX  r   ©rŠ   rC   r¡   r-   rX  r6   )5rY   Ú
annotationr   rY  rº   r»   r   rZ  rC  rœ   r=   Úeval_type_lenientrW   rý   r¾   r=  r  r²  r†   r6  r	  Ú$_validators_require_validate_defaultÚvalidate_defaultrr   Ú	each_itemrŽ   r‘   r4  rÃ  Úwrap_defaultÚ_apply_field_serializersr5  r˜   r™   r"   rÖ  rÙ  rA   rÑ   Úalias_generatorÚalias_priorityrp   r’   r¯   ÚaliasrÀ  rÁ  r3   r4   Úconvert_to_aliasesÚ_common_fieldÚexcluderÉ  )rÄ   rÄ  rÅ  r€   rÆ   rN  rO  Ú	evaluatedrµ  r   r   rŠ   Úthis_field_validatorsr“   rÛ  rý   ré  rë  rÀ  rÙ  rÚ  s   ` `                @@ru   r?  z#GenerateSchema._common_field_schema„  sµ  û€ ä 
× 5Ñ 5¼
ÄCÐ7HÔIØ"×3Ñ3ˆOØ×!Ò!Ø#2Ò#8°b×">Ñ">Ó"@�à×&Ñ&À$×BTÑBT×BZÑBZÓB\×']¹$¸!¸Q¨¯
©
°A©Ó']Ô^ä%×7Ñ7¸
×8MÑ8MÈÐ`dÓeˆIØ 
× 5Ñ 5Ñ5Ô>RÐS\Ô^rÔ>sØ(1�
Ô%à#-×#8Ñ#8¸*×:MÑ:M�[ˆö	ð ×"Ñ"×'Ñ'¨Ó-ñ 	Ø×'Ñ'Ð3Ø×0Ñ0°¸kÐbsÐ0Ót‘à×0Ñ0ØØó�÷		ô !EÀZ×EZÑEZ×EaÑEaÓEcÐeiÓ jÐÜ/Ð0EÔFØ*.ˆJÔ'Ø+@Ö] aÀAÇFÁF×DTÑDTÐX\ÒD\¢Ð]ÐÐ]Ø,AÖ c qÀQÐNbÒEb¢Ð cÐÐ cÜ+¨FÐ4HÈ$ÓOˆä! &Ô*NÐOdÐfjÓ*kÐmqÓrˆÜ!ØÔ8¸×9TÑ9T×9[Ñ9[Ó9]Ð_cÓdÐfjó
ˆð ×%Ñ%Ô'Ü! *¨fÓ5ˆFà×.Ñ.ØÔ8¸×9UÑ9U×9\Ñ9\Ó9^Ð`dÓeó
ˆð  ×%Ñ%Ø%×1Ñ1Ü*¨:×+>Ñ+>Ó?ñ
Ðð
 1D×0IÑ0IÓ0K×]©¨¨1ÈqÉ}˜q !™tÓ]Ðà&×8Ñ8Ðö	ô 'Ð@WÐ?XÔYˆð ×.Ñ.×>Ñ>ˆÙ 
× 9Ñ 9Ð AÀZ×E^ÑE^ÐbcÒEcÙ# DÓ)ˆEÜ˜e¤SÔ)ÜÐ"2°?Ð2CÐCYÐZ_×ZiÑZiÐYjÐ kÓlÐlØ$ˆJÔØ*/ˆJÔ'Ø-2ˆJÔ*Ø()ˆJÔ%ä�j×1Ñ1´LÄ)Ð3LÔMØ)×:Ñ:×MÑMÓOÑà)×:Ñ:ÐäØØ*4×*<Ò*<¡$À$Ø-Ø *× >Ñ >Ø×$Ñ$Øô
ð 	
ùóc (^÷	ñ 	üò   ^ùÚ cùó, ^s6   Á9O
Ä4OÆO,Æ,O,Æ6	O1Ç O1Ê)
O6Ê4O6ÏO)c                ó^  — | j                  |d¬«      }g }d}|D ]9  }|�|t        j                  u rd}Œ|j                  | j	                  |«      «       Œ; t        |«      dk(  r|d   }t        |t        «      r|d   n|}nt        j                  |«      }|rt        j                  |«      }|S )zGenerate schema for a Union.Tr#  Fr9   r   )r<  r=   r“  r  rÝ   rc  rp   rt  r!   Úunion_schemaÚnullable_schema)rÄ   Ú
union_typeru  Úchoicesr‰   ÚargÚfirst_choicerW  s           ru   r¸  zGenerateSchema._union_schemaå  s±   € à×4Ñ4°ZÈ$Ð4ÓOˆØ=?ˆØˆØò 	:ˆCØˆ{˜c¤]×%;Ñ%;Ñ;Ø‘à—‘˜t×3Ñ3°CÓ8Õ9ð		:ô ˆw‹<˜1ÒØ" 1™:ˆLÜ#-¨l¼EÔ#B�˜Q’È‰Aä×(Ñ(¨Ó1ˆAáÜ×+Ñ+¨AÓ.ˆAØˆrw   c                ó  — t        |«      }|xs |}| j                  j                  |«      5 \  }}|�|cd d d «       S | j                  xs i j	                  «       }i t        j                  |«      ¥|¥}|j                  }|| _        t        |«      }t        ||«      }| j                  |«      }	|	d   dk7  sJ ‚||	d<   |xs d | _        |	| j                  j                  |<   t        j                  |«      cd d d «       S # 1 sw Y   y xY w)Nrˆ   r  r¥   )r)   r¿   r1  rº   r   r=   Úget_cls_types_namespaceÚ	__value__rX   r[   rÝ   r  r!   r  )
rÄ   rÌ   rz  r¥   rJ  Ú	namespaceÚnew_namespacerâ  rÇ   rŠ   s
             ru   r–  z&GenerateSchema._type_alias_type_schemaú  s  € ô ˜C“ˆØ’˜3ˆØ�Y‰Y×(Ñ(¨Ó0ð 	@Ñ4G°S¸,ØÐ'Ø#÷	@ñ 	@ð ×.Ñ.Ò4°"×:Ñ:Ó<ˆIØZœ}×DÑDÀVÓLÐZÐPYÐZˆMØ×)Ñ)ˆJà$1ˆDÔ!Ü4°SÓ9ˆLÜ& z°<Ó@ˆJØ×)Ñ)¨*Ó5ˆFØ˜&‘> ]Ò2Ð2Ð2ØˆF�5‰MØ$-Ò$5°ˆDÔ!Ø)/ˆD�I‰I×!Ñ! #Ñ&Ü×:Ñ:¸3Ó?÷!	@÷ 	@ò 	@ús   ­D¾B9DÄD
c                ón   — t        j                  |«      }|s
J d|› �«       ‚t        j                  |«      S )zGenerate schema for a Literal.z(literal "expected" cannot be empty, obj=)r=   Úall_literal_valuesr!   Úliteral_schema)rÄ   Úliteral_typeÚexpecteds      ru   r›  zGenerateSchema._literal_schema  s8   € ä ×3Ñ3°LÓAˆÙÐRÐCÀLÀ>ÐRÓRˆxÜ×)Ñ)¨(Ó3Ð3rw   c                óø  — | j                   j                  |«      5 \  }}|�|cddd«       S t        |«      }|�|}t        s%t	        |«      j
                  dk(  rt        dd¬«      ‚	 t        |d«      }| j                  j                  |«      5  | j                  j                  |«      }| j                  } |j                  }i }	t        j                   |«      }
t#        || j$                  d¬«      j'                  «       D ]«  \  }}t)        ||«      }||v }t+        |«      t,        j.                  k(  rd}| j1                  |d¬	«      d
   }n4t+        |«      t,        j2                  k(  rd}| j1                  |d¬	«      d
   }t5        j6                  |«      }| j9                  |||
|¬	«      |	|<   Œ­ t;        t=        t>        |¬«      g|¬«      }tA        jB                  |	|
jD                  jG                  «       D �cg c]  }| jI                  ||
jJ                  «      ‘Œ  c}|||¬«      }| jM                  ||
jN                  jG                  «       «      }tQ        ||
jR                  jG                  «       d«      }| jU                  |«      | j                   jV                  |<   tA        jX                  |«      cddd«       cddd«       S # t        $ r d}Y �Œ]w xY wc c}w # 1 sw Y   nxY w	 ddd«       y# 1 sw Y   yxY w)aŠ  Generate schema for a TypedDict.

        It is not possible to track required/optional keys in TypedDict without __required_keys__
        since TypedDict.__new__ erases the base classes (it replaces them with just `dict`)
        and thus we can track usage of total=True/False
        __required_keys__ was added in Python 3.9
        (https://github.com/miss-islington/cpython/blob/1e9939657dd1f8eb9f596f77c1084d2d351172fc/Doc/library/typing.rst?plain=1#L1546-L1548)
        however it is buggy
        (https://github.com/python/typing_extensions/blob/ac52ac5f2cb0e00e7988bae1e2a1b8257ac88d6d/src/typing_extensions.py#L657-L666).

        On 3.11 but < 3.12 TypedDict does not preserve inheritance information.

        Hence to avoid creating validators that do not do what users expect we only
        support typing.TypedDict on Python >= 3.12 or typing_extension.TypedDict on all versions
        Nr§  zXPlease use `typing_extensions.TypedDict` instead of `typing.TypedDict` on Python < 3.12.ztyped-dict-versionrz   Ú__pydantic_config__T)ÚlocalnsÚinclude_extrasr#  r   Fr  )r  Útyped_dict_cls)r-  r¥   rý   r,  Úall)-r¿   r1  rX   Ú_SUPPORTS_TYPEDDICTrˆ   Ú
__module__r2   rQ   ÚAttributeErrorr¹   r=  rÑ   r9  rÕ   Ú__required_keys__rJ   ÚbuildrV   rº   rC  r[   r)   r=   ÚRequiredr<  ÚNotRequiredr5   Úfrom_annotationrÇ  rA   r   r§   r!   Útyped_dict_schemar-  r	  rE  r5  rG  rH  r@  r:  r  r  r  )rÄ   r  rz  Útyped_dict_refrJ  rÇ   r,  r9  Úrequired_keysrq   r€   r”   râ  r$  rÅ  rý   rP  Ú	td_schemarŠ   s                      ru   rœ  z!GenerateSchema._typed_dict_schema  s)  € ð  �Y‰Y×(Ñ(¨Ó8ð H	OÑ<Z¸^È\ØÐ'Ø#÷H	Oñ H	Oô 5°^ÓDˆLØÐ!Ø!'�å&¬4°Ó+?×+JÑ+JÈhÒ+VÜ'ØnØ-ôð ð
Ü,DÀ^ÐUjÓ,k�ð ×+Ñ+×0Ñ0°Ó8ñ 5OØ"×2Ñ2×>Ñ>¸~ÓN�à×4Ñ4�à0>×0PÑ0P�à@B�ä+×1Ñ1°.ÓA�
ä.KØ"¨D×,AÑ,AÐRVô/ç‘%“'òÑ*�J 
ô "/¨z¸<Ó!H�JØ)¨]Ð:�Hä! *Ó-´×1GÑ1GÒGØ#'˜Ø%)×%JÑ%JØ&Ø%)ð &Kó &ð ñ&™
ô $ JÓ/´=×3LÑ3LÒLØ#(˜Ø%)×%JÑ%JØ&Ø%)ð &Kó &ð ñ&˜
ô
 "+×!:Ñ!:¸:Ó!F�JØ)-×)GÑ)GØ" J°
ÀXð *Hó *�F˜:Ò&ð)ô0 /Ü")Ô*BÈÔ"WÐ!XÐiwô�ô (×9Ñ9Øð ",×!;Ñ!;×!BÑ!BÓ!Dö%àð ×3Ñ3°A°z×7SÑ7SÕTò%ð 'Ø%Ø&ô	�	ð ×6Ñ6°yÀ*×B^ÑB^×BeÑBeÓBgÓh�Ü/°¸
×8SÑ8S×8ZÑ8ZÓ8\Ð^cÓd�Ø8<×8[Ñ8[Ð\bÓ8c�—	‘	×%Ñ% nÑ5Ü"×>Ñ>¸~ÓN÷k5Oð 5O÷'H	Oñ H	Oøô  "ò Ø“ðüòX%÷S5Oð 5Oúð 5O÷'H	O÷ H	Oñ H	Oús`   œK0­:K0Á(KÁ4K0ÂE(KÇ7#KÈBKÊ0	K0ËKËK0ËKËK0ËKËK#	ËK0Ë0K9c                óº  — | j                   j                  |«      5 \  }}|�|cddd«       S t        |«      }|�|}t        |d| j                  ¬«      }|s|j
                  D �ci c]	  }|t        “Œ }}|r-|j                  «       D ��	ci c]  \  }}	|t        |	|«      “Œ }}}	t        j                  |j                  «       D ��	cg c]A  \  }}	| j                  ||	|j                  j                  |t        j                  «      ¬«      ‘ŒC c}	}t!        d¬«      ¬«      }
t        j"                  |
||¬«      cddd«       S c c}w c c}	}w c c}	}w # 1 sw Y   yxY w)z!Generate schema for a NamedTuple.NT)r  r  )Údefault)Újs_prefer_positional_arguments)rý   )r¥   )r¿   r1  rX   rV   rº   Ú_fieldsr   rC  r[   r!   Úarguments_schemaÚ_generate_parameter_schemaÚ_field_defaultsr�   r	   ÚemptyrA   Úcall_schema)rÄ   Únamedtuple_clsrz  Únamedtuple_refrJ  rÇ   r   rN  r”   râ  r  s              ru   rž  z!GenerateSchema._namedtuple_schemar  sv  € à�Y‰Y×(Ñ(¨Ó8ð 	aÑ<Z¸^È\ØÐ'Ø#÷	añ 	aô 5°^ÓDˆLØÐ!Ø!'�ä*GØ¨t¸T×=RÑ=Rô+ˆKñ à/=×/EÑ/EÖF¨!˜q¤#™vÐF�ÐFáð 3>×2CÑ2CÓ2E÷á.˜
 Jð ¤¨j¸,Ó GÑGð�ñ ô
  +×;Ñ;ð
 3>×2CÑ2CÓ2E÷	ñ /˜
 Jð ×3Ñ3Ø" J¸×8VÑ8V×8ZÑ8ZÐ[eÔgp×gvÑgvÓ8wð 4õ óô -ÈDÔQô Ðô ×*Ñ*Ð+;¸^ÐQ_Ô`÷;	añ 	aùò Gùóùó÷+	að 	aús;   œE­7EÁ$E Á2EÂ	EÂ %EÃAEÄ+EÅ EÅEc                óN  — |t         j                  u rt        j                  |«      }nt        j                  ||«      }|j
                  €J d«       ‚|j
                  |j                  }}| j                  j                  |«      5  | j                  ||«      }ddd«       |j                  «       st        |«      }t        j                  |«      }	|�||	d<   |j                  �|j                  |	d<   |	S | j                  j                   }
|
r |
|«      |	d<   |	S # 1 sw Y   Œ„xY w)zXPrepare a ArgumentsParameter to represent a field in a namedtuple or function signature.Nz<field.annotation should not be None when generating a schemaÚmoderë  )r	   r  r5   r  Úfrom_annotated_attributerâ  rý   r¾   r=  r²  rÃ  rç  r!   Úarguments_parameterrë  rÑ   ré  )rÄ   rÄ  râ  r  r   rs   rµ  r   rŠ   Úparameter_schemaré  s              ru   r  z)GenerateSchema._generate_parameter_schema“  s'  € ð ”i—o‘oÑ%Ü×-Ñ-¨jÓ9‰Eä×6Ñ6°zÀ7ÓKˆEØ×ÑÐ+ÐkÐ-kÓkÐ+Ø#(×#3Ñ#3°U·^±^�[ˆØ×"Ñ"×'Ñ'¨Ó-ñ 	GØ×,Ñ,¨[¸+ÓFˆF÷	Gð × Ñ Ô"Ü! %¨Ó0ˆFä&×:Ñ:¸4ÀÓHÐØÐØ'+Ð˜VÑ$Ø�;‰;Ð"Ø(-¯©Ð˜WÑ%ð
  Ðð #×2Ñ2×BÑBˆOÙÙ,;¸DÓ,AÐ  Ñ)ØÐ÷	Gð 	Gús   ÂDÄD$c                óÊ  ‡— t        |«      Š| j                  |«      }‰r|rt        ˆfd„|D «       «      }|s1|t        v rt	        j
                  «       S t	        j                  g «      S |d   t        u r.t        |«      dk(  r| j                  ||d   «      S t        d«      ‚t        |«      dk(  r|d   dk(  r| j                  |g «      S | j                  |t        |«      «      S )zIGenerate schema for a Tuple, e.g. `tuple[int, str]` or `tuple[int, ...]`.c              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr„   )r[   )Ú.0ÚparamrÇ   s     €ru   ú	<genexpr>z/GenerateSchema._tuple_schema.<locals>.<genexpr>¹  s   øè ø€ ÒRÀ%œ=¨°×=ÑRùs   ƒr«   r+   r   z&Variable tuples can only have one typer9   rV  )rX   r<  rt  ri   r!   rí   rð   ÚEllipsisrc  rî   Ú
ValueErrorró   r  )rÄ   Ú
tuple_typeÚparamsrÇ   s      @ru   r•  zGenerateSchema._tuple_schema²  sâ   ø€ ô 1°Ó<ˆØ×6Ñ6°zÓBˆá™FÜÓRÈ6ÔRÓRˆFñ Øœ[Ñ(Ü"×8Ñ8Ó:Ð:ô #×:Ñ:¸2Ó>Ð>Ø�B‰Zœ8Ñ#Ü�6‹{˜aÒØ×2Ñ2°:¸vÀa¹yÓIÐIô !Ð!IÓJÐJÜ�‹[˜AÒ &¨¡)¨r¢/ð ×0Ñ0°¸RÓ@Ð@à×0Ñ0°¼TÀ&»\ÓJÐJrw   c                ó`   — t        j                  t        j                  t        «      dd¬«      S )NÚis_typezInput should be a type©Úcustom_error_typeÚcustom_error_message)r!   Úcustom_error_schemarö   rˆ   rÐ   s    ru   r—  zGenerateSchema._type_schemaÐ  s)   € Ü×.Ñ.Ü×*Ñ*¬4Ó0Ø'Ø!9ô
ð 	
rw   c           	     óØ  — | j                  |«      }|t        k(  r| j                  «       S t        |t        j
                  «      r”|j                  rt        j                  |j                  «      S |j                  rMt        j                  |j                  D �cg c]$  }| j                  t        j                  |   «      ‘Œ& c}«      S | j                  «       S t        j                  t        |«      «      rV| j!                  |d¬«      }t        j                  |D �cg c]$  }| j                  t        j                  |   «      ‘Œ& c}«      S t        j                  |«      S c c}w c c}w )z-Generate schema for a Type, e.g. `Type[int]`.Tr#  )rx  r   r—  rp   r§  r   Ú	__bound__r!   Úis_subclass_schemaÚ__constraints__rò  rÝ   r   r=   r·  r)   r<  )rÄ   Útype_Ú
type_paramÚcru  s        ru   r¹  zGenerateSchema._subclass_schema×  s"  € à×/Ñ/°Ó6ˆ
ØœÒØ×$Ñ$Ó&Ð&Ü˜
¤F§N¡NÔ3Ø×#Ò#Ü"×5Ñ5°j×6JÑ6JÓKÐKØ×+Ò+Ü"×/Ñ/ØCM×C]ÑC]Ö^¸a�T×)Ñ)¬&¯+©+°a©.Õ9Ò^óð ð ×(Ñ(Ó*Ð*Ü×*Ñ*¬:°jÓ+AÔBØ×8Ñ8¸ÈdÐ8ÓSˆDÜ×+Ñ+ÐaeÖ,fÐY]¨T×-AÑ-AÄ&Ç+Á+ÈdÑBSÕ-TÒ,fÓgÐgä×1Ñ1°*Ó=Ð=ùò _ùò -gs   Â)E"Ä)E'c                óX  — | j                  |«      }t        j                  | j                  |«      «      }t        j                  t
        j                  d¬«      }|t        k7  r1ddlm	} t        j                  |t        j                  ||«      g«      }t        j                  ||¬«      S )z5Generate schema for a Sequence, e.g. `Sequence[int]`.rº  )Úcls_reprr9   )Úsequence_validator)r£   Úpython_schema)rx  r!   rÜ   rÝ   rö   r§  rº  r   Ú_validatorsr<  ra  Úno_info_wrap_validator_functionÚjson_or_python_schema)rÄ   Úsequence_typeÚ	item_typerÜ   r=  r<  s         ru   r»  zGenerateSchema._sequence_schemaë  sŒ   € à×.Ñ.¨}Ó=ˆ	ä!×-Ñ-¨d×.BÑ.BÀ9Ó.MÓNˆÜ#×6Ñ6´v·±ÐQ[Ô\ˆØœÒÝ7ä'×4Ñ4Ø¤× KÑ KÐL^Ð`kÓ lÐmóˆMô ×0Ñ0¸[ÐXeÔfÐfrw   c                ól   — | j                  |«      }t        j                  | j                  |«      «      S )z$Generate a schema for an `Iterable`.)rx  r!   Úgenerator_schemarÝ   )rÄ   r7  rB  s      ru   r½  zGenerateSchema._iterable_schemaù  s.   € à×.Ñ.¨uÓ5ˆ	ä×+Ñ+¨D×,@Ñ,@ÀÓ,KÓLÐLrw   c                ó  — ddl m} t        d„ g¬«      }t        j                  t        d«      dt        j                  «       ¬«      }|t        j                  k(  s|t        j                  k(  r"t        j                  |j                  ||¬«      S | j                  |d	¬
«      d   }|t        k(  r"t        j                  |j                  ||¬«      S |t        k(  r"t        j                  |j                   ||¬«      S t#        d|›d�«      ‚)Nr9   )r>  c                ó   — dddœS )NÚstringÚregex)rˆ   ÚformatrV  )Ú_1Ú_2s     ru   ú<lambda>z0GenerateSchema._pattern_schema.<locals>.<lambda>  s   € ÈXÐahÑDi€ rw   r  Úpatternr¬   )r­   Úreturn_schema)r©   rý   Tr#  r   rù   ry   )Ú r>  rA   r!   r±   r   rÚ   r§  r¢  r¡  Ú no_info_plain_validator_functionÚpattern_either_validatorr<  rY  Úpattern_str_validatorrŠ  Úpattern_bytes_validatorr0   )rÄ   Úpattern_typer>  rý   Úserr'  s         ru   r£  zGenerateSchema._pattern_schemaÿ  s  € Ý!ä&Ñ5iÐ4jÔkˆÜ×>Ñ>Ü�yÓ!¨VÄ;×CYÑCYÓC[ô
ˆð œ6Ÿ>™>Ò)¨\¼R¿Z¹ZÒ-Gä×?Ñ?Ø×4Ñ4ÀCÐRZôð ð ×5Ñ5ØØð 6ó 
ð ñˆð ”CŠ<Ü×?Ñ?Ø×1Ñ1ÀÈxôð ð ”eŠ^Ü×?Ñ?Ø×3Ñ3À3ÐQYôð ô 0Ð2^Ð_kÐ^nÐnoÐ0pÓqÐqrw   c                óˆ   — t        j                  t        j                  t        j                  j
                  «      dd¬«      S )NÚis_hashablezInput should be hashabler/  )r!   r2  rö   r¤  r¥  r¦  rÐ   s    ru   r¨  zGenerateSchema._hashable_schema  s3   € Ü×.Ñ.Ü×*Ñ*¬;¯?©?×+CÑ+CÓDØ+Ø!;ô
ð 	
rw   c                ó*  ‡ ‡— ‰ j                   j                  |«      5 \  }}|�|cddd«       S t        |«      }|�|}t        |dd«      }‰ j                  j                  |«      5  ‰ j                  j                  |«      }‰ j                  Š ddl	m
}  ||«      rIt        |j                  «      }	|rJ|	j                  «       D ]  }
|
j                  |‰ j                  «       Œ  nt!        |‰ j                  |¬«      }	|j"                  j%                  d«      xs t'        j(                  |«      Št+        ˆˆ fd„|	j-                  «       D «       d„ ¬	«      }t/        |d
«      }t/        |d«      }t1        j2                  |j4                  |‰j6                  j                  «       D �cg c]  }‰ j9                  |‰j:                  «      ‘Œ  c}|¬«      }t=        |‰j>                  j                  «       d«      }‰j@                  j                  «       }tC        ||d«      }t1        jD                  ||||t        jF                  |«      D �
cg c]  }
|
jH                  ‘Œ c}
||¬«      }‰ jK                  |‰jL                  j                  «       «      }tC        ||d«      }‰ jO                  |«      ‰ j                   jP                  |<   t1        jR                  |«      cddd«       cddd«       S c c}w c c}
w # 1 sw Y   nxY w	 ddd«       y# 1 sw Y   yxY w)z Generate schema for a dataclass.Nr  r+   )Úis_pydantic_dataclass)rÇ   r3  c              3  óJ   •K  — | ]  \  }}‰j                  ||‰«      –— Œ y ­wr„   )rÒ  )r&  rN  rO  r€   rÄ   s      €€ru   r(  z3GenerateSchema._dataclass_schema.<locals>.<genexpr>E  s$   øè ø€ ÒaÉ$È!ÈQ�T×3Ñ3°A°q¸*×EÑaùs   ƒ #c                ó(   — | j                  d«      duS )NrÏ  F©r�   )rv  s    ru   rL  z2GenerateSchema._dataclass_schema.<locals>.<lambda>F  s   €  !§%¡%¨	Ó"2¸%Ð"?€ rw   )ÚkeyÚ__post_init__Ú	__slots__)r-  Úcollect_init_onlyr&  )r+  r¥   rq   Úslotsr,  r0  )*r¿   r1  rX   r®   r¹   r=  rÑ   r9  rÕ   ÚdataclassesrY  r   Ú__pydantic_fields__r	  Úapply_typevars_maprº   rU   Ú__dict__r�   rJ   r  ÚsortedrC  Úhasattrr!   Údataclass_args_schemarœ   r-  rE  r5  r‘   rF  r:  r@  Údataclass_schemarq   rÄ  rG  rH  r  r  r  )rÄ   Ú	dataclassrz  Údataclass_refrJ  rÇ   r,  r9  rY  rq   rs   ru  Úhas_post_initÚ	has_slotsrP  Úargs_schemar•   r:  Ú	dc_schemarŠ   r€   s   `                   @ru   r°  z GenerateSchema._dataclass_schema"  sù  ù€ ð �Y‰Y×(Ñ(¨Ó3ð @	NÑ7T¸À|ØÐ'Ø#÷@	Nñ @	Nô 5°YÓ?ˆLØÐ!Ø"�	ä˜YÐ(=¸tÓDˆFØ×+Ñ+×0Ñ0°Ó8ñ 7NØ"×2Ñ2×>Ñ>¸yÓI�à×4Ñ4�å?á(¨Ô3Ü% i×&CÑ&CÓD�FÙ#Ø%+§]¡]£_ò Z˜EØ!×4Ñ4°\À4×CXÑCXÕYñZô 6Ø!Ø×-Ñ-Ø%1ô�Fð
 '×/Ñ/×3Ñ3Ð4MÓNÒqÔR`×RfÑRfÐgpÓRq�
ô ÜaÐRX×R^ÑR^ÓR`ÔaÙ?ô�ô !(¨	°?Ó C�Ü# I¨{Ó;�	ä)×?Ñ?Ø×&Ñ&Øð ",×!;Ñ!;×!BÑ!BÓ!Dö%àð ×3Ñ3°A°z×7SÑ7SÕTò%ð '4ô�ô  0°¸Z×=WÑ=W×=^Ñ=^Ó=`ÐbfÓg�à#-×#>Ñ#>×#EÑ#EÓ#GÐ Ü5°lÐDTÐV]Ó^�ä'×8Ñ8ØØ Ø+Ø%Ü4?×4FÑ4FÀyÓ4QÖR¨5˜EŸJ›JÒRØ#Ø&ô�	ð ×6Ñ6°yÀ*×B^ÑB^×BeÑBeÓBgÓh�Ü/°Ð8HÈ'ÓR�Ø7;×7ZÑ7ZÐ[aÓ7b�—	‘	×%Ñ% mÑ4Ü"×>Ñ>¸}ÓM÷o7Nð 7N÷@	Nñ @	NùòP%ùò" S÷a7Nð 7Núð 7N÷@	N÷ @	Nñ @	NúsI   žL	¯7L	Á&D>K3Æ$#K)ÇA?K3ÉK.ÉA=K3Ë	L	Ë)
K3Ë3K<	Ë8L	Ì	Lc                ó¢  — t        |«      }t        j                  |«      }t        j                  dt        j
                  dt        j                  di}g }d}d}|j                  j                  «       D ]ä  \  }}	|	j                  |j                  u rt        }
n||   }
|j                  |	j                  «      }|�0| j                  ||
|	j                  |«      }|j!                  |«       Œw|	j                  t        j"                  k(  r| j%                  |
«      }Œ¦|	j                  t        j&                  k(  sJ |	j                  «       ‚| j%                  |
«      }Œæ d}| j(                  }|j*                  r$|j                  d«      }|�| j%                  |«      }t-        j.                  t-        j0                  ||||j2                  ¬«      ||¬«      S )zsGenerate schema for a Callable.

        TODO support functional validators once we support them in Config
        Úpositional_onlyÚpositional_or_keywordÚkeyword_onlyNrX  )Úvar_args_schemaÚvar_kwargs_schemaÚpopulate_by_name)rN  )r   r=   Úget_function_type_hintsr	   ÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYrd  rC  râ  r  r   r�   Úkindr  r  r  ÚVAR_POSITIONALrÝ   ÚVAR_KEYWORDrÑ   Úvalidate_returnr!   r  r  rv  )rÄ   ÚfunctionÚsigÚ
type_hintsÚmode_lookupÚarguments_listrt  ru  rÄ  Úprâ  Úparameter_modeÚ
arg_schemarN  rÅ   Úreturn_hints                   ru   rª  zGenerateSchema._callable_schemah  s¯  € ô
 ˜Ó!ˆä"×:Ñ:¸8ÓDˆ
ô ×%Ñ%Ð'8Ü×+Ñ+Ð-DÜ×"Ñ" Nðr
ˆð @BˆØ9=ˆØ;?Ðà—~‘~×+Ñ+Ó-ò 	E‰GˆD�!Ø�|‰|˜sŸy™yÑ(Ü ‘
à'¨Ñ-�
à(Ÿ_™_¨Q¯V©VÓ4ˆNØÐ)Ø!×<Ñ<¸TÀ:ÈqÏyÉyÐZhÓi�
Ø×%Ñ% jÕ1Ø—‘œ9×3Ñ3Ò3Ø"&×"6Ñ"6°zÓ"B‘à—v‘v¤×!6Ñ!6Ò6Ð>¸¿¹Ó>Ð6Ø$(×$8Ñ$8¸Ó$DÑ!ð	Eð  8<ˆØ×-Ñ-ˆØ×)Ò)Ø$Ÿ.™.¨Ó2ˆKØÐ&Ø $× 4Ñ 4°[Ó A�ä×&Ñ&Ü×(Ñ(ØØ /Ø"3Ø!/×!@Ñ!@ô	ð Ø'ô	
ð 		
rw   c                ó  — t        |t        j                  «      sJ ‚|j                  }|j                  }t        «       }t        |d|«      }|d ut        |«      dk7  z   ||uz   dkD  rt        d«      ‚||ur| j                  |«      S |r"| j                  t        j                  |   «      S |r@| j                  |«      }t        j                  d„ t        j                  «       ¬«      |d<   |S t        j                  «       S )NÚ__default__r   r9   zZPydantic does not support mixing more than one of TypeVar bounds, constraints and defaultsc                ó   —  || «      S r„   rV  )ÚxÚhs     ru   rL  z>GenerateSchema._unsubstituted_typevar_schema.<locals>.<lambda>±  s
   € ™Q˜q›T€ rw   )rŠ   r©   )rp   r§  r   r4  r6  r’  r®   rc  ÚNotImplementedErrorrÝ   r¸  r   r!   Ú#wrap_serializer_function_ser_schemar�   )rÄ   Útypevarrh   ÚconstraintsÚnot_setr  rŠ   s          ru   r©  z,GenerateSchema._unsubstituted_typevar_schema�  sü   € Ü˜'¤6§>¡>Ô2Ð2Ð2à×!Ñ!ˆØ×-Ñ-ˆÜ“(ˆÜ˜' =°'Ó:ˆà˜Ð¤# kÓ"2°aÑ"7Ñ8¸GÈ7Ð<RÑSÐVWÒWÜ%Ølóð ð ˜'Ñ!Ø×'Ñ'¨Ó0Ð0ÙØ×%Ñ%¤f§l¡l°;Ñ&?Ó@Ð@ÙØ×)Ñ)¨%Ó0ˆFÜ&1×&UÑ&UÙ!¬+×*@Ñ*@Ó*Bô'ˆF�?Ñ#ð ˆMä×)Ñ)Ó+Ð+rw   c                ó–  ‡— 	 t        j                  ‰j                  ‰j                  j                  | j
                  «      }|t        u rt        dd¬«      ‚t        || j                  «      }| j                  |«      }| j                  |t        |j!                  «       ‰j"                  «      d¬«      }| j$                  j&                  }|rŽ‰j                  j(                  �‰j                  j(                  dk  r_ |‰j"                  «      }t+        |t,        «      st/        d|› d|j0                  › �«      ‚|‰j                  _        d‰j                  _        dˆfd	„}t5        |g¬
«      }	t7        j8                  ‰j"                  |‰j                  j2                  |	¬«      S # t        $ r}t        j                  |«      |‚d }~ww xY w)Nz�Computed field is missing return type annotation or specifying `return_type` to the `@computed_field` decorator (e.g. `@computed_field(return_type=int|str)`)zmodel-field-missing-annotationrz   T©Úcomputed_fieldr9   rÞ  rß  c                ó–   •—  || «      }d|d<   ‰j                   j                  }|�||d<   ‰j                   j                  }|�||d<   |S )NTÚreadOnlyr˜   r™   )rr   r˜   r™   )rŠ   r¡   r£   r˜   r™   rP  s        €ru   Úset_computed_field_metadatazJGenerateSchema._computed_field_schema.<locals>.set_computed_field_metadataÚ  sX   ø€ Ù! &›/ˆKà&*ˆK˜
Ñ#à—F‘F—L‘LˆEØÐ Ø',�˜GÑ$àŸ&™&×,Ñ,ˆKØÐ&Ø-8�˜MÑ*àÐrw   rÜ  )rN  rë  rý   rá  )r:   Úget_function_return_typeÚfuncrr   Úreturn_typerº   rk  r1   rl  r    r2   r[   r»   rÝ   rè  r†   r	  r   rÑ   ré  rê  rp   rY  r’   r¯   rë  rA   r!   r”  )
rÄ   rP  r5  rš  rn  Úreturn_type_schemaré  rë  r—  rý   s
    `        ru   rE  z%GenerateSchema._computed_field_schema·  sœ  ø€ ð
	HÜ%×>Ñ>¸q¿v¹vÀqÇvÁv×GYÑGYÐ[_×[pÑ[pÓqˆKð Ô+Ñ+Ü#ðdà5ôð ô $ K°×1CÑ1CÓDˆØ!×1Ñ1°+Ó>Ðà!×:Ñ:ØÜ0Ð1B×1IÑ1IÓ1KÈQÏ^É^Ó\Øð ;ó 
Ðð ×.Ñ.×>Ñ>ˆÙ §¡× 5Ñ 5Ð =ÀÇÁ×AVÑAVÐZ[ÒA[Ù# A§N¡NÓ3ˆEÜ˜e¤SÔ)ÜÐ"2°?Ð2CÐCYÐZ_×ZiÑZiÐYjÐ kÓlÐlØ ˆA�F‰FŒLØ$%ˆA�F‰FÔ!õ	ô 'Ð@[Ð?\Ô]ˆÜ×)Ñ)Ø�N‰NÐ*<ÀAÇFÁFÇLÁLÐ[cô
ð 	
øôY ò 	HÜ-×=Ñ=¸aÓ@ÀaÐGûð	Hús   ƒ?F$ Æ$	GÆ-GÇGc                óœ   — | j                  |d¬«      ^}}| j                  ||«      }|D ]  }t        |t        «      sŒt	        ||«      }Œ! |S )zdGenerate schema for an Annotated type, e.g. `Annotated[int, Field(...)]` or `Annotated[int, Gt(0)]`.Tr#  )r<  r²  rp   r5   rç  )rÄ   Úannotated_typerµ  r   rŠ   râ  s         ru   r„  z GenerateSchema._annotated_schemaî  se   € à$(×$IÑ$IØØð %Jó %
Ð!ˆ�kð ×(Ñ(¨°kÓBˆð &ò 	:ˆJÜ˜*¤iÕ0Ü% j°&Ó9‘ð	:ð ˆrw   c                óœ   — ddl m} 	 t        |«       |D ]&  } |||| j                  j
                  «      }|€Œ$|c S  y # t        $ r Y y w xY w)Nr9   )ÚPREPARE_METHODS)r­  rŸ  Úhashr’   rÑ   r®  )rÄ   rÌ   r   rŸ  Úgenr´  s         ru   r±  z?GenerateSchema._get_prepare_pydantic_annotations_for_known_typeü  sa   € õ 	7ð	Ü�ŒIð
 #ò 	ˆCÙ�c˜;¨×(<Ñ(<×(HÑ(HÓIˆCØ‰Ø’
ð	ð
 øô ò 	áð	ús   ˆ? ¿	AÁ
Ac                ó   — | S r„   rV  )r‹  s    ru   rL  zGenerateSchema.<lambda>  s   € Èq€ rw   c                ó¬  ‡ ‡— t        t        j                  |«      «      }‰ j                  |t	        |«      «      }|�|\  }}g }dˆ ˆfd„}t        |‰ «      }|D ]  }|€Œ‰ j                  |||«      }Œ  ||«      }	|r6t        |	«      j                  }
|
j                  dg «      j                  |«       t        ‰ j                  j                  ||	«      S )a„  Apply arguments from `Annotated` or from `FieldInfo` to a schema.

        This gets called by `GenerateSchema._annotated_schema` but differs from it in that it does
        not expect `source_type` to be an `Annotated` object, it expects it to be  the first argument of that
        (in other words, `GenerateSchema._annotated_schema` just unpacks `Annotated`, this process it).
        c                óè   •— ‰j                  | | «      }|€‰j                  | «      }n|}t        | |«      }|�4t        |‰j                  j
                  «      }|�‰j                  ||«        ‰|«      S r„   )r  r  r  r  r¿   r  r  )rÌ   r  rŠ   r  r  rÄ   rÕ  s        €€ru   Úinner_handlerz8GenerateSchema._apply_annotations.<locals>.inner_handler"  s{   ø€ Ø ×?Ñ?ÀÀSÓIˆMØÐ$Ø×.Ñ.¨sÓ3‘à&�Ü#DÀSÈ&Ó#QÐ Ø#Ð/Ü"9¸&À$Ç)Á)×BWÑBWÓ"X�Ø"Ð.Ø×)Ñ)¨/Ð;OÔPÙ)¨&Ó1Ð1rw   Ú pydantic_js_annotation_functions©rÌ   r   rX  r   )r  r<   Úexpand_grouped_metadatar±  rt  r\   Ú_get_wrapped_inner_schemar@   rý   r  Úextendr¶   rÑ   r²   )rÄ   rµ  r   rÕ  r´  r¦  r¥  Úget_inner_schemarâ  rŠ   rý   s   `  `       ru   r²  z!GenerateSchema._apply_annotations  sç   ù€ ô Ô4×LÑLÈ[ÓYÓZˆØ×CÑCÀKÔQVÐWbÓQcÓdˆØˆ?Ø'*Ñ$ˆK˜àHJÐ(ö	2ô 8¸ÀtÓLÐà%ò 	ˆJØÐ!ØØ#×=Ñ=Ø  *Ð.Nó Ñð	ñ " +Ó.ˆÙ+Ü*¨6Ó2×;Ñ;ˆHØ×ÑÐ BÀBÓG×NÑNÐOoÔpÜ;¸D×<PÑ<P×<^Ñ<^Ð`kÐmsÓtÐtrw   c                ó   — t        |t        «      rM|j                  D ]  }| j                  ||«      }Œ |j                  �| j                  ||j                  «      }|S |d   dk(  r?|j                  dt        j                  «       «      }| j                  ||«      }|r||d<   |S |}|j                  dd «      }|�X|j                  «       }|dt        |«      › �z   }|| j                  j                  v r| j                  j                  |   S ||d<   n“|d   dk(  r‹|d   }|| j                  j                  v rn| j                  j                  |   j                  «       }|dt        |«      › �z   }|| j                  j                  v r| j                  j                  |   S ||d<   t        j                  ||j                  «       «      }|�|S |S )Nrˆ   r‰   rŠ   r¥   rf  údefinition-refr‚  )rp   r5   rý   Ú_apply_single_annotationr  r  r�   r!   r�   r   Úreprr¿   r  r<   Úapply_known_metadata)	rÄ   rŠ   rý   Úfield_metadatar&  r¤   r¥   Únew_refÚmaybe_updated_schemas	            ru   r®  z'GenerateSchema._apply_single_annotation>  sÏ  € Ü�h¤	Ô*Ø"*×"3Ñ"3ò O�Ø×6Ñ6°v¸~ÓN‘ðOð ×%Ñ%Ð1Ø×;Ñ;¸FÀH×DZÑDZÓ[�ØˆMà�&‰>˜ZÒ'à—J‘J˜x¬×)?Ñ)?Ó)AÓBˆEØ×1Ñ1°%¸ÓBˆEÙØ#(��xÑ ØˆMà ˆØ�j‰j˜ Ó%ˆØˆ?Ø—[‘[“]ˆFØ˜a¤ X£Ð/Ð0Ñ0ˆGØ˜$Ÿ)™)×/Ñ/Ñ/Ø—y‘y×,Ñ,¨WÑ5Ð5Ø#ˆF�5ŠMØ�F‰^Ð/Ò/Ø˜Ñ&ˆCØ�d—i‘i×+Ñ+Ñ+ØŸ™×.Ñ.¨sÑ3×8Ñ8Ó:�Ø !¤D¨£NÐ#3Ð 4Ñ4�Ø˜dŸi™i×3Ñ3Ñ3ØŸ9™9×0Ñ0°Ñ9Ð9Ø '��u‘ä8×MÑMÈhÐX^×XcÑXcÓXeÓfÐàÐ+Ø'Ð'ØÐrw   c                óÊ  ‡‡— t        |t        «      rÐ|j                  D ]  }| j                  ||«      }Œ i Š|j                  r|j                  ‰d<   |j
                  r|j
                  ‰d<   |j                  rt        |j                  «      ‰d<   |j                  Š‰s‰rA	 	 	 	 	 	 dˆˆfd„}t        |«      j                  j                  dg «      j                  |«       |S )Nr˜   r™   rÖ  c                ó¸   •—  || «      }|j                  ‰«       t        ‰t        «      r|j                  t        ‰«      «       |S t	        ‰«      r ‰|«       |S r„   )rZ  rp   rŒ   r"   rØ  )r!   r¡   r£   rÙ  Újson_schema_updates      €€ru   rÛ  zTGenerateSchema._apply_single_annotation_json_schema.<locals>.json_schema_update_funcw  s_   ø€ ñ #*¨+Ó"6�KØ×&Ñ&Ð'9Ô:Ü!Ð"3´TÔ:Ø#×*Ñ*Ô+=Ð>OÓ+PÔQð 'Ð&ô "Ð"3Ô4Ù)¨+Ô6Ø&Ð&rw   r¦  )r!   rC   r¡   r-   rX  r6   )rp   r5   rý   Ú$_apply_single_annotation_json_schemar˜   r™   rÖ  r"   rÙ  r@   r  r  )rÄ   rŠ   rý   r±  rÛ  rÙ  r¶  s        @@ru   r·  z3GenerateSchema._apply_single_annotation_json_schemaf  sð   ù€ ô �h¤	Ô*Ø"*×"3Ñ"3ò [�Ø×BÑBÀ6È>ÓZ‘ð[à24ÐØ�~Š~Ø.6¯n©nÐ" 7Ñ+Ø×#Ò#Ø4<×4HÑ4HÐ" =Ñ1Ø× Ò Ü1CÀH×DUÑDUÓ1VÐ" :Ñ.à (× :Ñ :ÐÙ!Ñ%6ð	'Ø!2ð	'Ø=Qð	'à$ö	'ô $ FÓ+×4Ñ4×?Ñ?Ð@bÐdfÓg×nÑnØ+ôð ˆrw   c                ó\   ‡ ‡‡‡‡— t        ‰dd «      xs d„ Šdˆˆˆˆˆ fd„}t        |‰ «      S )Nr^  c                ó   —  || «      S r„   rV  )re  r¡   s     ru   rL  z:GenerateSchema._get_wrapped_inner_schema.<locals>.<lambda>Ž  s
   € ¡G¨F£O€ rw   c                ó    •—  ‰| ‰«      }‰j                  |‰«      }‰j                  |‰«      }t        ‰|«      }|�‰j                  |«       |S r„   )r®  r·  r  r  )re  rŠ   r  râ  r«  Úmetadata_get_schemar¦  rÄ   s      €€€€€ru   Únew_handlerz=GenerateSchema._get_wrapped_inner_schema.<locals>.new_handler‘  s\   ø€ Ù(¨Ð1AÓBˆFØ×2Ñ2°6¸:ÓFˆFØ×>Ñ>¸vÀzÓRˆFä#DÀZÐQWÓ#XÐ Ø#Ð/Ø0×7Ñ7Ð8LÔMØˆMrw   )re  r   rX  úcore_schema.CoreSchema)r®   r\   )rÄ   r«  râ  r¦  r¼  r»  s   ```` @ru   r©  z(GenerateSchema._get_wrapped_inner_schema‡  s9   ü€ ô 6=¸ZÐIgÐimÓ5nò 6
Ù3ð 	÷	ñ 	ô ,¨K¸Ó>Ð>rw   c                óª  — |�r¨t        |«      }|d   dk(  r|d   }| j                  ||«      |d<   |S t        j                  d|j	                  dd«      «      }|�t        j                  |«      }|d   }t        |j                  |j                  j                  |¬«      \  }}	 t        j                  |j                  |j                  j                  | j                  «      }	|	t$        u rd}n| j'                  |	«      }|j                  j                  d	k(  r=t        j(                  |j                  ||||j                  j*                  ¬
«      |d<   |S |j                  j                  dk(  sJ ‚t        j,                  |j                  ||||j                  j*                  ¬
«      |d<   |S # t        $ r}
t!        j"                  |
«      |
‚d}
~
ww xY w)z$Apply field serializers to a schema.rˆ   r  rŠ   zstr|Noner¥   Nr«   r“  Úwrap)Úis_field_serializerÚinfo_argrN  r­   r©   Úplain)r   rè  r§  r   r�   r!   r  rR   r™  rr   r   r:   r˜  rš  rº   rk  r1   rl  r    rÝ   rŽ  r­   r±   )rÄ   rŠ   Úserializersr”  r•   r¥   Ú
serializerrÀ  rÁ  rš  rn  rN  s               ru   rè  z'GenerateSchema._apply_field_serializers�  s¸  € ò Ü˜&“\ˆFØ�f‰~ Ò.Ø% hÑ/�Ø#'×#@Ñ#@ÀÈ{Ó#[��xÑ Ø�ä—k‘k *¨f¯j©j¸ÀÓ.EÓF�Ø�?Ü(×DÑDÀSÓI�Fð % R™ˆJÜ,DØ—‘ §¡×!5Ñ!5Ànô-Ñ)Ð ðLÜ)×BÑBØ—O‘O Z§_¡_×%@Ñ%@À$×BWÑBWó�ð Ô/Ñ/Ø $‘à $× 4Ñ 4°[Ó A�à�‰×#Ñ# vÒ-Ü*5×*YÑ*YØ—O‘OØ(;Ø%Ø"/Ø(Ÿo™o×7Ñ7ô+��Ñ'ð  ˆð "—‘×+Ñ+¨wÒ6Ð6Ð6Ü*5×*ZÑ*ZØ—O‘OØ(;Ø%Ø"/Ø(Ÿo™o×7Ñ7ô+��Ñ'ð ˆøô3 ò LÜ1×AÑAÀ!ÓDÈ!ÐKûðLús   Â%?F. Æ.	GÆ7GÇGc                óÎ  — |j                  dd«      }|�r!t        |«      d   }t        |j                  |j                  j
                  «      }	 t        j                  |j                  |j                  j                  | j                  «      }|t        u rd}n| j                  |«      }|j                  j
                  dk(  r8t        j                   |j                  |||j                  j"                  ¬«      }	n7t        j$                  |j                  |||j                  j"                  ¬«      }	|	|d<   |r||d<   |S # t        $ r}t        j                  |«      |‚d}~ww xY w)z$Apply model serializers to a schema.r¥   Nr«   r¿  )rÁ  rN  r­   r©   )Úpopr  rS   r™  rr   r   r:   r˜  rš  rº   rk  r1   rl  r    rÝ   r!   rŽ  r­   r±   )
rÄ   rŠ   rÃ  r¥   rÄ  rÁ  rš  rn  rN  Ú
ser_schemas
             ru   rG  z'GenerateSchema._apply_model_serializersÔ  s=  € ð !Ÿ*™* U¨DÓ1ˆÚÜ˜kÓ*¨2Ñ.ˆJÜ/°
·±ÀÇÁ×AUÑAUÓVˆHðLÜ)×BÑBØ—O‘O Z§_¡_×%@Ñ%@À$×BWÑBWó�ð
 Ô/Ñ/Ø $‘à $× 4Ñ 4°[Ó A�à�‰×#Ñ# vÒ-Ü4?×4cÑ4cØ—O‘OØ%Ø"/Ø(Ÿo™o×7Ñ7ô	5‘
ô )×MÑMØ—O‘OØ%Ø"/Ø(Ÿo™o×7Ñ7ô	�
ð '1ˆF�?Ñ#ÙØˆF�5‰MØˆøô3 ò LÜ1×AÑAÀ!ÓDÈ!ÐKûðLús   Á?E  Å 	E$Å	EÅE$r„   )rÅ   r>   rÆ   údict[str, Any] | NonerÇ   údict[Any, Any] | NonerX  ÚNone)
rË   r?   rÆ   rÈ  rÇ   rÉ  r¿   rÃ   rX  r¸   )rX  r>   )rX  r¸   )rX  r�  )rX  r   )r³   r   rß   r   rX  r   )r³   r   rã   r   rä   r   rX  r   )r³   r   rñ   ú	list[Any]rX  r   )r³   r   rX  r   r§  )rŠ   r   r  r   rX  r   rà  )r  r   r  úCallable[..., Any]rX  rÊ  )T)rÌ   r   r  r�  rX  r½  )r¢   ztype[BaseModel]rX  r½  )rÌ   r   re  r   rX  zcore_schema.CoreSchema | None)rÌ   r   rX  r   )rÌ   r   r$  zLiteral[True]rX  útuple[Any, ...])rÌ   r   rX  útuple[Any, ...] | None)F)rÌ   r   r$  r�  rX  rÎ  )rÌ   r   rX  ztuple[Any, Any])rŠ   r½  rX  r½  )rÌ   r   rX  r½  )rÌ   r   rz  r   rX  r   )
rÄ  rY  rÅ  r5   r€   rJ   r$  r�  rX  zcore_schema.TypedDictField)rÄ  rY  rÅ  r5   r€   rJ   rX  zcore_schema.ModelField)rÄ  rY  rÅ  r5   r€   rJ   rX  zcore_schema.DataclassField)rÄ  rY  rÅ  r5   r€   rJ   rX  Ú_CommonField)rô  r   rX  r½  )r   r   rX  r   )r  r   rz  r   rX  r½  )r  r   rz  r   rX  r½  )
rÄ  rY  râ  z	type[Any]r  r   r   zJLiteral['positional_only', 'positional_or_keyword', 'keyword_only'] | NonerX  zcore_schema.ArgumentsParameter)r+  r   rX  r½  )rX  r½  )r7  r   rX  r½  )rA  r   rX  r½  )r7  r   rX  zcore_schema.GeneratorSchema)rT  r   rX  r½  )rj  ztype[StandardDataclass]rz  ztype[StandardDataclass] | NonerX  r½  )r  rÌ  rX  zcore_schema.CallSchema)r�  ztyping.TypeVarrX  r½  )rP  zDecorator[ComputedFieldInfo]r5  z2dict[str, Decorator[FieldSerializerDecoratorInfo]]rX  zcore_schema.ComputedField)r�  r   rX  r½  )rÌ   r   r   rÍ  rX  ztuple[Any, list[Any]] | None)rµ  r   r   rË  rÕ  z"Callable[[CoreSchema], CoreSchema]rX  r   )rŠ   r½  rý   r   rX  r½  )r«  r,   râ  r   r¦  zlist[GetJsonSchemaFunction]rX  r\   )rŠ   r½  rÃ  z-list[Decorator[FieldSerializerDecoratorInfo]]r”  r�  rX  r½  )rŠ   r½  rÃ  z1Iterable[Decorator[ModelSerializerDecoratorInfo]]rX  r½  )Erœ   r	  Ú__qualname__r�   r_  rÈ   ÚclassmethodrÔ   ÚpropertyrÑ   rÕ   rØ   rÚ   rà   rå   rè   rë   rî   ró   r÷   rû   r  r
  r  rÝ   rS  r[  r  ro  r   r<  rx  r{  r  r  r~  r‡  r³  rÇ  rD  rÒ  r?  r¸  r–  r›  rœ  rž  r	   r  r  r•  r—  r¹  r»  r½  r£  r¨  r°  rª  r©  rE  r„  r±  r²  r®  r·  r©  rè  rG  rV  rw   ru   r¸   r¸     s  „ Ùfð€Ið /3ð	#à%ð#ð /ð#ð ,ð	#ð
 
ó#ð ðà0ðð /ðð ,ð	ð
 ðð 
òó ðð" ò/ó ð/ð ò
ó ð
ð ò<ó ð<ó(óIókóHóNóSóBó
2ó	
óó&	
ó	6ð -1ð/àð/ð &*ð/ð 
 ó	/óbWJóró-ó^ð, òó ðð òó ðôóó óó	ó$ó0U.ón*.ðd ñ
àð
ð ð
ð #ð	
ð ð
ð 
$ó
ð&
àð
ð ð
ð #ð	
ð
 
 ó
ð"
àð
ð ð
ð #ð	
ð
 
$ó
ó(_
óBð*@àð@ð 
ó@ó04óXOótaðJ !—‘Ø[_ð àð ð ð ð ð	 ð
 Yð ð 
(ó ó>Kó<
ó>ó(góMóró8
ðDNØ0ðDNØ:XðDNà	óDNóL3
ój,ð45
à'ð5
ð Nð5
ð 
#ó	5
ónðØðØ%4ðà	%óñ. FQð	-uàð-uð ð-uð !Cð	-uð
 
ó-uó^&ðPØ,ðØ8;ðà	óðB?à.ð?ð ð?ð +Fð	?ð
 
&ó?ð4  %ð	5à&ð5ð Cð5ð ð	5ð
 
 ó5ðn&Ø,ð&Ø;lð&à	ô&rw   r¸   c                ó.   — t        j                  | |«      S r„   )r!   Ú!no_info_before_validator_function©ÚfrŠ   rf  s      ru   rL  rL    s   € ´×0]Ñ0]Ð^_ÐagÓ0h€ rw   c                ó.   — t        j                  | |«      S r„   )r!   Ú no_info_after_validator_functionrÕ  s      ru   rL  rL    s   € ¬{×/[Ñ/[Ð\]Ð_eÓ/f€ rw   c                ó,   — t        j                  | «      S r„   )r!   rP  )rÖ  rJ  rK  s      ru   rL  rL    s   € ¬K×,XÑ,XÐYZÓ,[€ rw   c                ó.   — t        j                  | |«      S r„   )r!   r?  rÕ  s      ru   rL  rL    s   € ¬k×.YÑ.YÐZ[Ð]cÓ.d€ rw   c                ó2   — t        j                  | ||¬«      S ©N)r”   )r!   Ú#with_info_before_validator_function©rÖ  rŠ   r”   s      ru   rL  rL    s   € ¼;×;jÑ;jØ	ˆ6˜jô<€ rw   c                ó2   — t        j                  | ||¬«      S rÜ  )r!   Ú"with_info_after_validator_functionrÞ  s      ru   rL  rL    s   € ¼+×:hÑ:hØ	ˆ6˜jô;€ rw   c                ó0   — t        j                  | |¬«      S rÜ  )r!   rb  )rÖ  rf  r”   s      ru   rL  rL    s   € ´[×5cÑ5cØ	�jô6€ rw   c                ó2   — t        j                  | ||¬«      S rÜ  )r!   Ú!with_info_wrap_validator_functionrÞ  s      ru   rL  rL    s   € ¼×9fÑ9fØ	ˆ6˜jô:€ rw   ))Úbeforeúno-info)Úafterrå  )rÂ  rå  )r¿  rå  )rä  ú	with-info)ræ  rç  )rÂ  rç  )r¿  rç  z Mapping[tuple[FieldValidatorModes, Literal['no-info', 'with-info']], Callable[[Callable[..., Any], core_schema.CoreSchema, str | None], core_schema.CoreSchema]]Ú_VALIDATOR_F_MATCHc                óÔ   — |D ]b  }t        |j                  |j                  j                  «      }|rdnd}t	        |j                  j                  |f   |j                  | |«      } Œd | S )a  Apply validators to a schema.

    Args:
        schema: The schema to apply validators on.
        validators: An iterable of validators.
        field_name: The name of the field if validators are being applied to a model field.

    Returns:
        The updated schema.
    rç  rå  )rT   r™  rr   r   rè  )rŠ   r6  r”   Ú	validatorrÁ  Úval_types         ru   r‘   r‘     sg   € ð"  ò iˆ	Ü$ Y§^¡^°Y·^±^×5HÑ5HÓIˆÙ"*‘;°	ˆä# Y§^¡^×%8Ñ%8¸(Ð$CÑDÀYÇ^Á^ÐU[Ð]gÓh‰ð	ið
 €Mrw   c                óB   — | D ]  }|j                   j                  sŒ y y)a?  In v1, if any of the validators for a field had `always=True`, the default value would be validated.

    This serves as an auxiliary function for re-implementing that logic, by looping over a provided
    collection of (v1-style) ValidatorDecoratorInfo's and checking if any of them have `always=True`.

    We should be able to drop this function and the associated logic calling it once we drop support
    for v1-style validator decorators. (Or we can extend it and keep it if we add something equivalent
    to the v1-validator `always` kwarg to `field_validator`.)
    TF)rr   Úalways)r6  rê  s     ru   rä  rä  -  s(   € ð  ò ˆ	Ø�>‰>× Ó Ùðð rw   c                ó\  — | j                  dd«      }|D �]Œ  }|dk(  r|j                  j                  dk7  rŒ#|dk(  r|j                  j                  dk(  rŒBt        |j                  |j                  j                  «      }|j                  j                  dk(  rF|r"t        j                  |j                  | ¬«      } Œ©t        j                  |j                  | ¬«      } ŒË|j                  j                  dk(  rH|r#t        j                  |j                  | ¬«      } �Œ	t        j                  |j                  | ¬«      } �Œ,|j                  j                  dk(  sJ ‚|r#t        j                  |j                  | ¬«      } �Œlt        j                  |j                  | ¬«      } �Œ� |r|| d<   | S )	a“  Apply model validators to a schema.

    If mode == 'inner', only "before" validators are applied
    If mode == 'outer', validators other than "before" are applied
    If mode == 'all', all validators are applied

    Args:
        schema: The schema to apply validators on.
        validators: An iterable of validators.
        mode: The validator mode.

    Returns:
        The updated schema.
    r¥   Nr&  rä  r0  r¿  )r  rŠ   ræ  )rÆ  rr   r   rT   r™  r!   rã  r?  rÝ  rÔ  rà  rØ  )rŠ   r6  r   r¥   rê  rÁ  s         ru   r@  r@  =  sc  € ð& —j‘j ¨Ó-€CØó nˆ	Ø�7Š?˜yŸ~™~×2Ñ2°hÒ>ØØ�7Š?˜yŸ~™~×2Ñ2°hÒ>ØÜ$ Y§^¡^°Y·^±^×5HÑ5HÓIˆØ�>‰>×Ñ &Ò(ÙÜ$×FÑFÐPY×P^ÑP^ÐgmÔn‘ä$×DÑDÈiÏnÉnÐekÔl‘Ø�^‰^× Ñ  HÒ,ÙÜ$×HÑHÐR[×R`ÑR`ÐioÔp’ä$×FÑFÐPY×P^ÑP^ÐgmÔn’à—>‘>×&Ñ&¨'Ò1Ð1Ð1ÙÜ$×GÑGÐQZ×Q_ÑQ_ÐhnÔo’ä$×EÑEÈyÏ~É~ÐflÔm’ð+nñ, Øˆˆu‰Ø€Mrw   c                óò   — | j                   r,t        j                  || j                   | j                  ¬«      S | j                  t
        ur,t        j                  || j                  | j                  ¬«      S |S )a  Wrap schema with default schema if default value or `default_factory` are available.

    Args:
        field_info: The field info object.
        schema: The schema to apply default on.

    Returns:
        Updated schema by default value or `default_factory`.
    )Údefault_factoryrå  )r  rå  )rð  r!   Úwith_default_schemarå  r  r    )rÅ  rŠ   s     ru   rç  rç  l  sr   € ð ×!Ò!Ü×.Ñ.Ø J×$>Ñ$>ÐQ[×QlÑQlô
ð 	
ð 
×	Ñ	Ô#4Ñ	4Ü×.Ñ.Ø˜J×.Ñ.À×A\ÑA\ô
ð 	
ð ˆrw   c                óF  — t        | dd«      }t        | d«      r@ddlm} |duxr% |j                  j
                  |t        |dd«      fv}|st        dd¬	«      ‚t        | d
«      r8t        | t        t        t        df   «      «      st        | j                  |«      S |€y|S )z`Extract `__get_pydantic_json_schema__` from a type, handling the deprecated `__modify_schema__`.Ú__get_pydantic_json_schema__NÚ__modify_schema__r   r_   Ú__func__zkThe `__modify_schema__` method is not supported in Pydantic v2. Use `__get_pydantic_json_schema__` instead.zcustom-json-schemarz   Ú
__origin__Úplaceholder)r®   rg  Úpydanticr`   ró  rõ  r2   rp   rˆ   r#   rŒ  r  rö  )r³   rŠ   Újs_modify_functionr`   Úhas_custom_v2_modify_js_funcs        ru   r  r  ‚  s»   € ä  Ð%CÀTÓJÐäˆrÐ&Ô'Ý&ð  dÐ*ò WØ×6Ñ6×?Ñ?Ø&¬Ð0BÀJÐPTÓ(UÐVðWð 	%ñ ,Ü#ð>à)ôð ô ˆr�<Ô ¬°B¼¼YÄsÈMÐGYÑ=ZÓ8[Ô)\Ü0°·±ÀÓGÐGàÐ!ØàÐrw   c                  óJ   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   y)rÏ  r½  rŠ   ú4str | list[str | int] | list[list[str | int]] | NonerÀ  r  rÁ  úbool | Noner¿  rÉ  zdict[str, Any]rý   N)rœ   r	  rÐ  r;  rV  rw   ru   rÏ  rÏ     s&   … Ø"Ó"ØJÓJØ#Ó#Ø&Ó&ØÓØÔrw   rÏ  )rÀ  rÁ  r¿  rÉ  rý   c               ó   — | |||||dœS )N©rŠ   rÀ  rÁ  r¿  rÉ  rý   rV  rÿ  s         ru   rí  rí  ©  s    € ð Ø,Ø2Ø!6ØØñð rw   c                  ó*   — e Zd ZdZdd„Zedd„«       Zy)rÃ   z*Keeps track of references and definitions.c                ó0   — t        «       | _        i | _        y r„   )r|   Úseenr  rÐ   s    ru   rÈ   z_Definitions.__init__¿  s   € Ü!›eˆŒ	Ø>@ˆÕrw   c              #  óH  K  — t        |«      }|| j                  v s|| j                  v r|t        j                  |«      f–— y| j                  j                  |«       	 |df–— | j                  j                  |«       y# | j                  j                  |«       w xY w­w)ao  Get a definition for `tp` if one exists.

        If a definition exists, a tuple of `(ref_string, CoreSchema)` is returned.
        If no definition exists yet, a tuple of `(ref_string, None)` is returned.

        Note that the returned `CoreSchema` will always be a `DefinitionReferenceSchema`,
        not the actual definition itself.

        This should be called for any type that can be identified by reference.
        This includes any recursive types.

        At present the following types can be named/recursive:

        - BaseModel
        - Dataclasses
        - TypedDict
        - TypeAliasType
        N)rF   r  r  r!   r  ÚaddÚdiscard)rÄ   r³   r¥   s      ru   r1  z_Definitions.get_schema_or_refÃ  s„   è ø€ ô( ˜2Óˆà�$—)‘)Ñ˜s d×&6Ñ&6Ñ6Øœ×?Ñ?ÀÓDÐEÓEà�I‰I�M‰M˜#Ôð'Ø˜D�kÒ!à—	‘	×!Ñ! #Õ&ø�—	‘	×!Ñ! #Õ&üs   ‚AB"Á B Á&B"ÂBÂB"N©rX  rÊ  )r³   r   rX  z3Iterator[tuple[str, None] | tuple[str, CoreSchema]])rœ   r	  rÐ  r�   rÈ   r   r1  rV  rw   ru   rÃ   rÃ   ¼  s   „ Ù4óAð ò'ó ñ'rw   rÃ   c                óZ   — | d   dk(  r|j                  | d   d «      S | d   dk(  r| d   S | S )Nrˆ   r­  r‚  r  rŠ   r\  )rŠ   r  s     ru   r  r  ã  sA   € Øˆf�~Ð)Ò)Ø�‰˜v lÑ3°TÓ:Ð:Ø	�‰˜=Ò	(Ø�hÑÐàˆrw   c                  ó2   — e Zd ZdZdd„Zedd„«       Zdd„Zy)	rÂ   ©Ú_stackc                ó   — g | _         y r„   r	  rÐ   s    ru   rÈ   z_FieldNameStack.__init__ï  s	   € Ø!#ˆ�rw   c              #  ó~   K  — | j                   j                  |«       d –— | j                   j                  «        y ­wr„   )r
  r  rÆ  )rÄ   r”   s     ru   r=  z_FieldNameStack.pushò  s)   è ø€ à�‰×Ñ˜:Ô&ÛØ�‰�‰Õùs   ‚;=c                ó:   — | j                   r| j                   d   S y )Nr«   r	  rÐ   s    ru   r�   z_FieldNameStack.getø  s   € Ø�;Š;Ø—;‘;˜r‘?Ð"àrw   Nr  )r”   rY  rX  zIterator[None])rX  r  )rœ   r	  rÐ  r_  rÈ   r   r=  r�   rV  rw   ru   rÂ   rÂ   ì  s%   „ Ø€Ió$ð òó ðô
rw   rÂ   )rr   ÚFieldDecoratorInfors   rY  rX  r�  )r€   zIterable[AnyFieldDecorator]rq   zIterable[str]rX  rÊ  )r…   z+Iterable[Decorator[FieldDecoratorInfoType]]rs   rY  rX  z'list[Decorator[FieldDecoratorInfoType]])rŠ   r½  r“   z'list[Decorator[ValidatorDecoratorInfo]]r”   r  rX  r½  )r    rC   r¡   r-   r¢   r   rX  r6   )r²   zJsonEncoders | Noner³   r   rŠ   r   rX  r   )rŠ   r½  r6  z�Iterable[Decorator[RootValidatorDecoratorInfo]] | Iterable[Decorator[ValidatorDecoratorInfo]] | Iterable[Decorator[FieldValidatorDecoratorInfo]]r”   r  rX  r½  )r6  z+Iterable[Decorator[ValidatorDecoratorInfo]]rX  r�  )rŠ   r½  r6  z0Iterable[Decorator[ModelValidatorDecoratorInfo]]r   z Literal['inner', 'outer', 'all']rX  r½  )rÅ  r5   rŠ   r½  rX  r½  )r³   r   rŠ   r   rX  zGetJsonSchemaFunction | None)rŠ   r½  rÀ  rü  rÁ  r  r¿  rý  rÉ  rý  rý   r   rX  rÏ  )rŠ   r   r  zdict[str, CoreSchema]rX  zCoreSchema | None)³r�   Ú
__future__r   Ú_annotationsÚcollections.abcr¤  rb  rž   r¡  Úsysr§  r°   Ú
contextlibr   r   r   Úenumr   Ú	functoolsr   r	   r
   r   Ú	itertoolsr   Úoperatorr   Útypesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpydantic_corer   r    r!   r"   Útyping_extensionsr#   r$   r%   r&   r'   r(   r)   r*   Úannotated_handlersr,   r-   r,  r.   r/   Úerrorsr0   r1   r2   rq   r3   r4   r5   r£   r6   Úversionr7   r8   rO  r:   r;   r<   r=   Ú_configr>   r?   Ú_core_metadatar@   rA   Ú_core_utilsrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   r  rU   rV   Ú_forward_refrW   Ú	_genericsrX   rY   rZ   r[   Ú_schema_generation_sharedr\   r]   Ú_utilsr^   r…  r`   r6  ra   Ú_dataclassesrb   rc   Úversion_infor  rˆ   rŒ  rƒ  r  rg   ÚAnyFieldDecoratorÚModifyCoreSchemaWrapHandlerÚGetCoreSchemaFunctionrt  ÚTupleri   r;  r  ÚListr¥  ÚMutableSequencerj   r|   ÚSetÚ
MutableSetrk   Ú	frozensetÚ	FrozenSetrl   rŒ   ÚMutableMappingrm   rv   r‚   r†   rŽ   r§   ÚJsonEncodersr¶   r¸   rè  r‘   rä  r@  rç  r  rÏ  rí  rÃ   r  rÂ   rV  rw   ru   ú<module>r3     s	  ðÚ 3Ý 2ã Û Û Û 	Û 
Û Û Ý %ß Ý Ý ß 8Ñ 8Ý Ý ß 6Ñ 6÷÷ ÷ õ õ ç XÓ Xß u× uÓ uç Kß ,ß bÑ bß 7Ñ 7Ý )Ý #Ý 0ß YÓ Yß 6÷÷÷ ÷÷ ÷ õ ÷ MÝ .ß tÓ tõõ 'Ý &áÝ Ý0Ý/Ý@à×&Ò&¨'Ñ1Ð Ù�i  S Ñ)Ó*€àÐ1Ð3NÐPlÐlÑmÐ Ù Ð!9ÐASÔTÐ ØØÐ$Ñ%ØÐ)Ñ*ØÐ*Ñ+ð-ñÐ ð 3Ð Ø  #Ð'BÐ!CÀ[×E[ÑE[Ð![Ñ\Ð ð ! &§,¢,Ð/€ˆZÓ /Ø §¢¨[¯_ª_×-LÒ-LÐM€
ˆJÓ MØ˜fŸjšj¨+¯/ª/×*DÒ*DÐE€	ˆ:Ó EØ )¨6×+;Ò+;¸[¿_º_×=PÒ=PÐQÐ �*Ó QØ §¡¨[¯_ª_×-KÒ-KÈ[Ï_Ê_×MdÑMdÐe€
ˆJÓ eðØ
ðàðð 
óó,ð6nØDðnØMPðnà,ónðØ"ðàAðð ðð ó	ð@Ø&ðØ1EðØORðàóð8 �D˜‘I˜{Ð*Ñ+€ðØ&ðØ,/ðØ9Cðàó÷Drñ rñr/ iÙfÙ[Ùdñññññð ð ó ð.Ø"ðð7ðð
 ðð óó2ð ,Ø"ð,à@ð,ð +ð,ð ó	,ó^ó,ô<�9ô ð NRØ&*Ø)-ØØñØ"ðð Kðð $ð	ð
 'ðð ðð ðð ó÷&$'ñ $'óN÷ò rw   