Ë
    &V.j=¿ ã            
      óÜ	  — 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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 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$ ddl%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z. ddlm/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z> ddlm?Z? ddl@Z@ddlAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI ddl@mJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZRmSZS ddlTmUZUmVZV ddlWmXZXmYZYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_ ddl`maZambZbmcZcmdZdmeZe ddlfmgZg ddlhmiZi ddlmjZj ddlkmlZlmmZmmnZnmoZompZp ddlqmrZrmsZs dd ltmuZu dd!llmvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z} dd"lmm~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Ž dd%l�m�Z� dd&l‘m’Z’m“Z“m”Z”m•Z• dd'l–m—Z—m˜Z˜ dd(l™mšZš dd)l›mœZœm�Z� dd*lžmŸZŸ dd+l m¡Z¡m¢Z¢ e/r dd,l£m¤Z¤m¥Z¥ dd-l¦m§Z§ dd.l)m¨Z¨ dd/l©mªZª dd0lžm«Z« e�jX                  d1k\  Z­e:e…e�e€f   Z® e9d2e®¬3«      Z¯e:e~e…   e~e�   e~e€   f   Z°eUZ±e1e0e±geHj„                  f   Z²e³e�jh                  gZµd4e¶d5<   e·e�jp                  e�jr                  �jt                  gZ»d4e¶d6<   e¼e�jz                  e�jr                  �j|                  gZ¿d4e¶d7<   eÀe�j‚                  e�jr                  �jz                  gZÂd4e¶d8<   eÃejd                  gZÄd4e¶d9<   ee e!e"e#e$gZÅd4e¶d:<   e�jŒ                  e�jr                  �jŒ                  gZÇd4e¶d;<   e	�j�                  e
�j’                  e
�j”                  e
�j–                  e
�j˜                  e
�jš                  gZÎd4e¶d<<   ejn                  e�jž                  e�jr                  jn                  e�jr                  �jž                  e�j                   e@�j                   e�j¢                  e�j¤                  e�j¦                  e�j¦                  g
ZÔe�jª                  e�j¬                  gZ×d4e¶d=<   e:e-e,e.e*e+ef   ZØ eMeØ«      ZÙebeaedeed>œZÚd?e¶d@<   	 	 	 	 	 	 dedA„ZÛdfdB„ZÜ	 	 	 	 	 	 dgdC„ZÝ	 	 	 	 	 	 	 	 dhdD„ZÞ	 	 	 	 didE„Zße2e8e0   eZf   Zà	 	 	 	 	 	 	 	 djdF„ZádkdG„Zâ G dH„ dI«      ZãdJ„ dK„ dL„ dM„ dN„ dO„ dP„ dQ„ dRœZädSe¶dT<   	 	 	 	 	 	 	 	 dldU„ZådmdV„Zæ	 	 	 	 	 	 	 	 dndW„ZçdodX„ZèdpdY„Zé G dZ„ d[eL«      Zêdddddd\œ	 	 	 	 	 	 	 	 	 	 	 	 	 dqd]„Zë G d^„ d_«      Zìdrd`„Zí G da„ db«      Zî G dc„ dd«      Zïy)sz-Convert python types to pydantic-core schema.é    )ÚannotationsN)Úcontextmanager)ÚcopyÚdeepcopy)ÚDecimal)ÚEnum)ÚFraction)Úpartial)Ú	ParameterÚ_ParameterKindÚ	signature)ÚIPv4AddressÚIPv4InterfaceÚIPv4NetworkÚIPv6AddressÚIPv6InterfaceÚIPv6Network)Úchain)Ú
attrgetter)ÚBuiltinFunctionTypeÚBuiltinMethodTypeÚFunctionTypeÚ
LambdaTypeÚ
MethodType)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚFinalÚ
ForwardRefÚIterableÚIteratorÚMappingÚTypeÚTypeVarÚUnionÚcastÚoverload)ÚUUID)Úwarn)Ú
CoreSchemaÚMultiHostUrlÚPydanticCustomErrorÚ$PydanticSerializationUnexpectedValueÚPydanticUndefinedÚUrlÚcore_schemaÚto_jsonable_python)ÚLiteralÚTypeAliasTypeÚ	TypedDictÚget_argsÚ
get_originÚis_typeddicté   )ÚAliasChoicesÚAliasGeneratorÚ	AliasPath)ÚGetCoreSchemaHandlerÚGetJsonSchemaHandler)Ú
ConfigDictÚJsonDictÚJsonEncoderÚJsonSchemaExtraCallable)ÚPydanticSchemaGenerationErrorÚPydanticUndefinedAnnotationÚPydanticUserError)ÚAfterValidatorÚBeforeValidatorÚFieldValidatorModesÚPlainValidatorÚWrapValidator)ÚJsonSchemaValue)Úversion_short)ÚPydanticDeprecatedSince20é   )Ú_core_utilsÚ_decoratorsÚ_discriminated_unionÚ_known_annotated_metadataÚ_typing_extra)ÚConfigWrapperÚConfigWrapperStack)Úupdate_core_metadata)Úcollect_invalid_schemasÚdefine_expected_missing_refsÚget_refÚget_type_refÚis_function_with_inner_schemaÚ%is_list_like_schema_with_items_schemaÚsimplify_schema_referencesÚvalidate_core_schema)Ú	DecoratorÚDecoratorInfosÚFieldSerializerDecoratorInfoÚFieldValidatorDecoratorInfoÚModelSerializerDecoratorInfoÚModelValidatorDecoratorInfoÚRootValidatorDecoratorInfoÚValidatorDecoratorInfoÚget_attribute_from_basesÚinspect_field_serializerÚinspect_model_serializerÚinspect_validator)Úextract_docstrings_from_cls)Úcollect_dataclass_fieldsÚtakes_validated_data_argument)ÚPydanticRecursiveRef)Úget_standard_typevars_mapÚhas_instance_in_typeÚrecursively_defined_type_refsÚreplace_types)Úimport_cached_base_modelÚimport_cached_field_info)ÚMockCoreSchema)ÚNamespacesTupleÚ
NsResolver)ÚCallbackGetCoreSchemaHandler)Úlenient_issubclassÚsmart_deepcopy)ÚComputedFieldInfoÚ	FieldInfo©Ú	BaseModel)ÚDiscriminator)ÚStandardDataclass)ÚGetJsonSchemaFunction)é   é   ÚFieldDecoratorInfoType)Úboundz
list[type]ÚTUPLE_TYPESÚ
LIST_TYPESÚ	SET_TYPESÚFROZEN_SET_TYPESÚ
DICT_TYPESÚIP_TYPESÚSEQUENCE_TYPESÚ
PATH_TYPESÚDEQUE_TYPES)ÚbeforeÚafterÚplainÚwrapzbdict[FieldValidatorModes, type[BeforeValidator | AfterValidator | PlainValidator | WrapValidator]]Ú_mode_to_validatorc                ó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)Úfields)ÚinfoÚfieldÚv_field_names      úeC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pydantic/_internal/_generate_schema.pyÚ)check_validator_fields_against_field_namer›   ª   s1   € ð ˆd�k‰kÑØØŸœˆØ˜5Ó Ùð $ð ó    c           	     ó  — t        |«      }| D ]{  }d|j                  j                  v rŒ|j                  j                  du rŒ5|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.
    r•   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)Úsetr—   r–   Úcheck_fieldsrE   Úcls_refÚcls_var_name)Ú
decoratorsr–   Údecr˜   s       rš   Úcheck_decorator_fields_existr§   ¿   sŠ   € ô �‹[€FÛˆØ�#—(‘(—/‘/Ñ!ØØ�8‰8× Ñ  EÑ)ØØ—X‘X—_”_ˆEØ˜FÒ"Ü'Ø@ÀÇÁÀÈQÈs×O_ÑO_ÐN`Øeðfà2ôð ñ %ñ rœ   c                óZ   — | D �cg c]  }t        |j                  |«      sŒ|‘Œ c}S c c}w ©N)r›   r—   )Úvalidator_functionsr˜   r¦   s      rš   Ú$filter_field_decorator_info_by_fieldr«   Ú   s0   € ñ /ÓmÑ.�CÔ2[Ð\_×\dÑ\dÐfkÕ2lŠCÐ.ÑmÐmùÒms   …(¡(c                óÐ  — |s| S | d   dk(  rt        | d   ||«      | d<   | S | d   dk(  r.| j                  d«      x}�t        | d   |   ||«      | d   |<   | S t        | «      r6| j                  dt	        j
                  «       «      }t        |||«      | d<   | S | d   dk(  r6| j                  dt	        j
                  «       «      }t        |||«      | d<   | S t        d	| d   › �«      ‚)
NÚtypeÚnullableÚschemaÚtupleÚvariadic_item_indexÚitems_schemaÚdictÚvalues_schemazO`@validator(..., each_item=True)` cannot be applied to fields with a schema of )Úapply_each_item_validatorsÚgetÚapply_validatorsr\   r1   Ú
any_schemaÚ	TypeError)r¯   Úeach_item_validatorsÚ
field_namer±   Úinner_schemas        rš   rµ   rµ   à   s.  € ñ  Øˆð
 ˆf�~˜Ò#Ü5°f¸XÑ6FÐH\Ð^hÓiˆˆxÑØˆØ	�‰˜7Ò	"Ø#)§:¡:Ð.CÓ#DÐDÐÐQÜ:JØ�~Ñ&Ð':Ñ;Ø$Øó;ˆF�>Ñ"Ð#6Ñ7ð €Mô 
/¨vÔ	6Ø—z‘z .´+×2HÑ2HÓ2JÓKˆÜ!1°,Ð@TÐV`Ó!aˆˆ~Ñð €Mð 
�‰˜6Ò	!Ø—z‘z /´;×3IÑ3IÓ3KÓLˆÜ"2°<ÐAUÐWaÓ"bˆˆÑð
 €Mô Ø]Ð^dÐekÑ^lÐ]mÐnó
ð 	
rœ   c                ó*  — | j                   | j                  t        | j                  «      xs | j                  dk(  xs d t	        | j
                  «      dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}|xs d | j                  fS c c}}w )NÚ )ÚtitleÚdescriptionÚ
deprecatedÚexamples)r¿   rÀ   ÚboolrÁ   r2   rÂ   ÚitemsÚjson_schema_extra)r—   Újson_schema_updatesÚkÚvs       rš   Ú)_extract_json_schema_info_from_field_inforÉ     s’   € ð —‘Ø×'Ñ'Ü˜4Ÿ?™?Ó+ÒL¨t¯©À"Ñ/DÒLÈÜ& t§}¡}Ó5ñ	Ðð -@×,EÑ,EÔ,GÔYÑ,G¡D A qÈ1É=˜1˜a™4Ð,GÐÑYØÒ' 4¨×)?Ñ)?Ð@Ð@ùó Zs   Á*
BÁ5B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*   rL   rM   r1   Ú$plain_serializer_function_ser_schema)Újson_encodersÚtpr¯   ÚbaseÚencoders        rš   Ú,_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ˆˆÑØŠð Ið €Mrœ   c                ó   — | �| S |S )aB  Return the first argument if it is not None, otherwise return the second argument.

    Use case: serialization_alias (argument a) and alias (argument b) are both defined, and serialization_alias is ''.
    This function will return serialization_alias, which is the first argument, even though it is an empty string.
    © )ÚaÚbs     rš   Ú_get_first_non_nullrÞ   7  s   € ð �ˆ1Ð$ 1Ð$rœ   c                  óÒ  ‡ — e Zd ZdZdZ	 	 dK	 	 	 	 	 	 	 dLd„ZdMˆ fd„ZedNd„«       ZedOd„«       Z	edPd„«       Z
dQd	„ZdRd
„ZdQd„ZdQd„ZdSd„ZdTd„ZdUd„ZdTd„ZdVd„Z	 	 	 	 	 	 dWd„Z G d„ de«      ZdXd„ZdXd„ZdYd„Z	 dZ	 	 	 	 	 d[d„Zd\d„ZdXd„Zd]d„Zd^d„Zd]d„Ze d_d„«       Z!e d`d „«       Z!dadbd!„Z!d]d"„Z"dcd#„Z#ddd$„Z$ddd%„Z%ded&„Z&dd'œ	 	 	 	 	 	 	 	 	 dfd(„Z'	 	 	 	 	 	 	 	 dgd)„Z(	 	 	 	 	 	 	 	 dhd*„Z)e*	 	 	 	 	 	 	 	 did+„«       Z+e*	 	 	 	 	 	 djd,„«       Z,e*	 	 	 	 	 	 	 	 dkd-„«       Z-	 	 	 	 	 	 	 	 dld.„Z.dmd/„Z/dnd0„Z0dod1„Z1dpd2„Z2dqd3„Z3e4jj                  df	 	 	 	 	 	 	 	 	 drd4„Z6dsd5„Z7dtd6„Z8dtd7„Z9dmd8„Z:dud9„Z;dvd:„Z<dwd;„Z=dxd<„Z>dtd=„Z?	 	 	 	 	 	 dyd>„Z@dzd?„ZAd{d@„ZB	 	 	 	 	 	 d|dA„ZCd}dB„ZD	 	 	 	 	 	 d~dC„ZEdD„ f	 	 	 	 	 	 	 ddE„ZFd€dF„ZG	 	 	 	 	 	 d€dG„ZH	 	 	 	 	 	 	 	 d�dH„ZI	 	 	 	 	 	 d‚dI„ZJ	 	 	 	 	 	 dƒdJ„ZKˆ xZLS )„ÚGenerateSchemaz\Generate core schema for a Pydantic model, dataclass and types like `str`, `datetime`, ... .)Ú_config_wrapper_stackÚ_ns_resolverÚ_typevars_mapÚfield_name_stackÚmodel_type_stackÚdefsNc                ó²   — t        |«      | _        |xs
 t        «       | _        || _        t        «       | _        t        «       | _        t        «       | _
        y r©   )rU   rá   rw   râ   rã   Ú_FieldNameStackrä   Ú_ModelTypeStackrå   Ú_Definitionsræ   )ÚselfÚconfig_wrapperÚns_resolverÚtypevars_maps       rš   Ú__init__zGenerateSchema.__init__L  sG   € ô &8¸Ó%GˆÔ"Ø'Ò7¬:«<ˆÔØ)ˆÔÜ /Ó 1ˆÔÜ /Ó 1ˆÔÜ “Nˆ�	rœ   c                óZ   •— t         ‰| �  «        t        j                  dt        d¬«       y )NzeSubclassing `GenerateSchema` is not supported. The API is highly subject to change in minor versions.r9   )Ú
stacklevel)ÚsuperÚ__init_subclass__rÓ   r*   ÚUserWarning)ÚclsrÒ   s    €rš   ró   z GenerateSchema.__init_subclass__Z  s#   ø€ Ü‰Ñ!Ô#Ü�‰ØsÜØö	
rœ   c                ó.   — | j                   j                  S r©   )rá   Útail©rë   s    rš   Ú_config_wrapperzGenerateSchema._config_wrapperb  s   € à×)Ñ)×.Ñ.Ð.rœ   c                ó.   — | j                   j                  S r©   )râ   Útypes_namespacerø   s    rš   Ú_types_namespacezGenerateSchema._types_namespacef  s   € à× Ñ ×0Ñ0Ð0rœ   c                ó.   — | j                   j                  S r©   )rù   Úarbitrary_types_allowedrø   s    rš   Ú_arbitrary_typeszGenerateSchema._arbitrary_typesj  s   € à×#Ñ#×;Ñ;Ð;rœ   c                óJ   — t        j                  | j                  |«      «      S r©   )r1   Úlist_schemaÚgenerate_schema©rë   Ú
items_types     rš   Ú_list_schemazGenerateSchema._list_schemap  s   € Ü×&Ñ& t×';Ñ';¸JÓ'GÓHÐHrœ   c                ój   — t        j                  | j                  |«      | j                  |«      «      S r©   )r1   Údict_schemar  )rë   Ú	keys_typeÚvalues_types      rš   Ú_dict_schemazGenerateSchema._dict_schemas  s,   € Ü×&Ñ& t×';Ñ';¸IÓ'FÈ×H\ÑH\Ð]hÓHiÓjÐjrœ   c                óJ   — t        j                  | j                  |«      «      S r©   )r1   Ú
set_schemar  r  s     rš   Ú_set_schemazGenerateSchema._set_schemav  s   € Ü×%Ñ% d×&:Ñ&:¸:Ó&FÓGÐGrœ   c                óJ   — t        j                  | j                  |«      «      S r©   )r1   Úfrozenset_schemar  r  s     rš   Ú_frozenset_schemaz GenerateSchema._frozenset_schemay  s   € Ü×+Ñ+¨D×,@Ñ,@ÀÓ,LÓMÐMrœ   c           	     óì  ‡‡
‡‡‡— t        ‰j                  j                  «       «      Š
t        ‰«      Š‰j                  sd nt        j                  ‰j                  «      }|dk(  rd }‰j                  |dœŠ‰j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}Šd Št        ‰t        «      rdŠt        j                  d«      }nft        ‰t        «      rdŠt        j                  d«      }n>t        ‰t        «      rdŠt        j                  d«      }nt        j                  d„ «      }‰
rœdˆfd„}t!        ‰j"                  dd «      t$        j"                  j&                  u }t        j(                  ‰‰
‰|rd n‰j"                  ‰d	|gi¬
«      }| j*                  j,                  r!t        j.                  t1        d«      ||¬«      }|S dˆ
ˆˆˆˆfd„}	t        j2                  ‰d	|	gi¬«      S c c}}w )NzAn enumeration.)r¿   rÀ   ÚintÚstrÚfloatc                ó   — | S r©   rÛ   ©Úxs    rš   Ú<lambda>z-GenerateSchema._enum_schema.<locals>.<lambda>•  s   € ÑXYrœ   c                ó\   •—  || «      }|j                  |«      }|j                  ‰«       |S r©   )Úresolve_ref_schemaÚupdate)r¯   ÚhandlerÚjson_schemaÚoriginal_schemaÚ
js_updatess       €rš   Úget_json_schemaz4GenerateSchema._enum_schema.<locals>.get_json_schema™  s0   ø€ Ù% f›o�Ø")×"<Ñ"<¸[Ó"I�Ø×&Ñ& zÔ2Ø"Ð"rœ   Ú__func__Úpydantic_js_functions)Úsub_typeÚmissingÚrefÚmetadataÚvalue)rË   c                óŠ   •—  |t        j                  ‰‰‰‰¬«      «      }|j                  |«      }|j                  ‰«       |S )N)r#  r%  )r1   Úenum_schemar  r  )	Ú_r  r  r  ÚcasesÚenum_refÚ	enum_typer  r#  s	       €€€€€rš   Úget_json_schema_no_casesz=GenerateSchema._enum_schema.<locals>.get_json_schema_no_cases³  sD   ø€ Ù%¤k×&=Ñ&=¸iÈÐYaÐgoÔ&pÓq�Ø")×"<Ñ"<¸[Ó"I�Ø×&Ñ& zÔ2Ø"Ð"rœ   ©r&  )r¯   r+   r  r>   ÚreturnrK   )r  r>   r0  rK   )ÚlistÚ__members__ÚvaluesrZ   Ú__doc__ÚinspectÚcleandocÚ__name__rÄ   Ú
issubclassr  r1   Úsimple_ser_schemar  r  rÔ   rÑ   Ú	_missing_r   r!  r)  rù   Úuse_enum_valuesÚ no_info_after_validator_functionr   Úis_instance_schema)rë   r-  rÀ   rÇ   rÈ   Úvalue_ser_typer   Údefault_missingr)  r.  r+  r,  r  r#  s    `        @@@@rš   Ú_enum_schemazGenerateSchema._enum_schema|  sÒ  ü€ Ü 	× 5Ñ 5× <Ñ <Ó >Ó?ˆä 	Ó*ˆØ"+×"3Ò"3‘d¼×9IÑ9IÈ)×J[ÑJ[Ó9\ˆàÐ,Ò,àˆKØ(×1Ñ1À+ÑNˆ
Ø'1×'7Ñ'7Ô'9ÔKÑ'9™t˜q !¸Q¹]�a˜‘dÐ'9ÒKˆ
à:>ˆÜ�i¤Ô%ØˆHÜ4?×4QÑ4QÐRWÓ4X‰NÜ˜	¤3Ô'àˆHÜ(×:Ñ:¸5ÓA‰NÜ˜	¤5Ô)ØˆHÜ(×:Ñ:¸7ÓC‰Nô )×MÑMÉkÓZˆNáõ#ô & i×&9Ñ&9¸:ÀtÓLÔPT×P^ÑP^×PgÑPgÐgˆOÜ%×1Ñ1ØØØ!Ù /™°Y×5HÑ5HØØ1°OÐ3DÐEôˆKð ×#Ñ#×3Ò3Ü)×JÑJÜ˜wÓ'¨ÀNô�ð Ð÷#ñ #ô ×1Ñ1ØØ1Ð4LÐ3MÐNôð ùós Ls   Â

G0ÂG0c                ó¢  ‡‡— ddl m}m} t        dt        dt
        dt        dt        dt        diŠdˆfd	„}t        j                  t        j                  |‰   «      t        j                  t        j                  ‰t        j                  «       «      t        j                  ‰«      ¬
«      t        j                   |dd¬«      dˆˆfd„gi¬«      S )NrN   )ÚIP_VALIDATOR_LOOKUPÚIpTypeÚipv4Úipv4networkÚipv4interfaceÚipv6Úipv6networkÚipv6interfacec           	     óœ   •— t        | ‰t        f«      st        d‰› dt        | «      › d| › d�«      ‚|j                  dk(  r| S t        | «      S )Nz
Expected `z` but got `z` with value `'z-'` - serialized value may not be as expected.Úpython)Ú
isinstancer  r.   r­   Úmode)Úipr—   rÖ   s     €rš   Úser_ipz)GenerateSchema._ip_schema.<locals>.ser_ipÐ  sW   ø€ Ü˜b 2¤s )Ô,Ü:Ø    K´°R³¨z¸ÈÈÐLyÐzóð ð �y‰y˜HÒ$Ø�	Ü�r“7ˆNrœ   ©r  Úpython_schemaTÚalways)Úinfo_argrÐ   r"  c                ó   •— d‰‰   dœS )NÚstring©r­   ÚformatrÛ   )Ú_1Ú_2Úip_type_json_schema_formatrÖ   s     €€rš   r  z+GenerateSchema._ip_schema.<locals>.<lambda>á  s   ø€ À(ÐVpÐqsÑVtÒ9urœ   ©Ú
lax_schemaÚstrict_schemarË   r&  )rN  r   r—   zcore_schema.SerializationInfor0  zstr | IpType)Ú_validatorsrB  rC  r   r   r   r   r   r   r1   Úlax_or_strict_schemaÚ no_info_plain_validator_functionÚjson_or_python_schemar<  Ú
str_schemar=  rÔ   )rë   rÖ   rB  rC  rO  rZ  s    `   @rš   Ú
_ip_schemazGenerateSchema._ip_schemaÄ  s¶   ù€ ß<ô ˜Ü˜Ü˜?Ü˜Ü˜Ü˜?ð?
Ð"õ	ô ×/Ñ/Ü"×CÑCÐDWÐXZÑD[Ó\Ü%×;Ñ;Ü'×HÑHÈÌ[×McÑMcÓMeÓfÜ)×<Ñ<¸RÓ@ôô &×JÑJÈ6Ð\`ÐltÔuà'Ô*uÐ)vðô

ð 
	
rœ   c           	     ó  — ddl m} t        j                  t        j                  |«      t        j
                  t        j                  |«      t        j                  t        «      ¬«      t        j                  d¬«      dd„ gi¬«      S )	z7Support for [`fractions.Fraction`][fractions.Fraction].rN   )Úfraction_validatorrP  rR  rÏ   r"  c                ó   — dddœS )NrU  ÚfractionrV  rÛ   ©rX  rY  s     rš   r  z1GenerateSchema._fraction_schema.<locals>.<lambda>ó  s
   € ÈÐ\fÒ?grœ   r[  )	r^  re  r1   r_  r`  ra  r=  r	   Úto_string_ser_schema)rë   re  s     rš   Ú_fraction_schemazGenerateSchema._fraction_schemaå  sp   € å3ô ×/Ñ/Ü"×CÑCÐDVÓWÜ%×;Ñ;Ü'×HÑHÐI[Ó\Ü)×<Ñ<¼XÓFôô
 &×:Ñ:ÀXÔNØ-Ñ0gÐ/hÐiô	
ð 		
rœ   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`.)rL  r­   r*   rô   r1   r¸   r=  )rë   rÖ   s     rš   Ú_arbitrary_type_schemaz%GenerateSchema._arbitrary_type_schemaö  sL   € Ü˜"œdÔ#ÜØ�&ð Zð Zô ôô ×)Ñ)Ó+Ð+Ü×-Ñ-¨bÓ1Ð1rœ   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.)rC   ©rë   Úobjs     rš   Ú_unknown_type_schemaz#GenerateSchema._unknown_type_schema  s#   € Ü+Ø:¸3¸'ð Bfð fó
ð 	
rœ   c                óš   — |€|S 	 t        j                  ||«      S # t         j                  $ r t        j                  ||«       |cY S w xY wr©   )rQ   Úapply_discriminatorÚMissingDefinitionForUnionRefÚset_discriminator_in_metadata)rë   r¯   Údiscriminators      rš   Ú_apply_discriminator_to_unionz,GenerateSchema._apply_discriminator_to_union  s_   € ð Ð ØˆMð	Ü'×;Ñ;ØØóð øô $×@Ñ@ò 	ä ×>Ñ>ØØôð ŠMð	ús   † œ+A
Á	A
c                  ó   — e Zd Zy)úGenerateSchema.CollectedInvalidN)r7  Ú
__module__Ú__qualname__rÛ   rœ   rš   ÚCollectedInvalidry    s   „ Ørœ   r|  c                ó´   — | j                  |«      }t        |«      }t        |«      r| j                  «       ‚t	        j
                  |«      }t        |«      }|S r©   )Úcollect_definitionsr]   rW   r|  rQ   Úapply_discriminatorsr^   )rë   r¯   s     rš   Úclean_schemazGenerateSchema.clean_schema"  sR   € Ø×)Ñ)¨&Ó1ˆÜ+¨FÓ3ˆÜ" 6Ô*Ø×'Ñ'Ó)Ð)Ü%×:Ñ:¸6ÓBˆÜ% fÓ-ˆØˆrœ   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æ   Údefinitionsr1   Údefinition_reference_schemaÚdefinitions_schemar1  r3  )rë   r¯   r%  s      rš   r~  z"GenerateSchema.collect_definitions+  s|   € Ü�< §¡¨E°4Ó!8Ó9ˆÙØ)/ˆD�I‰I×!Ñ! #Ñ&Ø�F‰?Ü ×<Ñ<¸VÀE¹]ÓKˆFÜ×-Ñ-ØÜ�—‘×&Ñ&×-Ñ-Ó/Ó0ó
ð 	
rœ   c                ó€   — |j                  di «      }|j                  dg «      }||vr|j                  |«       ||d<   y )Nr&  r"  )r¶   Ú
setdefaultÚappend)rë   Úmetadata_schemaÚjs_functionr&  r"  s        rš   Ú_add_js_functionzGenerateSchema._add_js_function6  sK   € Ø"×&Ñ& z°2Ó6ˆØ (× 3Ñ 3Ð4KÈRÓ PÐð
 Ð3Ñ3Ø!×(Ñ(¨Ô5Ø&.ˆ˜
Ò#rœ   Tc                ó&  — d}|r| j                  ||«      }|�|}|€| j                  |«      }t        ||«      }|�4t        || j                  j
                  «      }|r| j                  ||«       t        | 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 disallowed type (must be str, AliasPath or AliasChoices).
                - 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_innerÚ!_extract_get_pydantic_json_schemaÚresolve_original_schemaræ   rƒ  r‹  rÙ   rù   rÕ   )rë   rp  Úfrom_dunder_get_core_schemar¯   Úfrom_propertyÚmetadata_js_functionr‰  s          rš   r  zGenerateSchema.generate_schemaA  sœ   € ð6 %)ˆá&Ø ×?Ñ?ÀÀSÓIˆMØÐ(Ø&�àˆ>Ø×0Ñ0°Ó5ˆFä@ÀÀfÓMÐØÐ+Ü5°f¸d¿i¹i×>SÑ>SÓTˆOÙØ×%Ñ% oÐ7KÔLä=¸d×>RÑ>R×>`Ñ>`ÐbeÐgmÓnˆàˆrœ   c                ó„	  — | j                   j                  |«      5 \  }}|�|cddd«       S t        |di «      }|j                  }|j                  }t        t        |j                  j                  «       |j                  j                  «       |j                  j                  «       «      h |j                  «       £|j                  «       £«       t        |j                  d¬«      }|j                  |j                  ¬«      }|j                   j                  «       }	| j"                  j%                  |«      5  | j&                  j%                  |«      5  d}
|j)                  d«      dk(  �r|j*                  d   |u sJ ‚|j*                  d	   t,        u sJ ‚|j*                  dd	 D ]Ê  }t        |d
i «      j)                  dd«      }|€Œ#t/        |t0        «      r6t3        j4                  t3        j6                  |dd¬«      g| j8                  ¢­Ž }t;        |«      }|t<        t>        fvrtA        d«      ‚| jC                  |d¬«      d   }t3        jD                  |«      rŒ¹| jG                  |«      }
 n t        |di «      j)                  d«      }|jH                  r]| jK                  d|d   |«      }|d   }tM        ||	d«      }tO        jP                  |||t        |dd«      dt        |dd«      ||¬«      }�n	tO        jR                  |jU                  «       D ��ci c]  \  }}|| jW                  |||«      “Œ c}}|j                  «       D �cg c]  }| jY                  ||j                  «      ‘Œ  c}|
|j                  ¬«      }t[        ||j\                  j                  «       d«      }t_        |ta        «       «      }|�|}tM        ||	d«      }tO        jP                  |||t        |dd«      dt        |dd«      ||¬«      }| jc                  ||jd                  j                  «       «      }tM        ||	d«      }|| j                   jf                  |<   tO        jh                  |«      cddd«       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«       n# 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.NÚ__pydantic_fields__F)Úcheck©r¿   Úextra_fields_behaviorÚallowr   rÍ   Ú__annotations__Ú__pydantic_extra__T)Úis_argumentÚis_classzEThe type annotation for `__pydantic_extra__` must be `Dict[str, ...]`©ÚrequiredrN   Ú__pydantic_generic_metadata__ÚoriginÚrootr¯   ÚinnerÚ__pydantic_custom_init__Ú__pydantic_post_init__)Úgeneric_originÚcustom_initÚ
root_modelÚ	post_initÚconfigr%  )Úcomputed_fieldsÚextras_schemaÚ
model_nameÚouter)5ræ   Úget_schema_or_refrÑ   Ú__pydantic_decorators__r«  r§   r   Úfield_validatorsr3  Úfield_serializersÚ
validatorsÚkeysrT   Úmodel_configÚcore_configr7  Úmodel_validatorsrá   Úpushrâ   r¶   rÌ   ÚobjectrL  r  rS   Úeval_type_backportÚ_make_forward_refrü   r7   r   r³   rC   Ú _get_args_resolving_forward_refsÚis_anyr  Ú__pydantic_root_model__Ú_common_field_schemaÚapply_model_validatorsr1   Úmodel_schemaÚmodel_fields_schemarÄ   Ú_generate_md_field_schemaÚ_computed_field_schemar·   Úroot_validatorsrX   rq   Ú_apply_model_serializersÚmodel_serializersrƒ  r„  )rë   rõ   Ú	model_refÚmaybe_schemar–   r¥   r«  rì   r¶  r·  r¬  Úcandidate_clsÚextras_annotationrÖ   Úextra_items_typer¦  Ú
root_fieldr¼   rÁ  rÇ   rÈ   ÚdÚfields_schemaÚnew_inner_schemar¯   s                            rš   Ú_model_schemazGenerateSchema._model_schemap  s£  € à�Y‰Y×(Ñ(¨Ô-Ñ1J°)¸\ØÐ'Ø#÷ .Ñ-ô ˜SÐ"7¸Ó<ˆ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¸3¿<¹<Ð4ÓHˆKØ)×:Ñ:×AÑAÓCÐà×+Ñ+×0Ñ0°Õ@À$×BSÑBS×BXÑBXÐY\ÕB]Ø $�Ø—?‘?Ð#:Ó;¸wÓFØŸ;™; q™>¨SÑ0Ð0Ð0ØŸ;™; r™?¬fÑ4Ð4Ð4Ø),¯©°S°bÓ)9˜Ü,3°MÐCTÐVXÓ,Y×,]Ñ,]Ø0°$ó-Ð)ð -Ñ8Ü)Ð*;¼SÔAÜ4A×4TÑ4TÜ$1×$CÑ$CØ(9ÀuÐW[ô%&ð5"ð &*×%:Ñ%:ò	5"Ð 1ô ",Ð,=Ó!>˜BØ!¬$´¨Ñ5Ü&CØ$kó'"ð !"ð 04×/TÑ/TØ 1Ø)-ð 0Uó 0ð  ñ0!Ð,ô $1×#7Ñ#7Ð8HÕ#IØ04×0DÑ0DÐEUÓ0V Ù %ð/ *:ô2 :AÀÐFeÐgiÓ9j×9nÑ9nÐowÓ9x�à×.Ò.Ø!%×!:Ñ!:¸6À6È&Á>ÐS]Ó!^�JØ#-¨hÑ#7�LÜ#9¸,ÐHXÐZaÓ#b�LÜ#.×#;Ñ#;ØØ$Ø'5Ü$+¨CÐ1KÈTÓ$RØ#'Ü")¨#Ð/GÈÓ"NØ*Ø%ô	$’Lô =H×<[Ñ<[ØY_×YeÑYeÔYgÔhÑYgÑQUÐQRÐTU˜˜D×:Ñ:¸1¸aÀÓLÑLÐYgÒ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ä#.×#;Ñ#;ØØ$Ø'5Ü$+¨CÐ1KÈTÓ$RØ#(Ü")¨#Ð/GÈÓ"NØ*Ø%ô	$�Lð ×6Ñ6°|ÀZ×EaÑEa×EhÑEhÓEjÓk�Ü/°Ð8HÈ'ÓR�Ø39�—	‘	×%Ñ% iÑ0Ü"×>Ñ>¸yÓI÷Y C^ÐB]×@Ð@÷' .Ñ-ùóF iùò)÷c C^ÐB]ú×@×@Ñ@ú÷' .×-Ñ-úsu   œR6­DR6Ä9R!ÅA3RÇ	BRÉB;RÌRÌ8RÍ#RÍ0C5RÑ%	R!Ñ.	R6ÒRÒRÒR!Ò	R6Ò!R*	Ò&R6Ò6R?c                óp   — |d   dk(  r-| j                   j                  }|d   D ]
  }|||d   <   Œ |d   S |S )zuUnpack all 'definitions' schemas into `GenerateSchema.defs.definitions`
        and return the inner schema.
        r­   rƒ  r%  r¯   )ræ   rƒ  )rë   r¯   rƒ  Úss       rš   Ú_unpack_refs_defsz GenerateSchema._unpack_refs_defsÓ  sL   € ð �&‰>˜]Ò*ØŸ)™)×/Ñ/ˆKØ˜MÔ*�Ø()�˜A˜e™HÒ%ð +à˜(Ñ#Ð#Øˆrœ   c                óX   — | j                   j                  «       }|€t        dd¬«      ‚|S )Nz(`typing.Self` is invalid in this contextzinvalid-self-typerŸ   )rå   r¶   rE   ro  s     rš   Ú_resolve_self_typez!GenerateSchema._resolve_self_typeÞ  s/   € Ø×#Ñ#×'Ñ'Ó)ˆØˆ;Ü#Ð$NÐUhÔiÐiØˆ
rœ   c                óÊ  — t        j                  |«      r| j                  |«      }| j                  j	                  |«      5 \  }}|�|cddd«       S 	 ddd«       ||u rd}nd}t        |dd«      x}�  ||t        | j                  | |¬«      «      }nÉt        |d«      r0|j                  j                  d«      x}�t        |t        «      s|}n�t        |dd«      x}	�}d	d
lm}
 t        ||
«      rt!        d|j"                  › d�t$        «       nt!        dt&        «       t)        j*                   |	«       D �cg c]  }t)        j,                  |«      ‘Œ c}«      }ny| j/                  |«      }t1        |«      r|d   j3                  dd«      }|r||d<   nt5        |«      }|r.|| j                  j6                  |<   t)        j8                  |«      S |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__)Úref_modeÚ__dict__Ú__pydantic_core_schema__Ú__get_validators__r   r}   zeMixing V1 models and V2 models (or constructs, like `TypeAdapter`) is not supported. Please upgrade `z` to V2.zc`__get_validators__` is deprecated and will be removed, use `__get_pydantic_core_schema__` instead.r¯   r%  )rS   Úis_selfrÖ  ræ   r¯  rÑ   rx   rŽ  ÚhasattrrÛ  r¶   rL  ru   Úpydantic.v1r~   r8  r*   r7  rô   rM   r1   Úchain_schemaÚ"with_info_plain_validator_functionrÔ  r[   ÚpoprY   rƒ  r„  )rë   rp  Úsourcer*  rÉ  rÚ  Ú
get_schemar¯   Úexisting_schemar³  ÚBaseModelV1rÈ   r%  s                rš   r�  z-GenerateSchema._generate_schema_from_propertyä  sö  € ô × Ñ  Ô%Ø×)Ñ)¨#Ó.ˆCØ�Y‰Y×(Ñ(¨Ô-Ñ1B°!°\ØÐ'Ø#÷ .Ñ-Ø'÷ .ð �&‰=Ø‰HàˆHô " #Ð'EÀtÓLÐLˆJÐYÙØÔ4°T×5PÑ5PÐRVÐaiÔjó‰Fô �C˜Ô$ð %(§L¡L×$4Ñ$4Ð5OÓ$PÐP�Ð]Ü˜´Ô?à$‰FÜ# CÐ)=¸tÓDÐDˆjÐQÝ<ä˜#˜{Ô+ÜØ{Ð|÷  }Iñ  }Ið  |Jð  JRð  SÜõô
 ØyÜ-ôô !×-Ñ-ÑjtÔjvÓ.wÑjvÐef¬{×/]Ñ/]Ð^_Õ/`ÐjvÑ.wÓx‰Fð à×'Ñ'¨Ó/ˆä(¨Ô0Ø˜Ñ"×&Ñ& u¨dÓ3ˆCÙØ #��u’ä˜&“/ˆCáØ)/ˆD�I‰I×!Ñ! #Ñ&Ü×:Ñ:¸3Ó?Ð?àˆ÷m .Ñ-üòH /xs   ÁGÄ8G ÇGc                ó,  — 	 t        j                  |g| j                  ¢­Ž }t        |t        «      rt	        |j                  d|› �«      ‚| j                  rt        || j                  «      }|S # t        $ r}t	        j
                  |«      |‚d }~ww xY w)Nz%Unable to evaluate forward reference )rS   rº  rü   Ú	NameErrorrD   Úfrom_name_errorrL  r    Ú__forward_arg__rã   rr   )rë   rp  Úes      rš   Ú_resolve_forward_refz#GenerateSchema._resolve_forward_ref&  s“   € ð	HÜ×2Ñ2°3ÐO¸×9NÑ9NÒOˆCô
 �cœ:Ô&Ü-¨c×.AÑ.AÐEjÐknÐjoÐCpÓqÐqà×ÒÜ  T×%7Ñ%7Ó8ˆCàˆ
øô ò 	HÜ-×=Ñ=¸aÓ@ÀaÐGûð	Hús   ‚ A/ Á/	BÁ8BÂBc                 ó   — y r©   rÛ   )rë   rp  rŸ  s      rš   r¼  z/GenerateSchema._get_args_resolving_forward_refs<  s   € Øfirœ   c                 ó   — y r©   rÛ   ro  s     rš   r¼  z/GenerateSchema._get_args_resolving_forward_refs?  s   € ØTWrœ   c                óÌ   ‡ — t        |«      }|rDt        j                  dk\  rddlm} t        ||«      r	d„ |D «       }t        ˆ fd„|D «       «      }|S |rt        d|› d�«      ‚|S )N©r‚   é	   r   )ÚGenericAliasc              3  ój   K  — | ]+  }t        |t        «      rt        j                  |«      n|–— Œ- y ­wr©   )rL  r  rS   r»  )Ú.0rÜ   s     rš   Ú	<genexpr>zBGenerateSchema._get_args_resolving_forward_refs.<locals>.<genexpr>J  s/   è ø€ ÐjÑeiÐ`aÄ*ÈQÔPSÔBTœM×;Ñ;¸AÔ>ÐZ[Ó[Ñeiùs   ‚13c              3  ód   •K  — | ]'  }t        |t        «      r‰j                  |«      n|–— Œ) y ­wr©   )rL  r    rí  )rõ  rÜ   rë   s     €rš   rö  zBGenerateSchema._get_args_resolving_forward_refs.<locals>.<genexpr>K  s/   øè ø€ ÐhÑcgÐ^_¼ÀAÄzÔ9R˜×2Ñ2°1Ô5ÐXYÓYÑcgùs   ƒ-0z	Expected z+ to have generic parameters but it had none)r6   ÚsysÚversion_infoÚtypesró  rL  r°   r¹   )rë   rp  rŸ  Úargsró  s   `    rš   r¼  z/GenerateSchema._get_args_resolving_forward_refsB  sl   ø€ Ü˜‹}ˆÙÜ×Ñ 6Ò)Ý.ä˜c <Ô0ájÑeiÓj�DÜÓhÑcgÓhÓhˆDð ˆñ Ü˜i¨ uÐ,WÐXÓYÐYØˆrœ   c                ó>   — | j                  |«      }|st        S |d   S )Nr   )r¼  r   )rë   rp  rû  s      rš   Ú_get_first_arg_or_anyz$GenerateSchema._get_first_arg_or_anyP  s#   € Ø×4Ñ4°SÓ9ˆÙÜˆJØ�A‰wˆrœ   c                ó¤   — | j                  |«      }|st        t        fS t        |«      dk  rt        |«      }t	        d|› d�«      ‚|d   |d   fS )Nr9   z Expected two type arguments for z, got 1r   rN   )r¼  r   Úlenr7   r¹   )rë   rp  rû  r¡  s       rš   Ú_get_first_two_args_or_anyz)GenerateSchema._get_first_two_args_or_anyV  s[   € Ø×4Ñ4°SÓ9ˆÙÜœ�:ÐÜˆt‹9�qŠ=Ü “_ˆFÜÐ>¸v¸hÀgÐNÓOÐOØ�A‰w˜˜Q™ÐÐrœ   c                ó:  — t        j                  |«      r| j                  |«      S t        |t        «      r|S t        |t
        «      rt        |«      }t        |t        «      r | j                  | j                  |«      «      S t        «       }t        ||«      r6| j                  j                  |«      5  | j                  |«      cd d d «       S t        |t        «      r t        j                   |j"                  ¬«      S | j%                  |«      S # 1 sw Y   ŒJxY w)N)Ú
schema_ref)rS   Úis_annotatedÚ_annotated_schemarL  r³   r  r    r  rí  rs   ry   rå   r¸  rÑ  rn   r1   r„  Útype_refÚ
match_type)rë   rp  r~   s      rš   rŽ  z%GenerateSchema._generate_schema_inner_  sß   € Ü×%Ñ% cÔ*Ø×)Ñ)¨#Ó.Ð.ä�cœ4Ô àˆJä�cœ3ÔÜ˜S“/ˆCä�cœ:Ô&Ø×'Ñ'¨×(AÑ(AÀ#Ó(FÓGÐGä,Ó.ˆ	ä˜c 9Ô-Ø×&Ñ&×+Ñ+¨CÕ0Ø×)Ñ)¨#Ó.÷ 1Ñ0ô �cÔ/Ô0Ü×:Ñ:ÀcÇlÁlÔSÐSà�‰˜sÓ#Ð#÷ 1Ð0ús   Â5DÄDc                ó”  — |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 rt        j                  «       S |t        u rt        j                  «       S t        j                  |«      s|t        u rt        j                   «       S |t"        j$                  u rt        j&                  «       S |t"        j"                  u rt        j(                  «       S |t"        j*                  u rt        j,                  «       S |t"        j.                  u rt        j0                  «       S |t2        u rt        j4                  «       S |t6        u rt        j8                  «       S |t:        u rt        j<                  «       S |t>        u r| jA                  «       S |tB        u rt        jD                  «       S |�|t        jF                  u rt        jH                  «       S |tJ        v r| jM                  |«      S |tN        v r| jQ                  |«      S |tR        v r| jU                  tV        «      S |tX        v r| j[                  tV        «      S |t\        v r| j_                  tV        «      S |t`        v r| jc                  tV        «      S |td        v r| jg                  tV        tV        «      S t        jh                  |«      r| jk                  |«      S |tl        u r| jo                  «       S t        jp                  |«      rt        jr                  «       S t        jt                  |«      r| jw                  |«      S ty        |«      r| j{                  |d«      S t        j|                  |«      r| j                  |d«      S t        j€                  |«      r| jƒ                  |j„                  «      S |t†        jˆ                  u r| j‹                  |«      S t        jŒ                  |«      r| j�                  «       S t‘        |t’        j”                  «      r| j—                  |«      S t        j˜                  |«      r<|tš        u rt        j                   «       S | jƒ                  | j�                  |«      «      S t‘        |tž        «      r| j¡                  |«      S t£        j¤                  |«      r!t§        |t¨        «      r| j«                  |«      S t        j¬                  |«      r| j¯                  «       S t±        j²                  |«      r| jµ                  |d«      S t·        |«      }|�| j¹                  ||«      S | j»                  |d«      }|�|\  }}| 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.
        NrÛ   )br  r1   rb  ÚbytesÚbytes_schemar  Ú
int_schemar  Úfloat_schemarÃ   Úbool_schemaÚcomplexÚcomplex_schemarS   r½  r¹  r¸   ÚdatetimeÚdateÚdate_schemaÚdatetime_schemaÚtimeÚtime_schemaÚ	timedeltaÚtimedelta_schemar   Údecimal_schemar)   Úuuid_schemar0   Ú
url_schemar	   rj  r,   Úmulti_host_url_schemaÚNoneTypeÚnone_schemar‹   rc  r†   Ú_tuple_schemar‡   r  r   rˆ   r  r‰   r  rŒ   Ú_sequence_schemarŠ   r
  Úis_type_alias_typeÚ_type_alias_type_schemar­   Ú_type_schemaÚis_callableÚcallable_schemaÚ
is_literalÚ_literal_schemar8   Ú_typed_dict_schemaÚis_namedtupleÚ_namedtuple_schemaÚis_new_typer  Ú__supertype__ÚreÚPatternÚ_pattern_schemaÚis_hashableÚ_hashable_schemarL  Útypingr%   Ú_unsubstituted_typevar_schemaÚis_finalvarr   rý  ÚVALIDATE_CALL_SUPPORTED_TYPESÚ_call_schemar5  Úisclassr8  r   r@  Úis_zoneinfo_typeÚ_zoneinfo_schemaÚdataclassesÚis_dataclassÚ_dataclass_schemar7   Ú_match_generic_typeÚ0_get_prepare_pydantic_annotations_for_known_typeÚ_apply_annotationsrÿ   rl  rq  )rë   rp  r¡  ÚresÚsource_typer   s         rš   r  zGenerateSchema.match_typex  sÍ  € ð ”#‰:Ü×)Ñ)Ó+Ð+Ø”E‰\Ü×+Ñ+Ó-Ð-Ø”C‰ZÜ×)Ñ)Ó+Ð+Ø”E‰\Ü×+Ñ+Ó-Ð-Ø”D‰[Ü×*Ñ*Ó,Ð,Ø”G‰^Ü×-Ñ-Ó/Ð/Ü×!Ñ! #Ô&¨#´©-Ü×)Ñ)Ó+Ð+Ø”H—M‘MÑ!Ü×*Ñ*Ó,Ð,Ø”H×%Ñ%Ñ%Ü×.Ñ.Ó0Ð0Ø”H—M‘MÑ!Ü×*Ñ*Ó,Ð,Ø”H×&Ñ&Ñ&Ü×/Ñ/Ó1Ð1Ø”G‰^Ü×-Ñ-Ó/Ð/Ø”D‰[Ü×*Ñ*Ó,Ð,Ø”C‰ZÜ×)Ñ)Ó+Ð+Ø”H‰_Ø×(Ñ(Ó*Ð*Ø”LÑ Ü×4Ñ4Ó6Ð6Øˆ[˜C¤=×#9Ñ#9Ñ9Ü×*Ñ*Ó,Ð,Ø”H‰_Ø—?‘? 3Ó'Ð'Ø”KÑØ×%Ñ% cÓ*Ð*Ø”JÑØ×$Ñ$¤SÓ)Ð)Ø”IÑØ×#Ñ#¤CÓ(Ð(ØÔ$Ñ$Ø×)Ñ)¬#Ó.Ð.Ø”NÑ"Ø×(Ñ(¬Ó-Ð-Ø”JÑØ×$Ñ$¤S¬#Ó.Ð.Ü×-Ñ-¨cÔ2Ø×/Ñ/°Ó4Ð4Ø”D‰[Ø×$Ñ$Ó&Ð&Ü×&Ñ& sÔ+Ü×.Ñ.Ó0Ð0Ü×%Ñ% cÔ*Ø×'Ñ'¨Ó,Ð,Ü˜#ÔØ×*Ñ*¨3°Ó5Ð5Ü×(Ñ(¨Ô-Ø×*Ñ*¨3°Ó5Ð5Ü×&Ñ& sÔ+à×'Ñ'¨×(9Ñ(9Ó:Ð:Ø”B—J‘JÑØ×'Ñ'¨Ó,Ð,Ü×&Ñ& sÔ+Ø×(Ñ(Ó*Ð*Ü˜œVŸ^™^Ô,Ø×5Ñ5°cÓ:Ð:Ü×&Ñ& sÔ+Ø”e‰|Ü"×-Ñ-Ó/Ð/Ø×'Ñ'Ø×*Ñ*¨3Ó/óð ô ˜Ô:Ô;Ø×$Ñ$ SÓ)Ð)Ü�_‰_˜SÔ!¤j°´dÔ&;Ø×$Ñ$ SÓ)Ð)Ü×+Ñ+¨CÔ0Ø×(Ñ(Ó*Ð*ä×#Ñ# CÔ(Ø×)Ñ)¨#¨tÓ4Ð4ä˜C“ˆØÐØ×+Ñ+¨C°Ó8Ð8à×CÑCÀCÈÓLˆØˆ?Ø'*Ñ$ˆK˜Ø×*Ñ*¨;¸ÓDÐDà× Ò Ø×.Ñ.¨sÓ3Ð3Ø×(Ñ(¨Ó-Ð-rœ   c                óŽ  — t        j                  |«      r| j                  ||«      S t        j                  |«      r| j                  ||«      S | j                  ||«      }|�|S t        j                  |«      r| 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*                  | j-                  |«      Ž S t/        |«      r| j1                  ||«      S |t2        j4                  t6        fv r| j9                  |«      S |t:        v r | j=                  | j                  |«      «      S |t2        j>                  t@        jB                  j>                  t2        jD                  t@        jB                  jD                  hv r| jG                  |«      S |tH        jJ                  t2        jJ                  fv r| jM                  |«      S | jO                  |d«      }|�|\  }}| jQ                  ||«      S | jR                  r| jU                  |«      S | jW                  |«      S )NrÛ   ),r8  r9  r:  rS   r'  r(  r�  r  r   Úorigin_is_unionÚ_union_schemar†   r  r‡   r  rý  rˆ   r  r‰   r  rŠ   r
  r   r8   r&  r0  r$   r­   Ú_subclass_schemarŒ   r  r!   ÚcollectionsÚabcÚ	GeneratorÚ_iterable_schemar+  r,  r-  r<  r=  rÿ   rl  rq  )rë   rp  r¡  r’  r>  r?  r   s          rš   r;  z"GenerateSchema._match_generic_typeç  sw  € ô
 ×#Ñ# FÔ+Ø×)Ñ)¨#¨vÓ6Ð6Ü×&Ñ& vÔ.Ø×*Ñ*¨3°Ó7Ð7à×;Ñ;¸FÀCÓHˆØÐ$Ø Ð ä×+Ñ+¨FÔ3Ø×/Ñ/°Ó4Ð4Ü×*Ñ*¨6Ô2Ø×%Ñ% cÓ*Ð*Ø”{Ñ"Ø×%Ñ% cÓ*Ð*Ø”zÑ!Ø×$Ñ$ T×%?Ñ%?ÀÓ%DÓEÐEØ”yÑ Ø×#Ñ# D×$>Ñ$>¸sÓ$CÓDÐDØÔ'Ñ'Ø×)Ñ)¨$×*DÑ*DÀSÓ*IÓJÐJØ”zÑ!Ø$�4×$Ñ$ d×&EÑ&EÀcÓ&JÐKÐKÜ˜&Ô!Ø×*Ñ*¨3°Ó7Ð7ØœŸ™¤TÐ*Ñ*Ø×(Ñ(¨Ó-Ð-Ø”~Ñ%Ø×(Ñ(¨×)CÑ)CÀCÓ)HÓIÐIØœŸ™¬¯©×)AÑ)AÄ6×CSÑCSÔU`×UdÑUd×UnÑUnÐoÑoØ×(Ñ(¨Ó-Ð-ØœŸ
™
¤F§N¡NÐ3Ñ3Ø×'Ñ'¨Ó,Ð,à×CÑCÀCÈÓLˆØˆ?Ø'*Ñ$ˆK˜Ø×*Ñ*¨;¸ÓDÐDà× Ò Ø×.Ñ.¨vÓ6Ð6Ø×(Ñ(¨Ó-Ð-rœ   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Ÿ  rI  rJ  rK  r&  )r¿  r1   Útyped_dict_fieldÚis_required)rë   ÚnameÚ
field_infor¥   rŸ  Úcommon_fields         rš   Ú_generate_td_field_schemaz(GenerateSchema._generate_td_field_schema  sf   € ð ×0Ñ0°°zÀ:ÓNˆÜ×+Ñ+Ø˜Ñ"Ø",×"8Ñ"8Ô":‘UÀØ".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ! *Ñ-ô
ð 	
rœ   c           	     ó‚   — | j                  |||«      }t        j                  |d   |d   |d   |d   |d   |d   ¬«      S )z0Prepare a ModelField to represent a model field.r¯   rI  rJ  rK  Úfrozenr&  ©rI  rJ  rK  rS  r&  )r¿  r1   Úmodel_field©rë   rN  rO  r¥   rP  s        rš   rÃ  z(GenerateSchema._generate_md_field_schema*  s^   € ð ×0Ñ0°°zÀ:ÓNˆÜ×&Ñ&Ø˜Ñ"Ø".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ Ñ)Ø! *Ñ-ô
ð 	
rœ   c                óÖ   — | j                  |||«      }t        j                  ||d   |j                  |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¯   NFrI  rJ  rK  rS  r&  )ÚinitÚ	init_onlyÚkw_onlyrI  rJ  rK  rS  r&  )r¿  r1   Údataclass_fieldrX  Úinit_varrZ  rV  s        rš   Ú_generate_dc_field_schemaz(GenerateSchema._generate_dc_field_schema;  sƒ   € ð ×0Ñ0°°zÀ:ÓNˆÜ×*Ñ*ØØ˜Ñ"Ø—‘Ø ×)Ñ)Ò1¨TØ&×.Ò.‘D°EØ".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ Ñ)Ø! *Ñ-ô
ð 	
rœ   c                ó´  — |j                   �4|j                   dk  s%|j                  �|j                  �|j                  �€d\  }}}t	        | t
        «      r| j                  |«      \  }}}nCt	        | t        «      r3 | |«      }t	        |t        «      st        d| › d|j                  › �«      ‚|j                   �|j                   dk  rd|_         |j                   dk(  r)t        ||«      |_        t        ||«      |_        ||_        |j                  €||_        |j                  €t        ||«      |_        |j                  €t        ||«      |_        yyy)a„  Apply an alias_generator to aliases on a FieldInfo instance if appropriate.

        Args:
            alias_generator: A callable that takes a string and returns a string, or an AliasGenerator instance.
            field_info: The FieldInfo instance to which the alias_generator is (maybe) applied.
            field_name: The name of the field from which to generate the alias.
        NrN   ©NNNúalias_generator ú must return str, not )Úalias_priorityÚaliasrJ  rK  rL  r;   Úgenerate_aliasesr   r  r¹   rÒ   rÞ   )Úalias_generatorrO  r»   rc  rJ  rK  s         rš   Ú$_apply_alias_generator_to_field_infoz3GenerateSchema._apply_alias_generator_to_field_infoP  sm  € ð ×%Ñ%Ð-Ø×(Ñ(¨AÒ-Ø×ÑÐ'Ø×*Ñ*Ð2Ø×-Ñ-Ñ5à;KÑ8ˆEÐ#Ð%8ä˜/¬>Ô:Ø?N×?_Ñ?_Ð`jÓ?kÑ<�Ð'Ñ)<Ü˜O¬XÔ6Ù'¨
Ó3�Ü! %¬Ô-Ü#Ð&6°Ð6GÐG]Ð^c×^mÑ^mÐ]nÐ$oÓpÐpð
 ×(Ñ(Ð0°J×4MÑ4MÐQRÒ4RØ,-�
Ô)ð ×(Ñ(¨AÒ-Ü1DÐEXÐZ_Ó1`�
Ô.Ü.AÐBRÐTYÓ.Z�
Ô+Ø#(�
Ô ð ×ÑÐ'Ø#(�
Ô Ø×-Ñ-Ð5Ü1DÐEXÐZ_Ó1`�
Ô.Ø×*Ñ*Ð2Ü.AÐBRÐTYÓ.Z�
Õ+ð 3ð9 6rœ   c                ó¸  — |j                   �|j                   dk  s|j                  €³d\  }}}t        | t        «      r| j	                  |«      \  }}}nCt        | t
        «      r3 | |«      }t        |t        «      st        d| › d|j                  › �«      ‚|j                   �|j                   dk  rd|_         |j                   dk(  rt        ||«      |_        yyy)a­  Apply an alias_generator to alias on a ComputedFieldInfo instance if appropriate.

        Args:
            alias_generator: A callable that takes a string and returns a string, or an AliasGenerator instance.
            computed_field_info: The ComputedFieldInfo instance to which the alias_generator is (maybe) applied.
            computed_field_name: The name of the computed field from which to generate the alias.
        NrN   r_  r`  ra  )
rb  rc  rL  r;   rd  r   r  r¹   rÒ   rÞ   )re  Úcomputed_field_infoÚcomputed_field_namerc  rJ  rK  s         rš   Ú-_apply_alias_generator_to_computed_field_infoz<GenerateSchema._apply_alias_generator_to_computed_field_info‚  sð   € ð$  ×.Ñ.Ð6Ø"×1Ñ1°QÒ6Ø"×(Ñ(Ð0à;KÑ8ˆEÐ#Ð%8ä˜/¬>Ô:Ø?N×?_Ñ?_Ð`sÓ?tÑ<�Ð'Ñ)<Ü˜O¬XÔ6Ù'Ð(;Ó<�Ü! %¬Ô-Ü#Ð&6°Ð6GÐG]Ð^c×^mÑ^mÐ]nÐ$oÓpÐpð
 #×1Ñ1Ð9Ð=P×=_Ñ=_ÐcdÒ=dØ56Ð#Ô2ð
 #×1Ñ1°QÒ6Ü,?Ð@SÐUZÓ,[Ð#Õ)ð 7ð) 1rœ   c                óÎ   — |j                   xs | j                   }|€y|j                  €< |||«      }t        |t        «      st	        d|› d|j
                  › �«      ‚||_        yy)ae  Apply a field_title_generator on a FieldInfo or ComputedFieldInfo instance if appropriate
        Args:
            config_wrapper: The config of the model
            field_info: The FieldInfo or ComputedField instance to which the title_generator is (maybe) applied.
            field_name: The name of the field from which to generate the title.
        Nzfield_title_generator ra  )Úfield_title_generatorr¿   rL  r  r¹   rÒ   )rì   rO  r»   rl  r¿   s        rš   Ú*_apply_field_title_generator_to_field_infoz9GenerateSchema._apply_field_title_generator_to_field_info­  sw   € ð !+× @Ñ @Ò hÀN×DhÑDhÐà Ð(Øà×ÑÐ#Ù)¨*°jÓAˆEÜ˜e¤SÔ)ÜÐ"8Ð9NÐ8OÐOeÐfk×fuÑfuÐevÐ wÓxÐxà$ˆJÕð $rœ   c                ó¸  ‡ ‡— t        «       }‰j                  sç	 t        j                  ‰j                  g‰ j
                  ¢­Ž }t        |‰ j                  «      }d‰_        t        |t        «      s� |j                  |«      }|j                  ‰_        |j                  j                  «       D ]0  \  }}	|‰j                  vsŒ|‰j                   vsŒ$t#        ‰||	«       Œ2 g |j$                  ¢‰j$                  ¢‰_        ‰j                  ‰j$                  }}
dˆˆ fd„}g }t'        |j(                  j+                  «       |«      D ]=  }|j-                  t.        |j0                  j2                     j5                  |«      «       Œ? ‰ j6                  j9                  |«      5  ‰j:                  �‰ j=                  |
||z   |¬«      }n‰ j=                  |
||z   «      }d d d «       t'        |j>                  j+                  «       |«      }tA        |«      rd‰_!        |D �	cg c]  }	|	j0                  jD                  du sŒ|	‘Œ }}	|D �	cg c]	  }	|	|vsŒ|	‘Œ }}	tG        ||«      }tI        |||«      }‰jK                  «       stM        ‰|«      }‰ jO                  |t'        |jP                  j+                  «       |«      «      }‰ jS                  ‰ jT                  ‰|«       tW        ‰«      \  }}i }tY        |||¬«       ‰ jT                  jZ                  }|�‰ j]                  |‰|«       t_        ‰j`                  tb        td        f«      r‰j`                  jg                  «       }n‰j`                  }ti        |‰jj                  rdnd |‰jl                  ‰jn                  |¬«      S # t        $ r}t        j                  |«      |‚d }~ww xY w# 1 sw Y   �ŒíxY wc c}	w c c}	w )NTc                ó@   •— ‰j                  | ‰j                  «      } | S r©   )rw  rv  )r¯   rO  rë   s    €€rš   Úset_discriminatorz>GenerateSchema._common_field_schema.<locals>.set_discriminatorâ  s    ø€ Ø×7Ñ7¸À
×@XÑ@XÓYˆFØˆMrœ   )Útransform_inner_schema©Úpydantic_js_updatesÚpydantic_js_extrarT  ©r¯   r+   r0  r+   )8rt   Ú	evaluatedrS   Ú	eval_typeÚ
annotationrü   ré  rD   rê  rr   rã   rp   rn   Úfrom_annotationÚ_attributes_setrÄ   Úmetadata_lookupÚsetattrr&  r«   r±  r3  rˆ  r“   r—   rM  Ú_from_decoratorrä   r¸  rv  r=  r³  Ú$_validators_require_validate_defaultÚvalidate_defaultÚ	each_itemrµ   r·   rM  Úwrap_defaultÚ_apply_field_serializersr²  rm  rù   rÉ   rV   re  rf  rL  rJ  r:   r<   Úconvert_to_aliasesÚ_common_fieldÚexcluderK  rS  )rë   rN  rO  r¥   r|   Úevaluated_typerì  Únew_field_inforÇ   rÈ   r?  r   rp  Úvalidators_from_decoratorsÚ	decoratorr¯   Úthis_field_validatorsrº   rs  rt  Úcore_metadatare  rJ  s   ` `                    rš   r¿  z#GenerateSchema._common_field_schemaÃ  s¶  ù€ ô -Ó.ˆ	Ø×#Ò#ðLÜ!.×!8Ñ!8¸×9NÑ9NÐ!gÐQU×QfÑQfÒ!g�ô +¨>¸4×;MÑ;MÓNˆNØ#'ˆJÔ Ü'¨Ô8LÔMØ!: ×!:Ñ!:¸>Ó!J�Ø(6×(AÑ(A�
Ô%ð +×:Ñ:×@Ñ@ÖB‘D�A�qð
  
× :Ñ :Ò:¸qÈ
×HbÑHbÒ?bÜ 
¨A¨qÕ1ð Cð 'W¨×(?Ñ(?Ð&VÀ*×BUÑBUÐ&V�
Ô#à#-×#8Ñ#8¸*×:MÑ:M�[ˆö	ð
 &(Ð"Ü=¸j×>YÑ>Y×>`Ñ>`Ó>bÐdhÖiˆIØ&×-Ñ-Ô.@ÀÇÁ×ATÑATÑ.U×.eÑ.eÐfoÓ.pÕqð jð ×"Ñ"×'Ñ'¨Õ-Ø×'Ñ'Ð3Ø×0Ñ0Ø Ð/IÑ!IÐbsð 1ó ‘ð ×0Ñ0ØØÐ"<Ñ<ó�÷ .ô !EÀZ×EZÑEZ×EaÑEaÓEcÐeiÓ jÐÜ/Ð0EÔFØ*.ˆJÔ'Ù+@Ó]Ñ+@ aÀAÇFÁF×DTÑDTÐX\ÒD\¢Ð+@ÐÐ]Ù,AÓ cÑ,A qÀQÐNbÒEb¢Ð,AÐÐ cÜ+¨FÐ4HÈ$ÓOˆä! &Ð*?ÀÓFˆð
 ×%Ñ%Ô'Ü! *¨fÓ5ˆFà×.Ñ.ØÔ8¸×9UÑ9U×9\Ñ9\Ó9^Ð`dÓeó
ˆð 	×7Ñ7¸×8LÑ8LÈjÐZ^Ô_ä1ZÐ[eÓ1fÑ.ÐÐ.Ø(*ˆÜØÐ/BÐVgõ	
ð ×.Ñ.×>Ñ>ˆØÐ&Ø×5Ñ5°oÀzÐSWÔXä�j×1Ñ1´LÄ)Ð3LÔMØ)×:Ñ:×MÑMÓOÑà)×:Ñ:ÐäØØ*4×*<Ò*<¡$À$Ø-Ø *× >Ñ >Ø×$Ñ$Ø"ô
ð 	
øôc ò LÜ1×AÑAÀ!ÓDÈ!ÐKûðLú÷> .Ñ-üò$  ^ùÚ cs;   š*N Æ :OÈOÈ:OÉ	OÉOÎ	OÎ'N=Î=OÏOc                óî  — | j                  |d¬«      }g }d}|D ]9  }|�|t        j                  u rd}Œ|j                  | j	                  |«      «       Œ; t        |«      dk(  r|d   }ntg }|D ]X  }|j                  di «      j                  t        j                  «      }	|	�|j                  ||	f«       ŒH|j                  |«       ŒZ t        j                  |«      }|rt        j                  |«      }|S )zGenerate schema for a Union.Trž  FrN   r   r&  )r¼  rS   r  rˆ  r  rÿ  r¶   rO   ÚTAGGED_UNION_TAG_KEYr1   Úunion_schemaÚnullable_schema)
rë   Ú
union_typerû  Úchoicesr®   ÚargrÓ  Úchoices_with_tagsÚchoiceÚtags
             rš   rB  zGenerateSchema._union_schema&  sñ   € à×4Ñ4°ZÈ$Ð4ÓOˆØ$&ˆØˆÛˆCØˆ{˜c¤]×%;Ñ%;Ñ;Ø‘à—‘˜t×3Ñ3°CÓ8Õ9ð	 ô ˆw‹<˜1ÒØ˜‘
‰AàKMÐÛ!�Ø—j‘j ¨RÓ0×4Ñ4´[×5UÑ5UÓV�Ø�?Ø%×,Ñ,¨f°c¨]Õ;à%×,Ñ,¨VÕ4ð "ô ×(Ñ(Ð):Ó;ˆAáÜ×+Ñ+¨AÓ.ˆAØˆrœ   c                óp  — | j                   j                  |«      5 \  }}|�|cd d d «       S t        |«      xs |}t        |«      }| j                  j                  |«      5  	 t        j                  |j                  g| j                  ¢­Ž }t        ||«      }| j                  |«      }|d   dk7  sJ ‚||d<   d d d «       | j                   j                  |<   t!        j"                  |«      cd d d «       S # t        $ r}t        j                  |«      |‚d }~ww xY w# 1 sw Y   ŒgxY w# 1 sw Y   y xY w)Nr­   rƒ  r%  )ræ   r¯  r7   ro   râ   r¸  rS   rw  Ú	__value__rü   ré  rD   rê  rr   r  rƒ  r1   r„  )	rë   rp  r%  rÉ  r¡  rî   rx  rì  r¯   s	            rš   r   z&GenerateSchema._type_alias_type_schemaA  s$  € Ø�Y‰Y×(Ñ(¨Ô-Ñ1D°#°|ØÐ'Ø#÷ .Ñ-ô %/¨s£OÒ$:°sˆFÜ4°SÓ9ˆLà×"Ñ"×'Ñ'¨Õ/ðPÜ!.×!8Ñ!8¸×9IÑ9IÐ!bÈD×LaÑLaÒ!b�Jô +¨:°|ÓD�
Ø×-Ñ-¨jÓ9�Ø˜f‘~¨Ò6Ð6Ð6Ø #��u‘÷ 0ð *0ˆD�I‰I×!Ñ! #Ñ&Ü×:Ñ:¸3Ó?÷# .Ñ-øô !ò PÜ5×EÑEÀaÓHÈaÐOûðPú÷ 0Ð/ú÷ .Ð-úsL   œD,­5D,Á"D Á$*C9Â,D Â:5D,Ã9	DÄDÄDÄD Ä D)	Ä%D,Ä,D5c                óð   — t        j                  |«      }|s
J d|› �«       ‚t        j                  |«      }| j                  j
                  r)t        d„ |D «       «      rt        j                  d„ |«      }|S )zGenerate schema for a Literal.z(literal "expected" cannot be empty, obj=c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr©   )rL  r   )rõ  rÈ   s     rš   rö  z1GenerateSchema._literal_schema.<locals>.<genexpr>[  s   è ø€ Ð7^ÑU]ÐPQ¼
À1Äd×8KÑU]ùs   ‚c                ó>   — t        | t        «      r| j                  S | S r©   )rL  r   r'  )rÈ   s    rš   r  z0GenerateSchema._literal_schema.<locals>.<lambda>]  s   € ¤Z°´4Ô%8˜!Ÿ'™'Ð?¸aÐ?rœ   )rS   Úliteral_valuesr1   Úliteral_schemarù   r;  Úanyr<  )rë   Úliteral_typeÚexpectedr¯   s       rš   r%  zGenerateSchema._literal_schemaU  sp   € ä ×/Ñ/°Ó=ˆÙÐRÐCÀLÀ>ÐRÓRˆxÜ×+Ñ+¨HÓ5ˆà×Ñ×/Ò/´CÑ7^ÑU]Ó7^Ô4^Ü ×AÑAÙ?ÀóˆFð ˆrœ   c                ó:  — t        «       }| j                  j                  |«      5  | j                  j	                  |«      5 \  }}|�|cddd«       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$                  |«      }| j                  j&                  rt)        |d¬	«      }nd}	 t+        j,                  || j.                  ¬
«      }|j7                  «       D ]Ó  \  }}t9        ||«      }||	v }t+        j:                  |«      rd}| j=                  |d¬«      d   }n-t+        j>                  |«      rd}| j=                  |d¬«      d   } |j@                  |«      }|�|jB                  €||v r
||   |_!        | jE                  | j                  ||«       | jG                  ||||¬«      |
|<   ŒÕ tI        jJ                  |
||jL                  jO                  «       D �cg c]  }| jQ                  ||jR                  «      ‘Œ  c}||¬«      }| jU                  ||jV                  jO                  «       «      }tY        ||jZ                  jO                  «       d«      }|| j                  j\                  |<   tI        j^                  |«      cddd«       cddd«       cddd«       S # t        $ r d}Y �Œ“w xY w# t0        $ r}t3        j4                  |«      |‚d}~ww xY wc c}w # 1 sw Y   nxY w	 ddd«       n# 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
        Nr0  zXPlease use `typing_extensions.TypedDict` instead of `typing.TypedDict` on Python < 3.12.ztyped-dict-versionrŸ   Ú__pydantic_config__r—  T)Úuse_inspect©rí   rž  r   F)rõ   r«  r%  rª  Úall)0rt   rå   r¸  ræ   r¯  ro   Ú_SUPPORTS_TYPEDDICTr­   rz  rE   rg   ÚAttributeErrorrá   rù   r¶  r7  Ú__required_keys__r`   ÚbuildÚuse_attribute_docstringsrk   rS   Úget_cls_type_hintsrâ   ré  rD   rê  rÄ   rr   rM  r¼  Úis_not_requiredry  rÀ   rm  rQ  r1   Útyped_dict_schemar«  r3  rÄ  r²  rÆ  rÇ  rÀ  r·  rƒ  r„  )rë   Útyped_dict_clsr¡  r|   Útyped_dict_refrÉ  rî   rª  r¶  Úrequired_keysr–   r¥   Úfield_docstringsr   rì  r»   rx  rŸ  rO  rÎ  Ú	td_schemar¯   s                         rš   r&  z!GenerateSchema._typed_dict_schemab  sŸ  € ô  -Ó.ˆ	à×"Ñ"×'Ñ'¨Õ7¸¿¹×9TÑ9TÐUcÔ9dñ i
ØØàÐ'Ø#÷ :eÐ9d×7Ñ7ô 5°^ÓDˆLØÐ!Ø!'�å&¬4°Ó+?×+JÑ+JÈhÒ+VÜ'ØnØ-ôð ð
ô -EÀ^ÐUjÓ,k�ð ×+Ñ+×0Ñ0°Õ8Ø"×2Ñ2×>Ñ>À^×E\ÑE\Ð>Ó]�à0>×0PÑ0P�à@B�ä+×1Ñ1°.ÓA�
à×'Ñ'×@Ò@Ü'BÀ>Ð_cÔ'dÑ$à'+Ð$ðPÜ"/×"BÑ"BÀ>Ð_c×_pÑ_pÔ"q�Kð /:×.?Ñ.?Ö.AÑ*�J 
Ü!.¨z¸<Ó!H�JØ)¨]Ð:�Hä$×0Ñ0°Ô<Ø#'˜Ø%)×%JÑ%JØ&Ø%)ð &Kó &ð ñ&™
ô '×6Ñ6°zÔBØ#(˜Ø%)×%JÑ%JØ&Ø%)ð &Kó &ð ñ&˜
ð
 "; ×!:Ñ!:¸:Ó!F�Jà(Ð4Ø&×2Ñ2Ð:Ø&Ð*:Ñ:à1AÀ*Ñ1M˜
Ô.Ø×CÑCÀD×DXÑDXÐZdÐfpÔqØ)-×)GÑ)GØ" J°
ÀXð *Hó *�F˜:Ò&ð3 /Bô: (×9Ñ9ØØ&ð ",×!;Ñ!;×!BÑ!BÔ!Dó%á!D˜Að ×3Ñ3°A°z×7SÑ7SÕTØ!Dñ%ð 'Ø&ô	�	ð ×6Ñ6°yÀ*×B^ÑB^×BeÑBeÓBgÓh�Ü/°¸
×8SÑ8S×8ZÑ8ZÓ8\Ð^cÓd�Ø8>�—	‘	×%Ñ% nÑ5Ü"×>Ñ>¸~ÓN÷} 9Ð8÷1 :eÐ9d×7Ñ7øô* "ò Ø“ðûô& !ò PÜ5×EÑEÀaÓHÈaÐOûðPüòF%÷g 9Ð8úÐ8÷1 :e×9dÑ9dú×7×7Ñ7ús¤   ¦NÁM<Á		NÁ:M<ÂL(Â#M<Â>A0M&Ä/!L:ÅDM&É##M!ÊBM&Ì	M<Ì	NÌ(L7Ì3M<Ì6L7Ì7M<Ì:	M	ÍM	ÍM	ÍM&Í&M/Í+M<Í3	NÍ<N	ÎNÎNc                ó’  — | j                   j                  |«      5  | j                  j                  |«      5 \  }}|�|cddd«       cddd«       S t	        |«      }|�|}	 t        j                  || 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}
}	ddi¬«      }t        j,                  |||¬«      cddd«       cddd«       S # t        $ r}t        j                  |«      |‚d}~ww xY wc c}w 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 NamedTuple.Nr£  )ÚdefaultÚ'pydantic_js_prefer_positional_argumentsTr/  )r%  )rå   r¸  ræ   r¯  ro   rS   rª  râ   ré  rD   rê  Ú_fieldsr   rÄ   rr   r1   Úarguments_schemaÚ_generate_parameter_schemaÚ_field_defaultsr¶   r   ÚemptyÚcall_schema)rë   Únamedtuple_clsr¡  Únamedtuple_refrÉ  rî   r   rì  rÇ   r»   rx  r¶  s               rš   r(  z!GenerateSchema._namedtuple_schemaÌ  sÕ  € à×"Ñ"×'Ñ'¨Õ7¸¿¹×9TÑ9TÐUcÔ9dñ i
ØØàÐ'Ø#÷ :eÐ9d×7Ñ7ô 5°^ÓDˆLØÐ!Ø!'�ðLÜ+×>Ñ>¸~Ð[_×[lÑ[lÔm�ñ à?M×?UÒ?UÓ.VÑ?U¸!¨q´#©vÐ?U�Ð.Váð 3>×2CÑ2CÔ2Eôá2EÑ.˜
 Jð ¤¨j¸,Ó GÑGØ2Eð ñ ô
  +×;Ñ;ð 3>×2CÑ2CÔ2Eôñ 3FÑ.˜
 Jð ×3Ñ3Ø"Ø"Ø .× >Ñ >× BÑ BÀ:ÌyÏÉÓ _ð 4õ ð
 3Fòð DÀTÐJô
 Ðô ×*Ñ*Ð+;¸^ÐQ_Ô`÷G :eÐ9d×7Ñ7øô ò LÜ1×AÑAÀ!ÓDÈ!ÐKûðLüò /Wùóùó÷3 :eÐ9dú×7×7Ñ7úsv   œF=¸F(¿	F=ÁF(Á"!E0ÂF(ÂFÂ!F(Â8F
Ã%F(Ã4AF"Ä:#F(Å	F=Å0	FÅ9FÆFÆF(Æ(F1	Æ-F=Æ=Gc                ó¼  — t        «       }|t        j                  u r |j                  |«      }n |j                  ||«      }|j
                  €J d«       ‚| j                  j                  |«      5  | j                  |j
                  |g«      }ddd«       |j                  «       st        |«      }t        j                  |«      }|�||d<   |j                  �|j                  |d<   |S | j                  j                  }	t!        |	t"        «      r"|	j                  �|	j                  |«      |d<   |S t!        |	t$        «      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 schemarM  rc  )rt   r   r¹  ry  Úfrom_annotated_attributerx  rä   r¸  r=  rM  r�  r1   Úarguments_parameterrc  rù   re  rL  r;   r   )
rë   rN  rx  r³  rM  r|   r˜   r¯   Úparameter_schemare  s
             rš   r·  z)GenerateSchema._generate_parameter_schemaó  sY  € ô -Ó.ˆ	à”i—o‘oÑ%Ø-�I×-Ñ-¨jÓ9‰Eà6�I×6Ñ6°zÀ7ÓKˆEØ×ÑÐ+ÐkÐ-kÓkÐ+Ø×"Ñ"×'Ñ'¨Õ-Ø×,Ñ,¨U×-=Ñ-=À¸wÓGˆF÷ .ð × Ñ Ô"Ü! %¨Ó0ˆFä&×:Ñ:¸4ÀÓHÐØÐØ'+Ð˜VÑ$Ø�;‰;Ð"Ø(-¯©Ð˜WÑ%ð  Ðð #×2Ñ2×BÑBˆOÜ˜/¬>Ô:¸×?TÑ?TÐ?`Ø,;×,AÑ,AÀ$Ó,GÐ  Ñ)ð  Ðô ˜O¬XÔ6Ù,;¸DÓ,AÐ  Ñ)ØÐ÷# .Ð-ús   Á1EÅEc                ó^  ‡— t        |«      Š| j                  |«      }‰r|rt        ˆfd„|D «       «      }|sG|t        v r*t	        j
                  t	        j                  «       gd¬«      S t	        j
                  g «      S |d   t        u rCt        |«      dk(  r*t	        j
                  | j                  |d   «      gd¬«      S t        d«      ‚t        |«      dk(  r|d   dk(  rt	        j
                  g «      S t	        j
                  |D �cg c]  }| j                  |«      ‘Œ c}«      S c c}w )	zIGenerate schema for a Tuple, e.g. `tuple[int, str]` or `tuple[int, ...]`.c              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr©   )rr   )rõ  Úparamrî   s     €rš   rö  z/GenerateSchema._tuple_schema.<locals>.<genexpr>  s   øè ø€ ÐRÉ6À%œ=¨°×=É6ùs   ƒr   )r±   rÍ   r9   z&Variable tuples can only have one typerN   rÛ   )ro   r¼  r°   r†   r1   Útuple_schemar¸   ÚEllipsisrÿ  r  Ú
ValueError)rë   Ú
tuple_typeÚparamsrÃ  rî   s       @rš   r  zGenerateSchema._tuple_schema  s  ø€ ô 1°Ó<ˆØ×6Ñ6°zÓBˆá™FÜÓRÉ6ÓRÓRˆFñ Øœ[Ñ(Ü"×/Ñ/´×1GÑ1GÓ1IÐ0JÐ`aÔbÐbô #×/Ñ/°Ó3Ð3Ø�B‰Zœ8Ñ#Ü�6‹{˜aÒÜ"×/Ñ/°×1EÑ1EÀfÈQÁiÓ1PÐ0QÐghÔiÐiô !Ð!IÓJÐJÜ�‹[˜AÒ &¨¡)¨r¢/ô ×+Ñ+¨BÓ/Ð/ä×+Ñ+ÑV\Ó,]ÑV\ÈU¨T×-AÑ-AÀ%Õ-HÐV\Ñ,]Ó^Ð^ùÒ,]s   ÄD*c                ó`   — t        j                  t        j                  t        «      dd¬«      S )NÚis_typezInput should be a type)Úcustom_error_typeÚcustom_error_message)r1   Úcustom_error_schemar=  r­   rø   s    rš   r!  zGenerateSchema._type_schema3  s)   € Ü×.Ñ.Ü×*Ñ*¬4Ó0Ø'Ø!9ô
ð 	
rœ   c                ó¸   ‡‡— t         j                  dk  rJ d«       ‚ddlmŠmŠ d	ˆˆfd„}dd„ gi}t        j                  |t        j                  «       |¬«      S )
z/Generate schema for a zone_info.ZoneInfo objectrñ  ÚUnreachabler   )ÚZoneInfoÚZoneInfoNotFoundErrorc               óx   •— t        | ‰«      r| S 	  ‰| «      S # ‰t        t        f$ r t        ddd| i«      ‚w xY w)NÚzoneinfo_strzinvalid timezone: {value}r'  )rL  rÆ  r¹   r-   )r'  rÐ  rÑ  s    €€rš   Úvalidate_str_is_valid_iana_tzzFGenerateSchema._zoneinfo_schema.<locals>.validate_str_is_valid_iana_tzC  sQ   ø€ Ü˜% Ô*Ø�ðiÙ “Ð&øØ)¬:´yÐAò iÜ)¨.Ð:UÐX_ÐafÐWgÓhÐhðiús   ‘ ™ 9r"  c                ó   — dddœS )NrU  ÚzoneinforV  rÛ   rh  s     rš   r  z1GenerateSchema._zoneinfo_schema.<locals>.<lambda>K  s
   € ÀhÐZdÒ=erœ   ©rË   r&  )r'  r   r0  rÐ  )rø  rù  rÖ  rÐ  rÑ  r1   r`  ri  )rë   rÔ  r&  rÐ  rÑ  s      @@rš   r7  zGenerateSchema._zoneinfo_schema:  s]   ù€ ô ×Ñ˜fÒ$Ø'˜-Ó'�5÷ 	=ö	ið ,Ñ.eÐ-fÐgˆÜ×;Ñ;Ø)Ü%×:Ñ:Ó<Øô
ð 	
rœ   c           	     ó¸   — | j                  |d¬«      }t        j                  |D �cg c]$  }| j                  t        j
                  |   «      ‘Œ& c}«      S c c}w )z*Generate schema for `Type[Union[X, ...]]`.Trž  )r¼  r1   rŽ  r  r0  r$   )rë   r�  rû  s      rš   Ú_union_is_subclass_schemaz(GenerateSchema._union_is_subclass_schemaR  sR   € à×4Ñ4°ZÈ$Ð4ÓOˆÜ×'Ñ'Ñ]aÓ(bÑ]aÐUY¨×)=Ñ)=¼f¿k¹kÈ$Ñ>OÕ)PÐ]aÑ(bÓcÐcùÒ(bs   §)Ac           	     ó(  — | j                  |«      }t        j                  |«      xs |}t        j                  |«      r| j	                  «       S t        j
                  |«      r,| j                  t        j                  |j                     «      S t        |t        j                  «      r×|j                  rbt        j                  t        |j                  «      «      r| j                  |j                  «      S t!        j"                  |j                  «      S |j$                  rMt!        j&                  |j$                  D �cg c]$  }| j                  t        j                  |   «      ‘Œ& c}«      S | j	                  «       S t        j                  t        |«      «      r| j                  |«      S t        j(                  |«      r| j+                  |«      }t-        j.                  |«      st1        d|›�«      ‚t!        j"                  |«      S c c}w )z-Generate schema for a Type, e.g. `Type[int]`.zExpected a class, got )rý  rS   Úannotated_typer½  r!  r  r  r0  r$   r—  rL  r%   Ú	__bound__rA  r7   rÙ  r1   Úis_subclass_schemaÚ__constraints__rŽ  rÞ  rÖ  r5  r5  r¹   )rë   Útype_Ú
type_paramÚcs       rš   rC  zGenerateSchema._subclass_schemaW  s¤  € à×/Ñ/°Ó6ˆ
ô #×1Ñ1°*Ó=ÒKÀˆ
ä×Ñ 
Ô+Ø×$Ñ$Ó&Ð&Ü×-Ñ-¨jÔ9Ø×'Ñ'¬¯©°J×4HÑ4HÑ(IÓJÐJÜ˜
¤F§N¡NÔ3Ø×#Ò#Ü ×0Ñ0´¸J×<PÑ<PÓ1QÔRØ×9Ñ9¸*×:NÑ:NÓOÐOÜ"×5Ñ5°j×6JÑ6JÓKÐKØ×+Ò+Ü"×/Ñ/ØCM×C]ÒC]Ó^ÑC]¸a�T×)Ñ)¬&¯+©+°a©.Õ9ÐC]Ñ^óð ð ×(Ñ(Ó*Ð*Ü×*Ñ*¬:°jÓ+AÔBØ×1Ñ1°*Ó=Ð=ä×$Ñ$ ZÔ0Ø!×4Ñ4°ZÓ@�
ä—?‘? :Ô.ÜÐ"8¸¸Ð GÓHÐHÜ×1Ñ1°*Ó=Ð=ùò _s   Å)Hc                ó¦  — ddl m} | j                  |«      }t        j                  |«      }t        |«      }t        j                  t        j                  d¬«      }t        j                  |«      s1ddlm} t        j                  |t        j                  ||«      g«      }t        j                  ||d¬«      }t        j                   |||¬«      S )	z5Generate schema for a Sequence, e.g. `Sequence[int]`.rN   )Úserialize_sequence_via_listÚSequence)Úcls_repr)Úsequence_validatorT)r¯   rS  )r  rQ  rË   )Ú_serializersrã  r  r1   r  rz   r=  r0  rä  rS   r½  r^  ræ  rá  Úno_info_wrap_validator_functionÚ#wrap_serializer_function_ser_schemara  )	rë   r  rã  Úitem_type_schemar  r  rQ  ræ  rË   s	            rš   r  zGenerateSchema._sequence_schemaw  s·   € å=à×/Ñ/°
Ó;ÐÜ!×-Ñ-Ð.>Ó?ˆä$ [Ó1ˆÜ#×6Ñ6´v·±ÐQ[Ô\ˆÜ×#Ñ# JÔ/Ý7ä'×4Ñ4Ø¤× KÑ KÐL^Ð`kÓ lÐmóˆMô $×GÑGØ'Ð0@È4ô
ˆô ×0Ñ0Ø#°=ÐP]ô
ð 	
rœ   c                ól   — | j                  |«      }t        j                  | j                  |«      «      S )z$Generate a schema for an `Iterable`.)rý  r1   Úgenerator_schemar  )rë   rß  Ú	item_types      rš   rG  zGenerateSchema._iterable_schemaŽ  s.   € à×.Ñ.¨uÓ5ˆ	ä×+Ñ+¨D×,@Ñ,@ÀÓ,KÓLÐLrœ   c                óþ  — ddl m} dd„ gi}t        j                  t	        d«      dt        j
                  «       ¬«      }|t        j                  u s|t        j                  u r"t        j                  |j                  ||¬«      S | j                  |d	¬
«      d   }|t        u r"t        j                  |j                  ||¬«      S |t        u r"t        j                  |j                  ||¬«      S t!        d|›d�«      ‚)NrN   )r^  r"  c                ó   — dddœS )NrU  ÚregexrV  rÛ   rh  s     rš   r  z0GenerateSchema._pattern_schema.<locals>.<lambda>—  s
   € ÀhÐZaÒ=brœ   ÚpatternrÎ   )rÐ   Úreturn_schemar×  Trž  r   rn  rž   )r¾   r^  r1   rÔ   r   rb  r0  r,  r+  r`  Úpattern_either_validatorr¼  r  Úpattern_str_validatorr  Úpattern_bytes_validatorrC   )rë   Úpattern_typer^  r&  ÚserrÃ  s         rš   r-  zGenerateSchema._pattern_schema”  s  € Ý!à+Ñ.bÐ-cÐdˆÜ×>Ñ>Ü�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Ðqrœ   c           
     óV  — t        j                  t        j                  t        j                  t        j                  «       t        j
                  t        j                  j                  «      g«      t        j
                  t        j                  j                  «      ¬«      dd¬«      S )NrP  r.  zInput should be hashable)r¯   rË  rÌ  )	r1   rÍ  ra  rá  r¸   r=  rD  rE  ÚHashablerø   s    rš   r/  zGenerateSchema._hashable_schema°  sy   € Ü×.Ñ.Ü×4Ñ4Ü'×4Ñ4Ü ×+Ñ+Ó-¬{×/MÑ/MÌkÏoÉo×NfÑNfÓ/gÐhóô *×<Ñ<¼[¿_¹_×=UÑ=UÓVô	ð ,Ø!;ô	
ð 		
rœ   c                óÎ  ‡ ‡— ‰ j                   j                  |«      5  ‰ j                  j                  |«      5 \  }}|�|cddd«       cddd«       S t	        |«      }|�|}t        |dd«      }ddlm} ‰ j                  j                  |«      5  ‰ j                  j                  |«      5   ||«      rJt        |j                  «      }|r@|j                  «       D ]  }	 |	j                  |g‰ j                  ¢­Ž  Œ! nt        ||¬«      }‰ j                   j"                  dk(  r7|j%                  «       D ]$  \  }
}	|	j&                  du sŒt)        d|
› d	�d
¬«      ‚ |j*                  j-                  d«      xs t/        j0                  |«      Št3        ˆˆ fd„|j%                  «       D «       d„ ¬«      }t5        |d«      }t5        |d«      }t7        j8                  |j:                  |‰j<                  j                  «       D �cg c]  }‰ j?                  |‰j@                  «      ‘Œ  c}|¬«      }tC        |‰jD                  j                  «       d«      }‰jF                  j                  «       }tI        ||d«      }‰ j                   jK                  |j:                  ¬«      }t7        jL                  |||||t        jN                  |«      D �	cg c]  }	|	jP                  ‘Œ c}	||‰ j                  jR                  jT                  ¬«	      }‰ jW                  |‰jX                  j                  «       «      }tI        ||d«      }|‰ j                  jZ                  |<   t7        j\                  |«      cddd«       cddd«       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«       n# 1 sw Y   nxY wddd«       n# 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¡  r9   )Úis_pydantic_dataclass)rî   r™  FzField zd has `init=False` and dataclass has config setting `extra="allow"`. This combination is not allowed.z dataclass-init-false-extra-allowrŸ   r°  c              3  óJ   •K  — | ]  \  }}‰j                  ||‰«      –— Œ y ­wr©   )r]  )rõ  rÇ   rÈ   r¥   rë   s      €€rš   rö  z3GenerateSchema._dataclass_schema.<locals>.<genexpr>ì  s'   øè ø€ ÐaÑR`É$È!ÈQ�T×3Ñ3°A°q¸*×EÑR`ùs   ƒ #c                ó(   — | j                  d«      duS )NrZ  F©r¶   )rÜ   s    rš   r  z2GenerateSchema._dataclass_schema.<locals>.<lambda>í  s   €  !§%¡%¨	Ó"2¸%Ñ"?rœ   )ÚkeyÚ__post_init__Ú	__slots__)r«  Úcollect_init_onlyr£  r—  )r¦  r©  r%  r–   Úslotsrª  rS  r®  )/rå   r¸  ræ   r¯  ro   rÑ   r8  rû  râ   rá   r   r•  r3  Úapply_typevars_maprü   rl   rù   ÚextrarÄ   rX  rE   rÛ  r¶   r`   r¨  Úsortedrß  r1   Údataclass_args_schemar7  r«  rÄ  r²  r·   rÅ  r·  rÀ  r¶  Údataclass_schemar–   rN  r÷   rS  rÆ  rÇ  rƒ  r„  )rë   Ú	dataclassr¡  Údataclass_refrÉ  rî   rª  rû  r–   r˜   r»   rû  Úhas_post_initÚ	has_slotsrÎ  Úargs_schemar¼   r·  r¶  Ú	dc_schemar¯   r¥   s   `                    @rš   r:  z GenerateSchema._dataclass_schema¼  sˆ  ù€ ð ×"Ñ"×'Ñ'¨	Õ2°D·I±I×4OÑ4OÐPYÔ4Zñ _
ØØàÐ'Ø#÷ 5[Ð4Z×2Ñ2ô 5°YÓ?ˆLØÐ!Ø"�	ô
 ˜YÐ(=¸tÓDˆFå;à×"Ñ"×'Ñ'¨	Õ2°D×4NÑ4N×4SÑ4SÐTZÕ4[Ù(¨Ô3Ü% i×&CÑ&CÓD�FÙ#Ø%+§]¡]¦_˜EØ4˜E×4Ñ4°\ÐZÀD×DYÑDYÔZñ &5ô 6Ø!Ø%1ô�Fð
 ×'Ñ'×-Ñ-°Ò8à-3¯\©\®^Ñ)˜
 EØ Ÿ:™:¨Ò.Ü"3Ø"(¨¨ð 5Cð !Dà%Gô#ð ð .<ð '×/Ñ/×3Ñ3Ð4MÓNÒqÔR`×RfÑRfÐgpÓRq�
ô ÜaÐRX×R^ÑR^ÔR`ÓaÙ?ô�ô !(¨	°?Ó C�Ü# I¨{Ó;�	ä)×?Ñ?Ø×&Ñ&Øð ",×!;Ñ!;×!BÑ!BÔ!Dó%á!D˜Að ×3Ñ3°A°z×7SÑ7SÕTØ!Dñ%ð '4ô�ô  0°¸Z×=WÑ=W×=^Ñ=^Ó=`ÐbfÓg�à#-×#>Ñ#>×#EÑ#EÓ#GÐ Ü5°lÐDTÐV]Ó^�à"×2Ñ2×>Ñ>ÀY×EWÑEWÐ>ÓX�ä'×8Ñ8ØØ Ø#)Ø+Ø%Ü4?×4FÑ4FÀyÔ4QÓRÑ4Q¨5˜EŸJ›JÐ4QÑRØ#Ø&ð  ×5Ñ5×:Ñ:×AÑAô�	ð ×6Ñ6°yÀ*×B^ÑB^×BeÑBeÓBgÓh�Ü/°Ð8HÈ'ÓR�Ø7=�—	‘	×%Ñ% mÑ4Ü"×>Ñ>¸}ÓM÷C 5\Ð4[×2Ð2÷% 5[Ð4Z×2Ñ2ùòj%ùò( S÷o 5\Ð4[ú×2×2Ñ2ú÷% 5[×4ZÑ4Zú×2×2Ñ2ús’   žOºOÁ	OÁ=OÂN1Â-BN	ÅB9N	È#NÈ'B&N	ËNË BN	Í-	N1Í6	OÍ?	OÎ
N	ÎN%Î!N1Î(	OÎ1N:Î6OÎ=	OÏO	ÏOÏO$c                ó„  — t        |«      }t        j                  dt        j                  dt        j                  di}g }d}d}d}|j
                  j                  «       D �]Y  \  }}	|	j                  |j                  u rt        j                  t        t        «      }
nVt        |	j                  t        «      rt        j                  |	j                  «      n|	j                  }
| j!                  |
«      }
|j#                  |	j$                  «      }|�0| j'                  ||
|	j(                  |«      }|j+                  |«       Œá|	j$                  t        j,                  k(  r| j/                  |
«      }�Œ|	j$                  t        j0                  k(  sJ |	j$                  «       ‚t        j2                  |
«      }|�ñt5        |«      st7        d|j8                  ›�d¬«      ‚|j
                  j                  «       D ��	ch c]%  \  }}	|	j$                  t        j                  k7  sŒ$|’Œ' }}}	|j;                  |j<                  «      }|rOt7        d|j8                  ›d	t?        |«      d
k\  rdnd› ddjA                  d„ tC        |«      D «       «      › �d¬«      ‚d}| jE                  |d«      }�ŒGd}| j/                  |
«      }�Œ\ d}| jF                  }|jH                  r+|jJ                  }||j                  ur| j/                  |«      }tM        jN                  tM        jP                  |||||jR                  ¬«      ||¬«      S c c}	}w )zsGenerate schema for a Callable.

        TODO support functional validators once we support them in Config
        Úpositional_onlyÚpositional_or_keywordÚkeyword_onlyNz"Expected a `TypedDict` class, got zunpack-typed-dictrŸ   zTyped dictionary z overlaps with parameterr9   rÓ  r¾   Ú z, c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr©   )Úrepr)rõ  Úps     rš   rö  z.GenerateSchema._call_schema.<locals>.<genexpr>J  s   è ø€ Ð(UÑ:T°Q¬¨a¯Ñ:Tùs   ‚zoverlapping-unpack-typed-dictzunpacked-typed-dictÚuniform)Úvar_args_schemaÚvar_kwargs_modeÚvar_kwargs_schemaÚpopulate_by_name)rò  )*r   r   ÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYÚ
parametersrÄ   rx  r¹  r0  r'   r   rL  r  rS   r»  rí  r¶   Úkindr·  r³  rˆ  ÚVAR_POSITIONALr  ÚVAR_KEYWORDÚunpack_typer8   rE   r7  Úintersectionrš  rÿ  Újoinr  r&  rù   Úvalidate_returnÚreturn_annotationr1   rº  r¶  r  )rë   ÚfunctionÚsigÚmode_lookupÚarguments_listr  r  r  rN  r  rx  Úparameter_modeÚ
arg_schemar#  Únon_pos_only_param_namesÚoverlapping_paramsrò  rì   Úreturn_hints                      rš   r4  zGenerateSchema._call_schema  s  € ô
 ˜Ó!ˆô ×%Ñ%Ð'8Ü×+Ñ+Ð-DÜ×"Ñ" Nðr
ˆð @BˆØ9=ˆØ;?ÐØ<@ˆà—~‘~×+Ñ+×-‰GˆD�!Ø�|‰|˜sŸy™yÑ(Ü#Ÿ[™[¬¬cÓ2‘
ô FPÐPQ×P\ÑP\Ô^aÔEb”M×3Ñ3°A·L±LÔAÐhi×htÑhtð ð "×6Ñ6°zÓB�
à(Ÿ_™_¨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ä+×7Ñ7¸
ÓC�ØÐ*Ü'¨Ô4Ü/Ø@À×AUÑAUÐ@XÐYÐ`sôð ð -0¯N©N×,@Ñ,@Ô,Bô0Ù,B¡  qÀaÇfÁfÔPY×PiÑPiÓFišÐ,Bð -ñ 0ð *B×)NÑ)NÈ{×OjÑOjÓ)kÐ&Ù)Ü/Ø/°×0DÑ0DÐ/GÐG_Ü&)Ð*<Ó&=ÀÒ&B™sÈÐKÈ1Ø#Ÿy™yÑ(U¼&ÐASÔ:TÓ(UÓUÐVðXð "Aô	ð ð '<�OØ(,×(?Ñ(?ÀÈTÓ(RÒ%à&/�OØ(,×(<Ñ(<¸ZÓ(HÒ%ðW .ðZ 8<ˆØ×-Ñ-ˆØ×)Ò)Ø×/Ñ/ˆKØ #§)¡)Ñ+Ø $× 4Ñ 4°[Ó A�ä×&Ñ&Ü×(Ñ(ØØ /Ø /Ø"3Ø!/×!@Ñ!@ôð Ø'ô

ð 
	
ùó30s   Ç8%L<ÈL<c                ó>  — t        |t        j                  «      sJ ‚|j                  }|j                  }	 |j                  «       }|d ut        |«      dk7  z   |z   dkD  rt        d«      ‚|r| j                  |j                  «      S |r"| j                  t        j                  |   «      S |r@| j                  |«      }t        j                  d„ t        j                   «       ¬«      |d<   |S t        j                   «       S # t        $ r t        |dd «      d u}Y ŒÕw xY w)NÚ__default__r   rN   zZPydantic does not support mixing more than one of TypeVar bounds, constraints and defaultsc                ó   —  || «      S r©   rÛ   )r  Úhs     rš   r  z>GenerateSchema._unsubstituted_typevar_schema.<locals>.<lambda>  s   € ™Q˜qœTrœ   )r¯   rË   )rL  r0  r%   rÜ  rÞ  Úhas_defaultr¦  rÑ   rÿ  ÚNotImplementedErrorr  r2  rB  r&   r1   ré  r¸   )rë   Útypevarr…   ÚconstraintsÚtypevar_has_defaultr¯   s         rš   r1  z,GenerateSchema._unsubstituted_typevar_schemag  s"  € Ü˜'¤6§>¡>Ô2Ð2Ð2à×!Ñ!ˆØ×-Ñ-ˆð	TØ")×"5Ñ"5Ó"7Ðð
 ˜Ð¤# kÓ"2°aÑ"7Ñ8Ð;NÑNÐQRÒRÜ%Ølóð ñ Ø×'Ñ'¨×(;Ñ(;Ó<Ð<ÙØ×%Ñ%¤f§l¡l°;Ñ&?Ó@Ð@ÙØ×)Ñ)¨%Ó0ˆFÜ&1×&UÑ&UÙ!¬+×*@Ñ*@Ó*Bô'ˆF�?Ñ#ð ˆMä×)Ñ)Ó+Ð+øô) ò 	Tä")¨'°=À$Ó"GÈtÐ"SÒð	Tús   ¶D ÄDÄDc                óÂ  — 	 t        j                  |j                  |j                  j                  | j
                  j                  ¬«      }|t        u rt        dd¬«      ‚t        || j                  «      }t        j                  |j                  |¬«      |_        | j!                  |«      }| j#                  |t%        |j'                  «       |j(                  «      «      }| j*                  j,                  }|�(| j/                  ||j                  |j(                  ¬«       | j1                  | j*                  |j                  |j(                  «       t3        |j                  «      \  }}i }	t5        |	ddi|r|ni ¥|¬	«       t7        j8                  |j(                  ||j                  j:                  |	¬
«      S # t        $ r}t        j                  |«      |‚d }~ww xY w)N©Úlocalnsz�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-annotationrŸ   )Úreturn_type)re  rh  ri  ÚreadOnlyTrr  )rò  rc  r&  )rP   Úget_function_return_typeÚfuncr—   r=  rü   Úlocalsré  rD   rê  r/   rE   rr   rã   r8  Úreplacer  r‚  r«   r3  r¤   rù   re  rj  rm  rÉ   rV   r1   Úcomputed_fieldrc  )
rë   rÎ  r²  r=  rì  Úreturn_type_schemare  rs  rt  r‹  s
             rš   rÄ  z%GenerateSchema._computed_field_schema…  s½  € ð
	Hô &×>Ñ>Ø—‘˜Ÿ™×*Ñ*°D×4IÑ4I×4PÑ4PôˆKð
 Ô+Ñ+Ü#ðdà5ôð ô $ K°×1CÑ1CÓDˆô ×$Ñ$ Q§V¡V¸ÔEˆŒØ!×1Ñ1°+Ó>Ðà!×:Ñ:ØÜ0Ð1B×1IÑ1IÓ1KÈQÏ^É^Ó\ó
Ðð
 ×.Ñ.×>Ñ>ˆØÐ&Ø×>Ñ>Ø /ÀQÇVÁVÐab×aoÑaoð ?ô ð 	×7Ñ7¸×8LÑ8LÈaÏfÉfÐVW×VdÑVdÔeä1ZÐ[\×[aÑ[aÓ1bÑ.ÐÐ.Ø(*ˆÜØØ!+¨TÐ jÑM`Ñ6IÐfhÐ jØ/õ	
ô
 ×)Ñ)Ø�N‰NÐ*<ÀAÇFÁFÇLÁLÐ[hô
ð 	
øôE ò 	HÜ-×=Ñ=¸aÓ@ÀaÐGûð	Hús   ‚A
F: Æ:	GÇGÇGc                ó¨   — t        «       }| j                  |d¬«      ^}}| j                  ||«      }|D ]  }t        ||«      sŒt	        ||«      }Œ |S )zdGenerate schema for an Annotated type, e.g. `Annotated[int, Field(...)]` or `Annotated[int, Gt(0)]`.Trž  )rt   r¼  r=  rL  r�  )rë   rÛ  r|   r?  r   r¯   rx  s          rš   r  z GenerateSchema._annotated_schema·  sh   € ä,Ó.ˆ	à$(×$IÑ$IØØð %Jó %
Ð!ˆ�kð ×(Ñ(¨°kÓBˆó &ˆJÜ˜* iÕ0Ü% j°&Ó9‘ð &ð ˆrœ   c                óÒ   — ddl m}m}m} 	 t	        |«       t        |«      xs |}|t        v r	 |||«      S |t        v r	 |||«      S |t        v r	 |||«      S y # t
        $ r Y y w xY w)NrN   )Ú)deque_schema_prepare_pydantic_annotationsÚ)mapping_like_prepare_pydantic_annotationsÚ(path_schema_prepare_pydantic_annotations)
Ú_std_types_schemarG  rH  rI  Úhashr¹   r7   r�   rŽ   ÚMAPPING_TYPES)rë   rp  r   rG  rH  rI  Ú
obj_origins          rš   r<  z?GenerateSchema._get_prepare_pydantic_annotations_for_known_typeÇ  s~   € ÷	
ñ 	
ð	Ü�ŒIô   “_Ò+¨ˆ
àœÑ#Ù;¸CÀÓMÐMØœ;Ñ&Ù<¸SÀ+ÓNÐNØœ=Ñ(Ù<¸SÀ+ÓNÐNàøô! ò 	áð	ús   ŒA Á	A&Á%A&c                ó   — | S r©   rÛ   r  s    rš   r  zGenerateSchema.<lambda>é  s   € Éqrœ   c                ó‚  ‡ ‡‡— t        t        j                  |«      «      }‰ j                  ‰t	        |«      «      }|�|\  Š}g }dˆ ˆˆfd„}t        |‰ «      }|D ]  }|€Œ‰ j                  |||«      }Œ  |‰«      }	|r|	j                  di «      }
t        |
|¬«       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‹  )rp  r’  r¯   r“  r‰  rë   r?  rq  s        €€€rš   Úinner_handlerz8GenerateSchema._apply_annotations.<locals>.inner_handlerø  s{   ø€ Ø ×?Ñ?ÀÀ[ÓQˆMØÐ$Ø×4Ñ4°SÓ9‘à&�Ü#DÀSÈ&Ó#QÐ Ø#Ð/Ü"9¸&À$Ç)Á)×BWÑBWÓ"X�Ø"Ð.Ø×)Ñ)¨/Ð;OÔPÙ)¨&Ó1Ð1rœ   r&  )Ú pydantic_js_annotation_functions©rp  r   r0  r+   )r1  rR   Úexpand_grouped_metadatar<  r°   rx   Ú_get_wrapped_inner_schemar‡  rV   rÙ   rù   rÕ   )rë   r?  r   rq  r>  rR  rQ  Úget_inner_schemarx  r¯   r‹  s   `` `       rš   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ó Ñð &ñ " +Ó.ˆÙ+Ø"×-Ñ-¨j¸"Ó=ˆMÜ  ÐQqÕrÜ;¸D×<PÑ<P×<^Ñ<^Ð`kÐmsÓtÐtrœ   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%  r*  údefinition-refr  )rt   rL  r&  Ú_apply_single_annotationrv  rw  r¶   r1   r¸   r   r  ræ   rƒ  rR   Úapply_known_metadata)
rë   r¯   r&  r|   Úfield_metadatar£  r  r%  Únew_refÚmaybe_updated_schemas
             rš   rY  z'GenerateSchema._apply_single_annotation  sÐ  € Ü,Ó.ˆ	ä�h 	Ô*Ø"*×"3Ô"3�Ø×6Ñ6°v¸~ÓN‘ð #4ð ×%Ñ%Ð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ÐàÐ+Ø'Ð'ØÐrœ   c                óÔ   — t        «       }t        ||«      rQ|j                  D ]  }| j                  ||«      }Œ t	        |«      \  }}|j                  di «      }t        |||¬«       |S )Nr&  rr  )rt   rL  r&  Ú$_apply_single_annotation_json_schemarÉ   r‡  rV   )rë   r¯   r&  r|   r[  rs  rt  r‹  s           rš   r_  z3GenerateSchema._apply_single_annotation_json_schema>  sw   € ô -Ó.ˆ	ä�h 	Ô*Ø"*×"3Ô"3�Ø×BÑBÀ6È>ÓZ‘ð #4ô 6_Ð_gÓ5hÑ2ÐÐ!2Ø"×-Ñ-¨j¸"Ó=ˆMÜ ØÐ3FÐZkõð ˆrœ   c                ó\   ‡ ‡‡‡‡— t        ‰dd «      xs d„ Šdˆˆˆˆˆ fd„}t        |‰ «      S )NrÙ  c                ó   —  || «      S r©   rÛ   )rä  r  s     rš   r  z:GenerateSchema._get_wrapped_inner_schema.<locals>.<lambda>U  s   € ¡G¨F¤Orœ   c                ó    •—  ‰| ‰«      }‰j                  |‰«      }‰j                  |‰«      }t        ‰|«      }|�‰j                  |«       |S r©   )rY  r_  r�  rˆ  )rä  r¯   r“  rx  rV  Úmetadata_get_schemarR  rë   s      €€€€€rš   Únew_handlerz=GenerateSchema._get_wrapped_inner_schema.<locals>.new_handlerX  s\   ø€ Ù(¨Ð1AÓBˆFØ×2Ñ2°6¸:ÓFˆFØ×>Ñ>¸vÀzÓRˆFä#DÀZÐQWÓ#XÐ Ø#Ð/Ø0×7Ñ7Ð8LÔMØˆMrœ   )rä  r   r0  úcore_schema.CoreSchema)rÑ   rx   )rë   rV  rx  rR  rd  rc  s   ```` @rš   rU  z(GenerateSchema._get_wrapped_inner_schemaN  s9   ü€ ô 6=¸ZÐIgÐimÓ5nò 6
Ù3ð 	÷	ñ 	ô ,¨K¸Ó>Ð>rœ   c                óî  — |�rÊt        |«      }|d   dk(  r|d   }| j                  ||«      |d<   |S t        j                  d|j	                  dd«      «      }|�.|| j
                  j                  |<   t        j                  |«      }|d   }t        |j                  |j                  j                  «      \  }}	 t        j                  |j                  |j                  j                  | j                   j"                  ¬«      }|t*        u rd}
n| j-                  |«      }
|j                  j                  d	k(  r=t        j.                  |j                  |||
|j                  j0                  ¬
«      |d<   |S |j                  j                  dk(  sJ ‚t        j2                  |j                  |||
|j                  j0                  ¬
«      |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;  r’   )Úis_field_serializerrS  rò  rÐ   rË   r‘   )r   r‚  r0  r'   r¶   ræ   rƒ  r1   r„  rh   r@  r—   rM  rP   r?  r=  rü   rA  ré  rD   rê  r/   r  ré  rÐ   rÔ   )rë   r¯   Úserializersr¼   r%  Ú
serializerrg  rS  r=  rì  rò  s              rš   r‚  z'GenerateSchema._apply_field_serializersd  sÒ  € ò Ü˜&“\ˆFØ�f‰~ Ò.Ø% hÑ/�Ø#'×#@Ñ#@ÀÈ{Ó#[��xÑ Ø�ä—k‘k *¨f¯j©j¸ÀÓ.EÓF�Ø�?Ø17�D—I‘I×)Ñ)¨#Ñ.Ü(×DÑDÀSÓI�Fð % R™ˆJÜ,DÀZÇ_Á_ÐV`×VeÑVe×VjÑVjÓ,kÑ)Ð ðLô *×BÑBØ—O‘O Z§_¡_×%@Ñ%@È$×J_ÑJ_×JfÑJfô�ð Ô/Ñ/Ø $‘à $× 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   Â<A
G Ç	G4ÇG/Ç/G4c                óä  — |j                  dd«      }|�r,t        |«      d   }t        |j                  |j                  j
                  «      }	 t        j                  |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’   )rS  rò  rÐ   rË   )rã  r1  ri   r@  r—   rM  rP   r?  r=  rü   rA  ré  rD   rê  r/   r  r1   ré  rÐ   rÔ   )
rë   r¯   rh  r%  ri  rS  r=  rì  rò  Ú
ser_schemas
             rš   rÆ  z'GenerateSchema._apply_model_serializersœ  sE  € ð !Ÿ*™* U¨DÓ1ˆÚÜ˜kÓ*¨2Ñ.ˆJÜ/°
·±ÀÇÁ×AUÑAUÓVˆHðLô *×BÑBØ—O‘O Z§_¡_×%@Ñ%@È$×J_ÑJ_×JfÑJfô�ð
 Ô/Ñ/Ø $‘à $× 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   ÁA
E Å	E/ÅE*Å*E/)NN)rì   rT   rí   zNsResolver | Nonerî   zdict[Any, Any] | Noner0  ÚNone©r0  rl  )r0  rT   )r0  rv   )r0  rÃ   )r  r   r0  r+   )r  r   r	  r   r0  r+   )r-  z
type[Enum]r0  r+   )rÖ   r   r0  r+   )r0  r+   rS  )r¯   r+   rv  zstr | Discriminator | Noner0  r+   ru  )r‰  r+   rŠ  zCallable[..., Any]r0  rl  )T)rp  r   r‘  rÃ   r0  re  )rõ   ztype[BaseModel]r0  re  )rp  r   r0  r   )rp  r   rä  r   r0  zcore_schema.CoreSchema | None)rp  r   rŸ  zLiteral[True]r0  útuple[Any, ...])rp  r   r0  útuple[Any, ...] | None)F)rp  r   rŸ  rÃ   r0  ro  )rp  r   r0  ztuple[Any, Any])rp  r   r0  re  )rp  r   r¡  r   r0  r+   )
rN  r  rO  r|   r¥   r`   rŸ  rÃ   r0  zcore_schema.TypedDictField)rN  r  rO  r|   r¥   r`   r0  zcore_schema.ModelField)rN  r  rO  r|   r¥   r`   r0  zcore_schema.DataclassField)re  ú%Callable[[str], str] | AliasGeneratorrO  r|   r»   r  r0  rl  )re  rp  rh  r{   ri  r  )rì   rT   rO  úFieldInfo | ComputedFieldInfor»   r  r0  rl  )rN  r  rO  r|   r¥   r`   r0  Ú_CommonField)r�  r   r0  re  )rp  r4   r0  r+   )rž  r   r0  r+   )r­  r   r¡  r   r0  re  )r»  r   r¡  r   r0  re  )
rN  r  rx  z	type[Any]r³  r   rM  zJLiteral['positional_only', 'positional_or_keyword', 'keyword_only'] | Noner0  zcore_schema.ArgumentsParameter)rÇ  r   r0  re  )r0  re  )rß  r   r0  re  )r  r   r0  re  )rß  r   r0  zcore_schema.GeneratorSchema)rö  r   r0  re  )r	  ztype[StandardDataclass]r¡  ztype[StandardDataclass] | Noner0  re  )r(  ÚValidateCallSupportedTypesr0  zcore_schema.CallSchema)r7  ztyping.TypeVarr0  re  )rÎ  zDecorator[ComputedFieldInfo]r²  z2dict[str, Decorator[FieldSerializerDecoratorInfo]]r0  zcore_schema.ComputedField)rÛ  r   r0  re  )rp  r   r   rn  r0  ztuple[Any, list[Any]] | None)r?  r   r   z	list[Any]rq  z"Callable[[CoreSchema], CoreSchema]r0  r+   )r¯   re  r&  r   r0  re  )rV  r=   rx  r   rR  zlist[GetJsonSchemaFunction]r0  rx   )r¯   re  rh  z-list[Decorator[FieldSerializerDecoratorInfo]]r0  re  )r¯   re  rh  z1Iterable[Decorator[ModelSerializerDecoratorInfo]]r0  re  )Mr7  rz  r{  r4  r  rï   ró   Úpropertyrù   rü   rÿ   r  r
  r  r  r@  rc  rj  rl  rq  rw  Ú	Exceptionr|  r€  r~  r‹  r  rÑ  rÔ  rÖ  r�  rí  r(   r¼  rý  r   rŽ  r  r;  rQ  rÃ  r]  Ústaticmethodrf  rj  rm  r¿  rB  r   r%  r&  r(  r   r¹  r·  r  r!  r7  rÙ  rC  r  rG  r-  r/  r:  r4  r1  rÄ  r  r<  r=  rY  r_  rU  r‚  rÆ  Ú__classcell__)rÒ   s   @rš   rà   rà   @  s£  ø„ Ùfð€Ið *.Ø.2ð	#à%ð#ð 'ð#ð ,ð	#ð
 
ó#õ
ð ò/ó ð/ð ò1ó ð1ð ò<ó ð<ó
IókóHóNóFóP
óB
ó"
2ó	
ðØ ðØ1Kðà	óô$˜9ô óó	
ó	/ð -1ð-àð-ð &*ð-ð 
 ó	-ó^aJóF	óó@óDð, Úió ØiàÚWó ØWôóó ó$ó2m.ó^..ðl ñ
àð
ð ð
ð #ð	
ð ð
ð 
$ó
ð&
àð
ð ð
ð #ð	
ð
 
 ó
ð"
àð
ð ð
ð #ð	
ð
 
$ó
ð* ð/[Ø>ð/[ØLUð/[Øcfð/[à	ò/[ó ð/[ðb ð(\Ø>ð(\à.ð(\ð !ò(\ó ð(\ðT ð%Ø%ð%Ø3Pð%Ø^að%à	ò%ó ð%ð*a
Øða
Ø%.ða
Ø<Jða
à	óa
óFó6@ó(óhOóT%aðV !—‘Ø[_ð  àð  ð ð  ð ð	  ð
 Yð  ð 
(ó  óD_ó<
ó
ó0dó
>ó@
ó.Móró8

ðWNØ0ðWNØ:XðWNà	óWNórP
ód,ð<0
à'ð0
ð Nð0
ð 
#ó	0
ódð ØðØ%4ðà	%óñD FQð	-uàð-uð ð-uð !Cð	-uð
 
ó-uó^(ðTØ,ðØ8;ðà	óð ?à.ð?ð ð?ð +Fð	?ð
 
&ó?ð,6à&ð6ð Cð6ð 
 ó	6ðp)Ø,ð)Ø;lð)à	÷)rœ   rà   c                ó.   — t        j                  | |«      S r©   )r1   Ú!no_info_before_validator_function©Úfr¯   r*  s      rš   r  r  Ì  s   € ´×0]Ñ0]Ð^_ÐagÔ0hrœ   c                ó.   — t        j                  | |«      S r©   )r1   r<  rz  s      rš   r  r  Í  s   € ¬{×/[Ñ/[Ð\]Ð_eÔ/frœ   c                ó,   — t        j                  | «      S r©   )r1   r`  )r{  rX  rY  s      rš   r  r  Î  s   € ¬K×,XÑ,XÐYZÔ,[rœ   c                ó.   — t        j                  | |«      S r©   )r1   rè  rz  s      rš   r  r  Ï  s   € ¬k×.YÑ.YÐZ[Ð]cÔ.drœ   c                ó2   — t        j                  | ||¬«      S ©N)r»   )r1   Ú#with_info_before_validator_function©r{  r¯   r»   s      rš   r  r  Ð  s   € ¼;×;jÑ;jØ	ˆ6˜jõ<rœ   c                ó2   — t        j                  | ||¬«      S r€  )r1   Ú"with_info_after_validator_functionr‚  s      rš   r  r  Ó  s   € ¼+×:hÑ:hØ	ˆ6˜jõ;rœ   c                ó0   — t        j                  | |¬«      S r€  )r1   râ  )r{  r*  r»   s      rš   r  r  Ö  s   € ´[×5cÑ5cØ	�jõ6rœ   c                ó2   — t        j                  | ||¬«      S r€  )r1   Ú!with_info_wrap_validator_functionr‚  s      rš   r  r  Ù  s   € ¼×9fÑ9fØ	ˆ6˜jõ:rœ   ))r�   úno-info)r�   rˆ  )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ˆ  )rj   r@  r—   rM  rŠ  )r¯   r³  r»   Ú	validatorrS  Úval_types         rš   r·   r·   á  s`   € ó"  ˆ	Ü$ Y§^¡^°Y·^±^×5HÑ5HÓIˆÙ"*‘;°	ˆä# Y§^¡^×%8Ñ%8¸(Ð$CÑDÀYÇ^Á^ÐU[Ð]gÓh‰ð	  ð
 €Mrœ   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)r—   rR  )r³  rŒ  s     rš   r~  r~  ú  s#   € ó  ˆ	Ø�>‰>× Ó Ùð  ð rœ   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�   r®  r’   )r(  r¯   r�   )rã  r—   rM  rj   r@  r1   r‡  rè  r�  ry  r„  r<  )r¯   r³  rM  r%  rŒ  rS  s         rš   rÀ  rÀ  
	  s\  € ð& —j‘j ¨Ó-€CÜˆ	Ø�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’ð+  ñ, Øˆˆu‰Ø€Mrœ   c                ó  — | j                   r@t        j                  || j                   t        | 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_factoryÚdefault_factory_takes_datar  )r³  r  )r‘  r1   Úwith_default_schemarm   r  r³  r/   )rO  r¯   s     rš   r�  r�  9	  s�   € ð ×!Ò!Ü×.Ñ.ØØ&×6Ñ6Ü'DÀZ×E_ÑE_Ó'`Ø'×8Ñ8ô	
ð 	
ð 
×	Ñ	Ô#4Ñ	4Ü×.Ñ.Ø˜J×.Ñ.À×A\ÑA\ô
ð 	
ð ˆrœ   c                óf  — t        | dd«      }t        | d«      r]t        «       }|duxr% |j                  j                  |t        |dd«      fv}|s&t        | dd«      }t        d|rd|› d�nd	› d
�d¬«      ‚t        | d«      r+t        j                  | «      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!  r7  zjThe `__modify_schema__` method is not supported in Pydantic v2. Use `__get_pydantic_json_schema__` insteadz in class `Ú`r¾   rž   zcustom-json-schemarŸ   Ú
__origin__)
rÑ   rß  rs   r•  r!  rE   rS   r  r�  r˜  )rÖ   r¯   Újs_modify_functionr~   Úhas_custom_v2_modify_js_funcÚcls_names         rš   r�  r�  R	  sá   € ä  Ð%CÀTÓJÐäˆrÐ&Ô'Ü,Ó.ˆ	ð  dÐ*ò WØ×6Ñ6×?Ñ?Ø&¬Ð0BÀJÐPTÓ(UÐVðWð 	%ñ ,Ü˜r :¨tÓ4ˆHÜ#ð=ÙZb¸{È8È*ÐTUÑ=VÐhjÐ<kÐklðnà)ôð ô ˆr�<Ô ¬×)CÑ)CÀBÔ)GÜ0°·±ÀÓGÐGàÐ!ØàÐrœ   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)rr  re  r¯   ú4str | list[str | int] | list[list[str | int]] | NonerJ  r‚  rK  úbool | NonerI  rS  zdict[str, Any]r&  N)r7  rz  r{  rš  rÛ   rœ   rš   rr  rr  q	  s&   … Ø"Ó"ØJÓJØ#Ó#Ø&Ó&ØÓØÔrœ   rr  )rJ  rK  rI  rS  r&  c               ó   — | |||||dœS )N©r¯   rJ  rK  rI  rS  r&  rÛ   r   s         rš   r„  r„  z	  s    € ð Ø,Ø2Ø!6ØØñð rœ   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    rš   rï   z_Definitions.__init__�	  s   € Ü!›eˆŒ	Ø>@ˆÕrœ   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)rZ   r£  rƒ  r1   r„  ÚaddÚdiscard)rë   rÖ   r%  s      rš   r¯  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"Nrm  )rÖ   r   r0  z3Iterator[tuple[str, None] | tuple[str, CoreSchema]])r7  rz  r{  r4  rï   r   r¯  rÛ   rœ   rš   rê   rê   �	  s   „ Ù4óAð ò'ó ñ'rœ   rê   c                óZ   — | d   dk(  r|j                  | d   d «      S | d   dk(  r| d   S | S )Nr­   rX  r  rƒ  r¯   rþ  )r¯   rƒ  s     rš   r�  r�  ´	  sA   € Øˆf�~Ð)Ò)Ø�‰˜v lÑ3°TÓ:Ð:Ø	�‰˜=Ò	(Ø�hÑÐàˆrœ   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    rš   rï   z_FieldNameStack.__init__À	  s	   € Ø!#ˆ�rœ   c              #  ó~   K  — | j                   j                  |«       d –— | j                   j                  «        y ­wr©   ©rª  rˆ  rã  )rë   r»   s     rš   r¸  z_FieldNameStack.pushÃ	  s)   è ø€ à�‰×Ñ˜:Ô&ÛØ�‰�‰Õùó   ‚;=c                ó:   — | j                   r| j                   d   S y ©NrÍ   r©  rø   s    rš   r¶   z_FieldNameStack.getÉ	  ó   € Ø�;Š;Ø—;‘;˜r‘?Ð"àrœ   Nrm  )r»   r  r0  úIterator[None])r0  r‚  ©r7  rz  r{  r  rï   r   r¸  r¶   rÛ   rœ   rš   rè   rè   ½	  s%   „ Ø€Ió$ð òó ðô
rœ   rè   c                  ó2   — e Zd ZdZdd„Zedd„«       Zdd„Zy)	ré   r©  c                ó   — g | _         y r©   r©  rø   s    rš   rï   z_ModelTypeStack.__init__Ó	  s	   € Ø"$ˆ�rœ   c              #  ó~   K  — | j                   j                  |«       d –— | j                   j                  «        y ­wr©   r­  )rë   Útype_objs     rš   r¸  z_ModelTypeStack.pushÖ	  s)   è ø€ à�‰×Ñ˜8Ô$ÛØ�‰�‰Õùr®  c                ó:   — | j                   r| j                   d   S y r°  r©  rø   s    rš   r¶   z_ModelTypeStack.getÜ	  r±  rœ   Nrm  )r·  r­   r0  r²  )r0  ztype | Noner³  rÛ   rœ   rš   ré   ré   Ð	  s%   „ Ø€Ió%ð òó ðô
rœ   ré   )r—   ÚFieldDecoratorInfor˜   r  r0  rÃ   )r¥   zIterable[AnyFieldDecorator]r–   zIterable[str]r0  rl  )rª   z+Iterable[Decorator[FieldDecoratorInfoType]]r˜   r  r0  z'list[Decorator[FieldDecoratorInfoType]])r¯   re  rº   z'list[Decorator[ValidatorDecoratorInfo]]r»   r‚  r0  re  )r—   rq  r0  zAtuple[JsonDict | None, JsonDict | JsonSchemaExtraCallable | None])rÕ   zJsonEncoders | NonerÖ   r   r¯   r+   r0  r+   )rÜ   r   rÝ   r   r0  r   )r¯   re  r³  z�Iterable[Decorator[RootValidatorDecoratorInfo]] | Iterable[Decorator[ValidatorDecoratorInfo]] | Iterable[Decorator[FieldValidatorDecoratorInfo]]r»   r‚  r0  re  )r³  z+Iterable[Decorator[ValidatorDecoratorInfo]]r0  rÃ   )r¯   re  r³  z0Iterable[Decorator[ModelValidatorDecoratorInfo]]rM  z Literal['inner', 'outer', 'all']r0  re  )rO  r|   r¯   re  r0  re  )rÖ   r   r¯   r+   r0  zGetJsonSchemaFunction | None)r¯   re  rJ  r�  rK  r‚  rI  rž  rS  rž  r&  r   r0  rr  )r¯   r+   rƒ  zdict[str, CoreSchema]r0  zCoreSchema | None)ðr4  Ú
__future__r   Ú_annotationsÚcollections.abcrD  r8  r  r5  ÚosÚpathlibr+  rø  r0  rÓ   Ú
contextlibr   r   r   Údecimalr   Úenumr   Ú	fractionsr	   Ú	functoolsr
   r   r   r   Ú	ipaddressr   r   r   r   r   r   Ú	itertoolsr   Úoperatorr   rú  r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   Úuuidr)   r*   Útyping_extensionsÚpydantic_corer+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   Úaliasesr:   r;   r<   Úannotated_handlersr=   r>   rª  r?   r@   rA   rB   ÚerrorsrC   rD   rE   Úfunctional_validatorsrF   rG   rH   rI   rJ   r  rK   ÚversionrL   rM   r¾   rO   rP   rQ   rR   rS   Ú_configrT   rU   Ú_core_metadatarV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   Ú_docs_extractionrk   rµ  rl   rm   Ú_forward_refrn   Ú	_genericsro   rp   rq   rr   Ú_import_utilsrs   rt   Ú_mock_val_serru   Ú_namespace_utilsrv   rw   Ú_schema_generation_sharedrx   Ú_utilsry   rz   r–   r{   r|   Úmainr~   r   Ú_dataclassesr€   r�   rù  r¥  r¹  r„   ÚAnyFieldDecoratorÚModifyCoreSchemaWrapHandlerÚGetCoreSchemaFunctionr°   ÚTupler†   rš  r1  ÚListrE  ÚMutableSequencer‡   r¡   ÚSetÚ
MutableSetrˆ   Ú	frozensetÚ	FrozenSetr‰   r³   rŠ   r‹   rä  rŒ   ÚPathLikeÚPathÚPurePathÚ	PosixPathÚPurePosixPathÚPureWindowsPathr�   ÚMutableMappingÚOrderedDictÚDefaultDictÚdefaultdictÚCounterrL  ÚdequeÚDequerŽ   rs  r3  r“   r›   r§   r«   rµ   rÉ   ÚJsonEncodersrÙ   rÞ   rà   rŠ  r·   r~  rÀ  r�  r�  rr  r„  rê   r�  rè   ré   rÛ   rœ   rš   Ú<module>ró     s]  ðÚ 3å 2ã Û Û Û Û 	Û Û 	Û 
Û Û Ý %ß Ý Ý Ý Ý ß 8Ñ 8ß f× fÝ Ý ß ^Õ ^÷÷ ÷ ÷ õ  Ý ã ÷	÷ 	ó 	÷ d× cç =Ñ =ß Kß OÓ Oß bÑ bß wÕ wÝ )Ý #Ý 0ß fÕ fß 6Ý 0÷	÷ 	ó 	÷÷ ÷ ó õ :ß LÝ .ß tÓ tß MÝ )ß 9Ý Cß 6áß5Ý Ý%Ý/Ý@à×&Ò&¨'Ñ1Ð àÐ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Ø §¡Ð,€
ˆJÓ ,Ø# ]°KÀÈmÐ]hÐi€ˆ*Ó iØ$Ÿošo¨{¯ª×/GÒ/GÐH€�
Ó Hà‡K‚KØ‡L‚LØ×ÒØ×ÒØ×ÒØ×Òð€
ˆJó ð ‡N�NØ
×ÒØ‡O‚O×ÑØ‡O‚O×"Ò"Ø×ÒØ×!Ò!Ø
×ÒØ×ÒØ×ÒØ
‡N‚Nð€ð '×,Ò,¨f¯lªlÐ;€ˆZÓ ;ð #ØØØØØØðñÐ ñ !)Ð)CÓ DÐ ð ¨À.ÐZgÑhð ð ó ið
Ø
ðàðð 
óó*ð6nØDðnØMPðnà,ónð"Ø"ð"àAð"ð ð"ð ó	"ðJ
AØ
'ð
AàFó
Að �D˜‘I˜{Ð*Ñ+€ðØ&ðØ,/ðØ9CðàóóD%÷Eñ EñX< iÙfÙ[Ùdñññññð ð ó ð2Ø"ðð7ðð
 ðð óó2ð ,Ø"ð,à@ð,ð +ð,ð ó	,ó^ó2ô>�9ô ð NRØ&*Ø)-ØØñØ"ðð Kðð $ð	ð
 'ðð ðð ðð ó÷&$'ñ $'óN÷ñ ÷&ò rœ   