
    F j#q                   z   % S r SSKJr  SSKrSSKrSSKJrJrJ	r	  SSK
JrJ
r
JrJr  SSKJr  SSKJr  SSKJrJrJrJrJr  SS	KJrJr  \R6                  S
:  a  SSKJr  OSSKJr  \R6                  S:  a  SSKJrJrJr  O
SSKJrJrJr  \(       a  SSK J!r!  O SSK J!r!  \S   r$ " S S\SS9r%Sr&S\'S'   \" SSSS9r( " S S\\(   5      r) " S S\)\(   \5      r* " S S \\(   5      r+\S!   r, " S" S#\SS9r-GSGS$ jr.\\/\4   r/\\\)\   /\4   r0\\\/\4   r1\\\\*\   /\4   r2\\/\0\1\24   r3\S%   r4  " S& S'\SS9r5SSSS(S).           GSHS* jjr6 " S+ S,\5      r7\\\7/\4   r8\\\7\)\   /\4   r9\\\\7/\4   r:\\\\7\*\   /\4   r;\\8\9\:\;4   r< " S- S.\SS9r=SSSSS(S/.             GSIS0 jjr> " S1 S2\SS9r?S3S4.GSJS5 jjr@ " S6 S7\SS9rAS3S4.GSKS8 jjrB " S9 S:\SS9rCGSLS; jrD\\-\5\=\?\A\C4   rE " S< S=\SS9rFGSMGSNS> jjrG " S? S@\SS9rHSSSSA.           GSOSB jjrI " SC SD\SS9rJSSSSE.       GSPSF jjrK " SG SH\SS9rLSSSSE.       GSQSI jjrM " SJ SK\SS9rN    GSR         GSSSL jjrO " SM SN\SS9rPSSSSSSSSSSO.	                   GSTSP jjrQ " SQ SR\SS9rRSSSSSSSSSSSS.
                     GSUST jjrS " SU SV\SS9rTSSSSSSSSSSSSSW.                         GSVSX jjrU " SY SZ\SS9rVSSSSS[.         GSWS\ jjrW " S] S^\SS9rXSSSSSSSSSSSSS_.                         GSXS` jjrY " Sa Sb\SS9rZSSSSSSSc.             GSYSd jjr[ " Se Sf\SS9r\SSSSSSSSSSSg.
                     GSZSh jjr] " Si Sj\SS9r^SSSSSSSkSSSSl.
                     GS[Sm jjr_ " Sn So\SS9r`SSSSSSSSSkSSSSp.                         GS\Sq jjra " Sr Ss\SS9rbSSSSSSkSSSSt.	                   GS]Su jjrc " Sv Sw\SS9rdSSSSE.         GS^Sx jjre " Sy Sz\SS9rfSSSSSSS{.                 GS_S| jjrg " S} S~\SS9rh  GSM     GS`S jjri\S   rj " S S\SS9rkSSSSS.           GSaS jjrl " S S\SS9rmSSSSS.           GSbS jjrn " S S\SS9roSSSSE.       GScS jjrp " S S\SS9rqSSSSSS.           GSdS jjrr " S S\SS9rsSSS.GSeS jjrt\\s\E4   ru " S S\SS9rv GSfSSSSSSSS.                 GSgS jjjrwSSSSSS.             GShS jjrx GSfSSSSSSS.               GSiS jjjry " S S\SS9rzSSSSSSSSS.                   GSjS jjr{ " S S\SS9r| GSfSSSSSSSS.                 GSkS jjjr} " S S\SS9r~ GSfSSSSSSSS.                 GSlS jjjr " S S\SS9r GSfSSSSSS.             GSmS jjjr\\\\4      r " S S\SS9rSSS.GSnS jjr\\\E4   r " S S\SS9r  GSMSSSSSSSS.                   GSoS jjjr\\/\4   r " S S\5      r\\\+\   /\4   r " S S\SS9r\\\4   r " S S\SS9r " S S\SS9rSSSSS.             GSpS jjrSSSSSS.               GSqS jjr " S S\SS9rSSSSS.             GSrS jjrSSSSS.             GSsS jjr " S S\5      r\\\/\4   r " S S\5      r\\\\+\   /\4   r " S S\SS9r\\\4   r " S S\SS9rSSSSS.             GStS jjrSSSSSS.               GSuS jjr " S S\SS9rSSSSS.           GSvS jjrSSSSSS.             GSwS jjr " S S\SS9r\!SSSSSSSSS.	                     GSxS jjr " S S\SS9rSSSSS[.           GSyS jjr " S S\SS9rSSSSSSSSS.                   GSzS jjr " S S\SS9rSSSSSSSSS.                     GS{S jjr " S S\SS9rSSSSE.         GS|S jjr " S S\SS9rSSSSS[.             GS}S jjr " S S\SS9rSSSSE.           GS~S jjr " S S\SS9rSSSSSSS.               GSS jjr " S S\SS9rSSSSSSSSSSSS.                         GSS jjr " S S\SS9rSSSSSSS.               GSS jjr " S S\SS9rSSSSSSSSSSS.
                       GSS jjr " S S\SS9rSSSSSSSSSSSSS.                             GSS jjr " S S\SS9rSSSSSSSSSS.	                       GSS jjr " S GS \SS9rSSSSSSGS.                 GSGS jjr " GS GS\SS9rSSSSSSSSSSSGS.                             GSGS jjr " GS GS\SS9rSSGS	.         GSGS
 jjr\GS   rS\'GS'    " GS GS\SS9rSSSSSSSSGS.                   GSGS jjr " GS GS\SS9rSSGS	.         GSGS jjr " GS GS\SS9rSSSSSSGS.               GSGS jjr " GS GS\SS9rSSSSSGS.               GSGS jjr " GS GS\SS9rSSSSSGS.               GSGS jjr " GS  GS!\SS9r GSfSSSSE.         GSGS" jjjr " GS# GS$\SS9rSSSSSSSSSSSGS%.                       GSGS& jjr " GS' GS(\SS9rSSSSSSSSSSSGS%.                       GSGS) jjr " GS* GS+\SS9rGSGS, jr " GS- GS.\SS9r   GS         GSGS/ jjrSr\(       do  \/ \FP\JP\LP\NP\PP\RP\TP\XP\ZP\\P\^P\`P\bP\dP\hP\fP\kP\mP\oP\vP\zP\|P\~P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\P\qP\VP7   rO \GS0   r\GS1   r\GS2   rGSGS3 jrGSGS4 jr\" GS55      GSGS6 j5       r\" GS75      GS8 5       r\" GS95      GSGS: j5       r\" GS;5      GS< 5       r\" GS=5            GSGS> j5       r\" GS?5      GS@ 5       r\" GSA5      GSGSB j5       r\" GSC5      GSD 5       r\+\\\GSE.r\(       a  \+rGSGSF jrg! \" a    \#" 5       r! GNf = f(  ze
This module contains definitions to build schemas which `pydantic_core` can
validate and serialize.
    )annotationsN)	GeneratorHashableMapping)datedatetimetime	timedelta)Decimal)Pattern)TYPE_CHECKINGAnyCallableLiteralUnion)TypeVar
deprecated)      )	TypedDict)r      )ProtocolRequired	TypeAlias)PydanticUndefined)allowforbidignorec                  <   \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S '   S\S!'   S"\S#'   S$\S%'   S\S&'   S\S''   S\S('   S\S)'   S\S*'   S+rg,)-
CoreConfig+   a  
Base class for schema configuration options.

Attributes:
    title: The name of the configuration.
    strict: Whether the configuration should strictly adhere to specified rules.
    extra_fields_behavior: The behavior for handling extra fields.
    typed_dict_total: Whether the TypedDict should be considered total. Default is `True`.
    from_attributes: Whether to use attributes for models, dataclasses, and tagged union keys.
    loc_by_alias: Whether to use the used alias (or first alias for "field required" errors) instead of
        `field_names` to construct error `loc`s. Default is `True`.
    revalidate_instances: Whether instances of models and dataclasses should re-validate. Default is 'never'.
    validate_default: Whether to validate default values during validation. Default is `False`.
    str_max_length: The maximum length for string fields.
    str_min_length: The minimum length for string fields.
    str_strip_whitespace: Whether to strip whitespace from string fields.
    str_to_lower: Whether to convert string fields to lowercase.
    str_to_upper: Whether to convert string fields to uppercase.
    allow_inf_nan: Whether to allow infinity and NaN values for float fields. Default is `True`.
    ser_json_timedelta: The serialization option for `timedelta` values. Default is 'iso8601'.
        Note that if ser_json_temporal is set, then this param will be ignored.
    ser_json_temporal: The serialization option for datetime like values. Default is 'iso8601'.
        The types this covers are datetime, date, time and timedelta.
        If this is set, it will take precedence over ser_json_timedelta
    ser_json_bytes: The serialization option for `bytes` values. Default is 'utf8'.
    ser_json_inf_nan: The serialization option for infinity and NaN values
        in float fields. Default is 'null'.
    val_json_bytes: The validation option for `bytes` values, complementing ser_json_bytes. Default is 'utf8'.
    hide_input_in_errors: Whether to hide input data from `ValidationError` representation.
    validation_error_cause: Whether to add user-python excs to the __cause__ of a ValidationError.
        Requires exceptiongroup backport pre Python 3.11.
    coerce_numbers_to_str: Whether to enable coercion of any `Number` type to `str` (not applicable in `strict` mode).
    regex_engine: The regex engine to use for regex pattern validation. Default is 'rust-regex'. See `StringSchema`.
    cache_strings: Whether to cache strings. Default is `True`, `True` or `'all'` is required to cache strings
        during general validation since validators don't know if they're in a key or a value.
    validate_by_alias: Whether to use the field's alias when validating against the provided input data. Default is `True`.
    validate_by_name: Whether to use the field's name when validating against the provided input data. Default is `False`. Replacement for `populate_by_name`.
    serialize_by_alias: Whether to serialize by alias. Default is `False`, expected to change to `True` in V3.
    polymorphic_serialization: Whether to enable polymorphic serialization for models and dataclasses. Default is `False`.
    url_preserve_empty_path: Whether to preserve empty URL paths when validating values for a URL type. Defaults to `False`.
strtitleboolstrictExtraBehaviorextra_fields_behaviortyped_dict_totalfrom_attributesloc_by_alias0Literal['always', 'never', 'subclass-instances']revalidate_instancesvalidate_defaultintstr_max_lengthstr_min_lengthstr_strip_whitespacestr_to_lowerstr_to_upperallow_inf_nanzLiteral['iso8601', 'float']ser_json_timedeltaz-Literal['iso8601', 'seconds', 'milliseconds']ser_json_temporalz Literal['utf8', 'base64', 'hex']ser_json_bytesz'Literal['null', 'constants', 'strings']ser_json_inf_nanval_json_byteshide_input_in_errorsvalidation_error_causecoerce_numbers_to_str"Literal['rust-regex', 'python-re']regex_enginez+Union[bool, Literal['all', 'keys', 'none']]cache_stringsvalidate_by_aliasvalidate_by_nameserialize_by_aliaspolymorphic_serializationurl_preserve_empty_path N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__rE       Cc:\Py\emelo-reg\venv\Lib\site-packages\pydantic_core/core_schema.pyr    r    +   s    (T JL(( JJ 33DD44==44  44>>##!!rM   r    F)totalz2set[int | str] | dict[int | str, IncExCall] | Noner   	IncExCallContextTTz
Any | None)	covariantdefaultc                  &   \ rS rSrSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       r\SS
 j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       rSS jrSS jrSS jrSrg)SerializationInfo   z%Extra data used during serialization.c                    g)z0The `include` argument set during serialization.NrE   selfs    rN   includeSerializationInfo.include        	rM   c                    g)z0The `exclude` argument set during serialization.NrE   rX   s    rN   excludeSerializationInfo.exclude   r\   rM   c                    g)z"The current serialization context.NrE   rX   s    rN   contextSerializationInfo.context   r\   rM   c                    g)z0The serialization mode set during serialization.NrE   rX   s    rN   modeSerializationInfo.mode   r\   rM   c                    g)z1The `by_alias` argument set during serialization.NrE   rX   s    rN   by_aliasSerializationInfo.by_alias   r\   rM   c                    g)z6The `exclude_unset` argument set during serialization.NrE   rX   s    rN   exclude_unsetSerializationInfo.exclude_unset   r\   rM   c                    g)z9The `exclude_defaults` argument set during serialization.NrE   rX   s    rN   exclude_defaults"SerializationInfo.exclude_defaults   r\   rM   c                    g)z5The `exclude_none` argument set during serialization.NrE   rX   s    rN   exclude_noneSerializationInfo.exclude_none   r\   rM   c                    g)z@The `exclude_computed_fields` argument set during serialization.NrE   rX   s    rN   exclude_computed_fields)SerializationInfo.exclude_computed_fields   r\   rM   c                    g)z9The `serialize_as_any` argument set during serialization.NrE   rX   s    rN   serialize_as_any"SerializationInfo.serialize_as_any   r\   rM   c                    g)zJThe `polymorphic_serialization` argument set during serialization, if any.NrE   rX   s    rN   rC   +SerializationInfo.polymorphic_serialization   r\   rM   c                    g)z3The `round_trip` argument set during serialization.NrE   rX   s    rN   
round_tripSerializationInfo.round_trip   r\   rM   c                    g NrE   rX   s    rN   mode_is_jsonSerializationInfo.mode_is_json   s    CrM   c                    g r~   rE   rX   s    rN   __str__SerializationInfo.__str__   s    crM   c                    g r~   rE   rX   s    rN   __repr__SerializationInfo.__repr__   s    srM   rE   N)returnrP   r   rQ   )r   zLiteral['python', 'json'] | str)r   r$   )r   bool | Noner   r"   )rF   rG   rH   rI   rJ   propertyrZ   r^   ra   rd   rg   rj   rm   rp   rs   rv   rC   r{   r   r   r   rL   rE   rM   rN   rU   rU      s    /                        (!"rM   rU   c                  ,    \ rS rSrSr\SS j5       rSrg)FieldSerializationInfo   z+Extra data used during field serialization.c                    g)z/The name of the current field being serialized.NrE   rX   s    rN   
field_name!FieldSerializationInfo.field_name   r\   rM   rE   Nr   )rF   rG   rH   rI   rJ   r   r   rL   rE   rM   rN   r   r      s    5 rM   r   c                  |    \ rS rSrSr\S
S j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
Srg	)ValidationInfo   z"Extra data used during validation.c                    g)zThe current validation context.NrE   rX   s    rN   ra   ValidationInfo.context   r\   rM   c                    g)z/The CoreConfig that applies to this validation.NrE   rX   s    rN   configValidationInfo.config   r\   rM   c                    g)z3The type of input data we are currently validating.NrE   rX   s    rN   rd   ValidationInfo.mode   r\   rM   c                    g)z(The data being validated for this model.NrE   rX   s    rN   dataValidationInfo.data   r\   rM   c                    g)z_
The name of the current field being validated if this validator is
attached to a model field.
NrE   rX   s    rN   r   ValidationInfo.field_name   s     	rM   rE   Nr   )r   CoreConfig | None)r   zLiteral['python', 'json'])r   dict[str, Any])r   
str | None)rF   rG   rH   rI   rJ   r   ra   r   rd   r   r   rL   rE   rM   rN   r   r      sg    ,         rM   r   )noner.   r$   floatr"   bytes	bytearraylisttupleset	frozenset	generatordictr   r   r	   r
   urlmulti-host-urljsonuuidanyc                       \ rS rSr% S\S'   Srg)SimpleSerSchemai  z$Required[ExpectedSerializationTypes]typerE   NrF   rG   rH   rI   rK   rL   rE   rM   rN   r   r     s    
..rM   r   c                    [        U S9$ )zk
Returns a schema for serialization with a custom type.

Args:
    type: The type to use for serialization
r   )r   r   s    rN   simple_ser_schemar     s     %%rM   )alwayszunless-noner   json-unless-nonec                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   Srg) PlainSerializerFunctionSerSchemai6  #Required[Literal['function-plain']]r   zRequired[SerializerFunction]functionr$   is_field_serializerinfo_arg
CoreSchemareturn_schemaWhenUsed	when_usedrE   Nr   rE   rM   rN   r   r   6  s%    
--**NrM   r   r   )r   r   r   r   c          	     .    US:X  a  Sn[        SU UUUUS9$ )a  
Returns a schema for serialization with a function, can be either a "general" or "field" function.

Args:
    function: The function to use for serialization
    is_field_serializer: Whether the serializer is for a field, e.g. takes `model` as the first argument,
        and `info` includes `field_name`
    info_arg: Whether the function takes an `info` argument
    return_schema: Schema to use for serializing return value
    when_used: When the function should be called
r   Nfunction-plain)r   r   r   r   r   r   _dict_not_none)r   r   r   r   r   s        rN   $plain_serializer_function_ser_schemar   ?  s0    & H	/# rM   c                  "    \ rS rSrSSS jjrSrg)SerializerFunctionWrapHandleri_  Nc                   g r~   rE   )rY   input_value	index_keys      rN   __call__&SerializerFunctionWrapHandler.__call__`  s    X[rM   rE   r~   )r   r   r   zint | str | Noner   r   rF   rG   rH   rI   r   rL   rE   rM   rN   r   r   _  s    [[rM   r   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   Srg)WrapSerializerFunctionSerSchemais  "Required[Literal['function-wrap']]r   z Required[WrapSerializerFunction]r   r$   r   r   r   schemar   r   r   rE   Nr   rE   rM   rN   r   r   s  s+    
,,..NrM   r   )r   r   r   r   r   c          
     0    US:X  a  Sn[        SU UUUUUS9$ )a  
Returns a schema for serialization with a wrap function, can be either a "general" or "field" function.

Args:
    function: The function to use for serialization
    is_field_serializer: Whether the serializer is for a field, e.g. takes `model` as the first argument,
        and `info` includes `field_name`
    info_arg: Whether the function takes an `info` argument
    schema: The schema to use for the inner serialization
    return_schema: Schema to use for serializing return value
    when_used: When the function should be called
r   Nfunction-wrap)r   r   r   r   r   r   r   r   )r   r   r   r   r   r   s         rN   #wrap_serializer_function_ser_schemar   }  s3    * H	/# rM   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
FormatSerSchemai  zRequired[Literal['format']]r   Required[str]formatting_stringr   r   rE   Nr   rE   rM   rN   r   r     s    
%%$$rM   r   r   )r   c               &    US:X  a  Sn[        SXS9$ )z
Returns a schema for serialization using python's `format` method.

Args:
    formatting_string: String defining the format to use
    when_used: Same meaning as for [general_function_plain_ser_schema], but with a different default
r   Nformat)r   r   r   r   )r   r   s     rN   format_ser_schemar     s      &&	x;LbbrM   c                  *    \ rS rSr% S\S'   S\S'   Srg)ToStringSerSchemai  zRequired[Literal['to-string']]r   r   r   rE   Nr   rE   rM   rN   r   r     s    
((rM   r   c                ,    [        SS9nU S:w  a  XS'   U$ )z
Returns a schema for serialization using python's `str()` / `__str__` method.

Args:
    when_used: Same meaning as for [general_function_plain_ser_schema], but with a different default
z	to-stringr   r   r   )r   )r   ss     rN   to_string_ser_schemar     s#     	+A&&"+HrM   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ModelSerSchemai  Required[Literal['model']]r   Required[type[Any]]clsRequired[CoreSchema]r   rE   Nr   rE   rM   rN   r   r     s    
$$	  rM   r   c                    [        SXS9$ )z
Returns a schema for serialization using a model.

Args:
    cls: The expected class type, used to generate warnings if the wrong type is passed
    schema: Internal schema to use to serialize the model dict
model)r   r   r   )r   )r   r   s     rN   model_ser_schemar     s     wC??rM   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)InvalidSchemai  zRequired[Literal['invalid']]r   r"   refr   metadata	SerSchemaserializationrE   Nr   rE   rM   rN   r   r     s    
&&	H rM   r   c                    [        SXS9$ )a  
Returns an invalid schema, used to indicate that a schema is invalid.

Args:
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
invalid)r   r   r   r   )r   r   s     rN   invalid_schemar     s     ycEErM   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)ComputedFieldi  z#Required[Literal['computed-field']]r   r   property_namer   r   r"   aliasCallable[[Any], bool]serialization_exclude_ifr   r   rE   Nr   rE   rM   rN   r   r     s%    
--  ''J33rM   r   )r   r   r   c          	         [        SU UUUUS9$ )a  
ComputedFields are properties of a model or dataclass that are included in serialization.

Args:
    property_name: The name of the property on the model or dataclass
    return_schema: The schema used for the type returned by the computed field
    alias: The name to use in the serialized output
    metadata: Any other information you want to include with the schema, not used by pydantic-core
computed-field)r   r   r   r   r   r   r   )r   r   r   r   r   s        rN   computed_fieldr      s#    " ##!9 rM   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)	AnySchemai  zRequired[Literal['any']]r   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s    
""	HrM   r  r   r   r   c                    [        SXUS9$ )a  
Returns a schema that matches any value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.any_schema()
v = SchemaValidator(schema)
assert v.validate_python(1) == 1
```

Args:
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r   r   r   r   r   r  s      rN   
any_schemar  "  s    & u#P]^^rM   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)
NoneSchemai8  zRequired[Literal['none']]r   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  8  s    
##	HrM   r  c                    [        SXUS9$ )a  
Returns a schema that matches a None value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.none_schema()
v = SchemaValidator(schema)
assert v.validate_python(None) is None
```

Args:
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r  r   r  s      rN   none_schemar
  ?  s    & v3Q^__rM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)
BoolSchemaiU  zRequired[Literal['bool']]r   r$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  U  s    
##L	HrM   r  c                    [        SXX#S9$ )a1  
Returns a schema that matches a bool value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.bool_schema()
v = SchemaValidator(schema)
assert v.validate_python('True') is True
```

Args:
    strict: Whether the value should be a bool or a value that can be converted to a bool
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r$   r   r%   r   r   r   r   r%   r   r   r   s       rN   bool_schemar  ]  s    . vfnnrM   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   Srg)	IntSchemaiw  zRequired[Literal['int']]r   r.   multiple_oflegeltgtr$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  w  s8    
""GGGGL	HrM   r  	r  r  r  r  r  r%   r   r   r   c        	        &    [        SU UUUUUUUUS9
$ )am  
Returns a schema that matches a int value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.int_schema(multiple_of=2, le=6, ge=2)
v = SchemaValidator(schema)
assert v.validate_python('4') == 4
```

Args:
    multiple_of: The value must be a multiple of this number
    le: The value must be less than or equal to this number
    ge: The value must be greater than or equal to this number
    lt: The value must be strictly less than this number
    gt: The value must be strictly greater than this number
    strict: Whether the value should be a int or a value that can be converted to a int
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r.   )
r   r  r  r  r  r  r%   r   r   r   r   r  s	            rN   
int_schemar    s0    D # rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)FloatSchemai  zRequired[Literal['float']]r   r$   r4   r   r  r  r  r  r  r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s>    
$$IIIIL	HrM   r  
r4   r  r  r  r  r  r%   r   r   r   c        
        (    [        SU UUUUUUUUU	S9$ )a  
Returns a schema that matches a float value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.float_schema(le=0.8, ge=0.2)
v = SchemaValidator(schema)
assert v.validate_python('0.5') == 0.5
```

Args:
    allow_inf_nan: Whether to allow inf and nan values
    multiple_of: The value must be a multiple of this number
    le: The value must be less than or equal to this number
    ge: The value must be greater than or equal to this number
    lt: The value must be strictly less than this number
    gt: The value must be strictly greater than this number
    strict: Whether the value should be a float or a value that can be converted to a float
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r4   r  r  r  r  r  r%   r   r   r   r   r  s
             rN   float_schemar    s3    H ## rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)DecimalSchemai  zRequired[Literal['decimal']]r   r$   r4   r   r  r  r  r  r  r.   
max_digitsdecimal_placesr%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r!  r!    sI    
&&KKKKOL	HrM   r!  r4   r  r  r  r  r  r"  r#  r%   r   r   r   c                ,    [        SUUUUUUUU UU	U
US9$ )aN  
Returns a schema that matches a decimal value, e.g.:

```py
from decimal import Decimal
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.decimal_schema(le=0.8, ge=0.2)
v = SchemaValidator(schema)
assert v.validate_python('0.5') == Decimal('0.5')
```

Args:
    allow_inf_nan: Whether to allow inf and nan values
    multiple_of: The value must be a multiple of this number
    le: The value must be less than or equal to this number
    ge: The value must be greater than or equal to this number
    lt: The value must be strictly less than this number
    gt: The value must be strictly greater than this number
    max_digits: The maximum number of decimal digits allowed
    decimal_places: The maximum number of decimal places allowed
    strict: Whether the value should be a float or a value that can be converted to a float
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
decimal)r   r  r  r  r  r"  r#  r  r4   r%   r   r   r   r   r$  s               rN   decimal_schemar'    s9    R %## rM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)ComplexSchemai?  zRequired[Literal['complex']]r   r$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r)  r)  ?  s    
&&L	HrM   r)  r  c                    [        SU UUUS9$ )a  
Returns a schema that matches a complex value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.complex_schema()
v = SchemaValidator(schema)
assert v.validate_python('1+2j') == complex(1, 2)
assert v.validate_python(complex(1, 2)) == complex(1, 2)
```

Args:
    strict: Whether the value should be a complex object instance or a value that can be converted to a complex object
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
complexr  r   r  s       rN   complex_schemar,  G  s     2 # rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S	\S'   S\S'   S	\S'   S	\S'   S\S'   S\S'   S\S'   Srg)StringSchemaii  zRequired[Literal['str']]r   zUnion[str, Pattern[str]]patternr.   
max_length
min_lengthr$   strip_whitespaceto_lowerto_upperr=   r>   r%   r<   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r.  r.  i  sJ    
""%%OONN44L	HrM   r.  r/  r0  r1  r2  r3  r4  r>   r%   r<   r   r   r   c                ,    [        SU UUUUUUUUU	U
US9$ )a  
Returns a schema that matches a string value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.str_schema(max_length=10, min_length=2)
v = SchemaValidator(schema)
assert v.validate_python('hello') == 'hello'
```

Args:
    pattern: A regex pattern that the value must match
    max_length: The value must be at most this length
    min_length: The value must be at least this length
    strip_whitespace: Whether to strip whitespace from the value
    to_lower: Whether to convert the value to lowercase
    to_upper: Whether to convert the value to uppercase
    regex_engine: The regex engine to use for pattern validation. Default is 'rust-regex'.
        - `rust-regex` uses the [`regex`](https://docs.rs/regex) Rust
          crate, which is non-backtracking and therefore more DDoS
          resistant, but does not support all regex features.
        - `python-re` use the [`re`](https://docs.python.org/3/library/re.html) module,
          which supports all regex features, but may be slower.
    strict: Whether the value should be a string or a value that can be converted to a string
    coerce_numbers_to_str: Whether to enable coercion of any `Number` type to `str` (not applicable in `strict` mode).
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r"   )r   r/  r0  r1  r2  r3  r4  r>   r%   r<   r   r   r   r   r5  s               rN   
str_schemar7  y  s9    Z )!3# rM   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   Srg)BytesSchemai  zRequired[Literal['bytes']]r   r.   r0  r1  r$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r9  r9    s(    
$$OOL	HrM   r9  r0  r1  r%   r   r   r   c           
          [        SU UUUUUS9$ )a  
Returns a schema that matches a bytes value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.bytes_schema(max_length=10, min_length=2)
v = SchemaValidator(schema)
assert v.validate_python(b'hello') == b'hello'
```

Args:
    max_length: The value must be at most this length
    min_length: The value must be at least this length
    strict: Whether the value should be a bytes or a value that can be converted to a bytes
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r0  r1  r%   r   r   r   r   r:  s         rN   bytes_schemar<    s&    8 # rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)
DateSchemai  zRequired[Literal['date']]r   r$   r%   r   r  r  r  r  Literal['past', 'future']now_opr.   now_utc_offsetr"   r   r   r   r   r   rE   Nr   rE   rM   rN   r>  r>    s@    
##LHHHH%% 	HrM   r>  
r%   r  r  r  r  r@  rA  r   r   r   c        
        (    [        SU UUUUUUUUU	S9$ )a0  
Returns a schema that matches a date value, e.g.:

```py
from datetime import date
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.date_schema(le=date(2020, 1, 1), ge=date(2019, 1, 1))
v = SchemaValidator(schema)
assert v.validate_python(date(2019, 6, 1)) == date(2019, 6, 1)
```

Args:
    strict: Whether the value should be a date or a value that can be converted to a date
    le: The value must be less than or equal to this date
    ge: The value must be greater than or equal to this date
    lt: The value must be strictly less than this date
    gt: The value must be strictly greater than this date
    now_op: The value must be in the past or future relative to the current date
    now_utc_offset: The value must be in the past or future relative to the current date with this utc offset
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r%   r  r  r  r  r@  rA  r   r   r   r   rB  s
             rN   date_schemarD    s3    J %# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)
TimeSchemai,  zRequired[Literal['time']]r   r$   r%   r	   r  r  r  r  %Union[Literal['aware', 'naive'], int]tz_constraintLiteral['truncate', 'error']microseconds_precisionr"   r   r   r   r   r   rE   Nr   rE   rM   rN   rF  rF  ,  s>    
##LHHHH8888	HrM   rF  truncate
r%   r  r  r  r  rH  rJ  r   r   r   c        
        (    [        SU UUUUUUUUU	S9$ )a8  
Returns a schema that matches a time value, e.g.:

```py
from datetime import time
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.time_schema(le=time(12, 0, 0), ge=time(6, 0, 0))
v = SchemaValidator(schema)
assert v.validate_python(time(9, 0, 0)) == time(9, 0, 0)
```

Args:
    strict: Whether the value should be a time or a value that can be converted to a time
    le: The value must be less than or equal to this time
    ge: The value must be greater than or equal to this time
    lt: The value must be strictly less than this time
    gt: The value must be strictly greater than this time
    tz_constraint: The value must be timezone aware or naive, or an int to indicate required tz offset
    microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r	   )r   r%   r  r  r  r  rH  rJ  r   r   r   r   rL  s
             rN   time_schemarN  :  s3    J #5# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)DatetimeSchemain  zRequired[Literal['datetime']]r   r$   r%   r   r  r  r  r  r?  r@  rG  rH  r.   rA  rI  rJ  r"   r   r   r   r   r   rE   Nr   rE   rM   rN   rP  rP  n  sL    
''LLLLL%%88 88	HrM   rP  r%   r  r  r  r  r@  rH  rA  rJ  r   r   r   c                ,    [        SU UUUUUUUUU	U
US9$ )ad  
Returns a schema that matches a datetime value, e.g.:

```py
from datetime import datetime
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.datetime_schema()
v = SchemaValidator(schema)
now = datetime.now()
assert v.validate_python(str(now)) == now
```

Args:
    strict: Whether the value should be a datetime or a value that can be converted to a datetime
    le: The value must be less than or equal to this datetime
    ge: The value must be greater than or equal to this datetime
    lt: The value must be strictly less than this datetime
    gt: The value must be strictly greater than this datetime
    now_op: The value must be in the past or future relative to the current datetime
    tz_constraint: The value must be timezone aware or naive, or an int to indicate required tz offset
        TODO: use of a tzinfo where offset changes based on the datetime is not yet supported
    now_utc_offset: The value must be in the past or future relative to the current datetime with this utc offset
    microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r%   r  r  r  r  r@  rH  rA  rJ  r   r   r   r   rQ  s               rN   datetime_schemarS    s9    V #%5# rM   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   Srg)TimedeltaSchemai  zRequired[Literal['timedelta']]r   r$   r%   r
   r  r  r  r  rI  rJ  r"   r   r   r   r   r   rE   Nr   rE   rM   rN   rU  rU    s8    
((LMMMM88	HrM   rU  	r%   r  r  r  r  rJ  r   r   r   c        	        &    [        SU UUUUUUUUS9
$ )a  
Returns a schema that matches a timedelta value, e.g.:

```py
from datetime import timedelta
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.timedelta_schema(le=timedelta(days=1), ge=timedelta(days=0))
v = SchemaValidator(schema)
assert v.validate_python(timedelta(hours=12)) == timedelta(hours=12)
```

Args:
    strict: Whether the value should be a timedelta or a value that can be converted to a timedelta
    le: The value must be less than or equal to this timedelta
    ge: The value must be greater than or equal to this timedelta
    lt: The value must be strictly less than this timedelta
    gt: The value must be strictly greater than this timedelta
    microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r
   )
r   r%   r  r  r  r  rJ  r   r   r   r   rV  s	            rN   timedelta_schemarX    s0    F 5# rM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)LiteralSchemai  zRequired[Literal['literal']]r   Required[list[Any]]expectedr"   r   r   r   r   r   rE   Nr   rE   rM   rN   rZ  rZ    s    
&&!!	HrM   rZ  c                   [        SXX#S9$ )a'  
Returns a schema that matches a literal value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.literal_schema(['hello', 'world'])
v = SchemaValidator(schema)
assert v.validate_python('hello') == 'hello'
```

Args:
    expected: The value must be one of these values
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
literal)r   r\  r   r   r   r   )r\  r   r   r   s       rN   literal_schemar_    s    0 y8xuurM   c                  p    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   Srg)
EnumSchemai  zRequired[Literal['enum']]r   Required[Any]r   r[  memberszLiteral['str', 'int', 'float']sub_typezCallable[[Any], Any]missingr$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   ra  ra    s6    
##	  ,,!!L	HrM   ra  )rd  re  r%   r   r   r   c               $    [        SU UUUUUUUS9	$ )a  
Returns a schema that matches an enum value, e.g.:

```py
from enum import Enum
from pydantic_core import SchemaValidator, core_schema

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

schema = core_schema.enum_schema(Color, list(Color.__members__.values()))
v = SchemaValidator(schema)
assert v.validate_python(2) is Color.GREEN
```

Args:
    cls: The enum class
    members: The members of the enum, generally `list(MyEnum.__members__.values())`
    sub_type: The type of the enum, either 'str' or 'int' or None for plain enums
    missing: A function to use when the value is not found in the enum, from `_missing_`
    strict: Whether to use strict mode, defaults to False
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
enum)	r   r   rc  rd  re  r%   r   r   r   r   )r   rc  rd  re  r%   r   r   r   s           rN   enum_schemarh  )  s-    L #
 
rM   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
MissingSentinelSchemai\  z%Required[Literal['missing-sentinel']]r   r   r   r   r   rE   Nr   rE   rM   rN   rj  rj  \  s    
//rM   rj  c                    [        SU US9$ )z,Returns a schema for the `MISSING` sentinel.missing-sentinel)r   r   r   r   )r   r   s     rN   missing_sentinel_schemarm  b  s     # rM   )nullr$   r.   r   r"   r   r   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   Srg)IsInstanceSchemais  z Required[Literal['is-instance']]r   rb  r   r"   cls_reprr   r   r   r   r   rE   Nr   rE   rM   rN   rp  rp  s  s$    
**	M	HrM   rp  )rq  r   r   r   c          	         [        SXX#US9$ )a  
Returns a schema that checks if a value is an instance of a class, equivalent to python's `isinstance` method, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

class A:
    pass

schema = core_schema.is_instance_schema(cls=A)
v = SchemaValidator(schema)
v.validate_python(A())
```

Args:
    cls: The value must be an instance of this class
    cls_repr: If provided this string is used in the validator name instead of `repr(cls)`
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
is-instancer   r   rq  r   r   r   r   r   rq  r   r   r   s        rN   is_instance_schemarv  |  s    : Cbo rM   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   Srg)IsSubclassSchemai  z Required[Literal['is-subclass']]r   r   r   r"   rq  r   r   r   r   r   rE   Nr   rE   rM   rN   rx  rx    s$    
**	M	HrM   rx  c          	         [        SXX#US9$ )a  
Returns a schema that checks if a value is a subtype of a class, equivalent to python's `issubclass` method, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

class A:
    pass

class B(A):
    pass

schema = core_schema.is_subclass_schema(cls=A)
v = SchemaValidator(schema)
v.validate_python(B)
```

Args:
    cls: The value must be a subclass of this class
    cls_repr: If provided this string is used in the validator name instead of `repr(cls)`
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
is-subclassrt  r   ru  s        rN   is_subclass_schemar{    s    @ Cbo rM   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)CallableSchemai  zRequired[Literal['callable']]r   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r}  r}    s    
''	HrM   r}  c                    [        SXUS9$ )a  
Returns a schema that checks if a value is callable, equivalent to python's `callable` method, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.callable_schema()
v = SchemaValidator(schema)
v.validate_python(min)
```

Args:
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
callabler  r   r  s      rN   callable_schemar    s    & zsUbccrM   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)
UuidSchemai  zRequired[Literal['uuid']]r   zLiteral[1, 3, 4, 5, 7]versionr$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s$    
####L	HrM   r  r  r%   r   r   r   c           	         [        SXX#US9$ )Nr   )r   r  r%   r   r   r   r   r  s        rN   uuid_schemar    s     W_l rM   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	IncExSeqSerSchemai  z-Required[Literal['include-exclude-sequence']]r   zset[int]rZ   r^   rE   Nr   rE   rM   rN   r  r    s    
77rM   r  rZ   r^   c                    [        SXS9$ )Nzinclude-exclude-sequencer   rZ   r^   r   r  s     rN   filter_seq_schemar    s    97\\rM   c                  p    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S\S'   S\S'   Srg)
ListSchemai  zRequired[Literal['list']]r   r   items_schemar.   r1  r0  r$   	fail_fastr%   r"   r   r   r   IncExSeqOrElseSerSchemar   rE   Nr   rE   rM   rN   r  r    s3    
##OOOL	H**rM   r  )r1  r0  r  r%   r   r   r   c               $    [        SU UUUUUUUS9	$ )aV  
Returns a schema that matches a list value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.list_schema(core_schema.int_schema(), min_length=0, max_length=10)
v = SchemaValidator(schema)
assert v.validate_python(['4']) == [4]
```

Args:
    items_schema: The value must be a list of items that match this schema
    min_length: The value must be a list with at least this many items
    max_length: The value must be a list with at most this many items
    fail_fast: Stop validation on the first error
    strict: The value must be a list with exactly this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   	r   r  r1  r0  r  r%   r   r   r   r   r  r1  r0  r  r%   r   r   r   s           rN   list_schemar    s-    @ !#
 
rM   )extras_schemar%   r   r   r   TupleSchemac          	     J    Ub  [        U 5      nX/-   n OSn[        U UUUUUS9$ )aE  
Returns a schema that matches a tuple of schemas, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.tuple_positional_schema(
    [core_schema.int_schema(), core_schema.str_schema()]
)
v = SchemaValidator(schema)
assert v.validate_python((1, 'hello')) == (1, 'hello')
```

Args:
    items_schema: The value must be a tuple with items that match these schemas
    extras_schema: The value must be a tuple with items that match this schema
        This was inspired by JSON schema's `prefixItems` and `items` fields.
        In python's `typing.Tuple`, you can't specify a type for "extra" items -- they must all be the same type
        if the length is variable. So this field won't be set from a `typing.Tuple` annotation on a pydantic model.
    strict: The value must be a tuple with exactly this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
N)r  variadic_item_indexr%   r   r   r   )lentuple_schema)r  r  r%   r   r   r   r  s          rN   tuple_positional_schemar  F  sE    B  !,/#o5"!/# rM   )r1  r0  r%   r   r   r   c               F    [        U =(       d
    [        5       /SUUUUUUS9$ )a`  
Returns a schema that matches a tuple of a given schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.tuple_variable_schema(
    items_schema=core_schema.int_schema(), min_length=0, max_length=10
)
v = SchemaValidator(schema)
assert v.validate_python(('1', 2, 3)) == (1, 2, 3)
```

Args:
    items_schema: The value must be a tuple with items that match this schema
    min_length: The value must be a tuple with at least this many items
    max_length: The value must be a tuple with at most this many items
    strict: The value must be a tuple with exactly this many items
    ref: Optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r  r  r1  r0  r%   r   r   r   )r  r  )r  r1  r0  r%   r   r   r   s          rN   tuple_variable_schemar  w  s4    @ "2jl3#	 	rM   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S
\S'   S\S'   S\S'   S\S'   Srg)r  i  zRequired[Literal['tuple']]r   Required[list[CoreSchema]]r  r.   r  r1  r0  r$   r  r%   r"   r   r   r   r  r   rE   Nr   rE   rM   rN   r  r    s9    
$$,,OOOL	H**rM   )r  r1  r0  r  r%   r   r   r   c               &    [        SU UUUUUUUUS9
$ )a_  
Returns a schema that matches a tuple of schemas, with an optional variadic item, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.tuple_schema(
    [core_schema.int_schema(), core_schema.str_schema(), core_schema.float_schema()],
    variadic_item_index=1,
)
v = SchemaValidator(schema)
assert v.validate_python((1, 'hello', 'world', 1.5)) == (1, 'hello', 'world', 1.5)
```

Args:
    items_schema: The value must be a tuple with items that match these schemas
    variadic_item_index: The index of the schema in `items_schema` to be treated as variadic (following PEP 646)
    min_length: The value must be a tuple with at least this many items
    max_length: The value must be a tuple with at most this many items
    fail_fast: Stop validation on the first error
    strict: The value must be a tuple with exactly this many items
    ref: Optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )
r   r  r  r1  r0  r  r%   r   r   r   r   )	r  r  r1  r0  r  r%   r   r   r   s	            rN   r  r    s0    J !/# rM   c                  p    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S\S'   S\S'   Srg)	SetSchemai  zRequired[Literal['set']]r   r   r  r.   r1  r0  r$   r  r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s3    
""OOOL	HrM   r  c               $    [        SU UUUUUUUS9	$ )a}  
Returns a schema that matches a set of a given schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.set_schema(
    items_schema=core_schema.int_schema(), min_length=0, max_length=10
)
v = SchemaValidator(schema)
assert v.validate_python({1, '2', 3}) == {1, 2, 3}
```

Args:
    items_schema: The value must be a set with items that match this schema
    min_length: The value must be a set with at least this many items
    max_length: The value must be a set with at most this many items
    fail_fast: Stop validation on the first error
    strict: The value must be a set with exactly this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r  r   r  s           rN   
set_schemar    s-    D !#
 
rM   c                  p    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S\S'   S\S'   Srg)FrozenSetSchemai  zRequired[Literal['frozenset']]r   r   r  r.   r1  r0  r$   r  r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s3    
((OOOL	HrM   r  c               $    [        SU UUUUUUUS9	$ )a  
Returns a schema that matches a frozenset of a given schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.frozenset_schema(
    items_schema=core_schema.int_schema(), min_length=0, max_length=10
)
v = SchemaValidator(schema)
assert v.validate_python(frozenset(range(3))) == frozenset({0, 1, 2})
```

Args:
    items_schema: The value must be a frozenset with items that match this schema
    min_length: The value must be a frozenset with at least this many items
    max_length: The value must be a frozenset with at most this many items
    fail_fast: Stop validation on the first error
    strict: The value must be a frozenset with exactly this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r  r   r  s           rN   frozenset_schemar  *  s-    D !#
 
rM   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   Srg)GeneratorSchemaiY  zRequired[Literal['generator']]r   r   r  r.   r1  r0  r"   r   r   r   r  r   rE   Nr   rE   rM   rN   r  r  Y  s)    
((OO	H**rM   r  )r1  r0  r   r   r   c          
          [        SU UUUUUS9$ )a=  
Returns a schema that matches a generator value, e.g.:

```py
from typing import Iterator
from pydantic_core import SchemaValidator, core_schema

def gen() -> Iterator[int]:
    yield 1

schema = core_schema.generator_schema(items_schema=core_schema.int_schema())
v = SchemaValidator(schema)
v.validate_python(gen())
```

Unlike other types, validated generators do not raise ValidationErrors eagerly,
but instead will raise a ValidationError when a violating value is actually read from the generator.
This is to ensure that "validated" generators retain the benefit of lazy evaluation.

Args:
    items_schema: The value must be a generator with items that match this schema
    min_length: The value must be a generator that yields at least this many items
    max_length: The value must be a generator that yields at most this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r  r1  r0  r   r   r   r   )r  r1  r0  r   r   r   s         rN   generator_schemar  c  s'    H !# rM   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	IncExDictSerSchemai  z)Required[Literal['include-exclude-dict']]r   	IncExDictrZ   r^   rE   Nr   rE   rM   rN   r  r    s    
33rM   r  c                    [        SXS9$ )Nzinclude-exclude-dictr  r   r  s     rN   filter_dict_schemar    s    5wXXrM   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S
\S'   S\S'   S\S'   S\S'   Srg)
DictSchemai  zRequired[Literal['dict']]r   r   keys_schemavalues_schemar.   r1  r0  r$   r  r%   r"   r   r   r   IncExDictOrElseSerSchemar   rE   Nr   rE   rM   rN   r  r    s9    
##OOOL	H++rM   r  c               &    [        SU UUUUUUUUS9
$ )a  
Returns a schema that matches a dict value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.dict_schema(
    keys_schema=core_schema.str_schema(), values_schema=core_schema.int_schema()
)
v = SchemaValidator(schema)
assert v.validate_python({'a': '1', 'b': 2}) == {'a': 1, 'b': 2}
```

Args:
    keys_schema: The value must be a dict with keys that match this schema
    values_schema: The value must be a dict with values that match this schema
    min_length: The value must be a dict with at least this many items
    max_length: The value must be a dict with at most this many items
    fail_fast: Stop validation on the first error
    strict: Whether the keys and values should be validated with strict mode
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )
r   r  r  r1  r0  r  r%   r   r   r   r   )	r  r  r1  r0  r  r%   r   r   r   s	            rN   dict_schemar    s0    H ## rM   c                  *    \ rS rSr% S\S'   S\S'   Srg)NoInfoValidatorFunctionSchemai  Literal['no-info']r   NoInfoValidatorFunctionr   rE   Nr   rE   rM   rN   r  r    s    
%%rM   r  c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
WithInfoValidatorFunctionSchemai  Required[Literal['with-info']]r   z#Required[WithInfoValidatorFunction]r   r"   r   rE   Nr   rE   rM   rN   r  r    s    
((11OrM   r  c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)_ValidatorFunctionSchemai  Required[ValidationFunction]r   r   r   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s    **  	HrM   r  c                  *    \ rS rSr% S\S'   S\S'   Srg)BeforeValidatorFunctionSchemai  z$Required[Literal['function-before']]r   r   json_schema_input_schemarE   Nr   rE   rM   rN   r  r    s    
..((rM   r  )r   r  r   r   c          
     &    [        SSU S.UUUUUS9$ )a  
Returns a schema that calls a validator function before validating, no `info` argument is provided, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: bytes) -> str:
    return v.decode() + 'world'

func_schema = core_schema.no_info_before_validator_function(
    function=fn, schema=core_schema.str_schema()
)
schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)})

v = SchemaValidator(schema)
assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'}
```

Args:
    function: The validator function to call
    schema: The schema to validate the output of the validator function
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
function-beforeno-infor   r   r   r   r   r   r  r   r   r   r   r   r   r  r   r   s         rN   !no_info_before_validator_functionr    s,    F #:!9# rM   )r   r   r  r   r   c          
     j    Ub  [         R                  " S[        SS9  [        S[        SXS9UUUUUS9$ )a  
Returns a schema that calls a validator function before validation, the function is called with
an `info` argument, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: bytes, info: core_schema.ValidationInfo) -> str:
    assert info.data is not None
    assert info.field_name is not None
    return v.decode() + 'world'

func_schema = core_schema.with_info_before_validator_function(
    function=fn, schema=core_schema.str_schema()
)
schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)})

v = SchemaValidator(schema)
assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'}
```

Args:
    function: The validator function to call
    field_name: The name of the field this validator is applied to, if any (deprecated)
    schema: The schema to validate the output of the validator function
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
zThe `field_name` argument on `with_info_before_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.   
stacklevelr  	with-infor   r   r   r  warningswarnDeprecationWarningr   )r   r   r   r   r  r   r   s          rN   #with_info_before_validator_functionr  2  sN    P  e	
 [8[!9# rM   c                       \ rS rSr% S\S'   Srg)AfterValidatorFunctionSchemail  z#Required[Literal['function-after']]r   rE   Nr   rE   rM   rN   r  r  l  s    
--rM   r  c          
     &    [        SSU S.UUUUUS9$ )a  
Returns a schema that calls a validator function after validating, no `info` argument is provided, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: str) -> str:
    return v + 'world'

func_schema = core_schema.no_info_after_validator_function(fn, core_schema.str_schema())
schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)})

v = SchemaValidator(schema)
assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'}
```

Args:
    function: The validator function to call after the schema is validated
    schema: The schema to validate before the validator function
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
function-afterr  r  r  r   r  s         rN    no_info_after_validator_functionr  p  s,    B #:!9# rM   )r   r   r   r   c          	     h    Ub  [         R                  " S[        SS9  [        S[        SXS9UUUUS9$ )a]  
Returns a schema that calls a validator function after validation, the function is called with
an `info` argument, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: str, info: core_schema.ValidationInfo) -> str:
    assert info.data is not None
    assert info.field_name is not None
    return v + 'world'

func_schema = core_schema.with_info_after_validator_function(
    function=fn, schema=core_schema.str_schema()
)
schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)})

v = SchemaValidator(schema)
assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'}
```

Args:
    function: The validator function to call after the schema is validated
    schema: The schema to validate before the validator function
    field_name: The name of the field this validator is applied to, if any (deprecated)
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
zThe `field_name` argument on `with_info_after_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.r  r  r  r  r  )r   r   r   r   r   r   r  )r   r   r   r   r   r   s         rN   "with_info_after_validator_functionr    sK    L  d	
 [8[# rM   c                  "    \ rS rSrSSS jjrSrg)ValidatorFunctionWrapHandleri  Nc                   g r~   rE   )rY   r   outer_locations      rN   r   %ValidatorFunctionWrapHandler.__call__  s    rM   rE   r~   )r   r   r  zstr | int | Noner   r   r   rE   rM   rN   r  r    s     rM   r  c                  *    \ rS rSr% S\S'   S\S'   Srg)!NoInfoWrapValidatorFunctionSchemai  r  r   NoInfoWrapValidatorFunctionr   rE   Nr   rE   rM   rN   r  r    s    
))rM   r  c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
#WithInfoWrapValidatorFunctionSchemai  r  r   z'Required[WithInfoWrapValidatorFunction]r   r"   r   rE   Nr   rE   rM   rN   r  r    s    
((55OrM   r  c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   Srg)WrapValidatorFunctionSchemai  r   r   zRequired[WrapValidatorFunction]r   r   r   r"   r   r   r  r   r   r   r   rE   Nr   rE   rM   rN   r  r    s+    
,,--  	H((rM   r  c          
     &    [        SSU S.UUUUUS9$ )az  
Returns a schema which calls a function with a `validator` callable argument which can
optionally be used to call inner validation with the function logic, this is much like the
"onion" implementation of middleware in many popular web frameworks, no `info` argument is passed, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(
    v: str,
    validator: core_schema.ValidatorFunctionWrapHandler,
) -> str:
    return validator(input_value=v) + 'world'

schema = core_schema.no_info_wrap_validator_function(
    function=fn, schema=core_schema.str_schema()
)
v = SchemaValidator(schema)
assert v.validate_python('hello ') == 'hello world'
```

Args:
    function: The validator function to call
    schema: The schema to validate the output of the validator function
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r  r  r   r   r   r  r   r   r   r   r  s         rN   no_info_wrap_validator_functionr    s,    L #:!9# rM   )r   r  r   r   r   c          
     j    Ub  [         R                  " S[        SS9  [        S[        SXS9UUUUUS9$ )a  
Returns a schema which calls a function with a `validator` callable argument which can
optionally be used to call inner validation with the function logic, this is much like the
"onion" implementation of middleware in many popular web frameworks, an `info` argument is also passed, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(
    v: str,
    validator: core_schema.ValidatorFunctionWrapHandler,
    info: core_schema.ValidationInfo,
) -> str:
    return validator(input_value=v) + 'world'

schema = core_schema.with_info_wrap_validator_function(
    function=fn, schema=core_schema.str_schema()
)
v = SchemaValidator(schema)
assert v.validate_python('hello ') == 'hello world'
```

Args:
    function: The validator function to call
    schema: The schema to validate the output of the validator function
    field_name: The name of the field this validator is applied to, if any (deprecated)
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
zThe `field_name` argument on `with_info_wrap_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.r  r  r   r  r  r  r  )r   r   r   r  r   r   r   s          rN   !with_info_wrap_validator_functionr  )	  sN    R  c	
 [8[!9# rM   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)PlainValidatorFunctionSchemaid	  r   r   r  r   r"   r   r   r  r   r   r   r   rE   Nr   rE   rM   rN   r  r  d	  s%    
--**	H((rM   r  c          	     $    [        SSU S.UUUUS9$ )a  
Returns a schema that uses the provided function for validation, no `info` argument is passed, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: str) -> str:
    assert 'hello' in v
    return v + 'world'

schema = core_schema.no_info_plain_validator_function(function=fn)
v = SchemaValidator(schema)
assert v.validate_python('hello ') == 'hello world'
```

Args:
    function: The validator function to call
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r  r  r   r   r   r  r   r   r   )r   r   r  r   r   s        rN    no_info_plain_validator_functionr  m	  s(    < #:!9# rM   c          	     h    Ub  [         R                  " S[        SS9  [        S[        SXS9UUUUS9$ )a  
Returns a schema that uses the provided function for validation, an `info` argument is passed, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: str, info: core_schema.ValidationInfo) -> str:
    assert 'hello' in v
    return v + 'world'

schema = core_schema.with_info_plain_validator_function(function=fn)
v = SchemaValidator(schema)
assert v.validate_python('hello ') == 'hello world'
```

Args:
    function: The validator function to call
    field_name: The name of the field this validator is applied to, if any (deprecated)
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
zThe `field_name` argument on `with_info_plain_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.r  r  r   r  r  r  r  )r   r   r   r  r   r   s         rN   "with_info_plain_validator_functionr  	  sK    @  d	
 [8[!9# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S
\S'   S
\S'   S\S'   S\S'   S\S'   Srg)WithDefaultSchemai	  zRequired[Literal['default']]r   r   r   r   rS   z9Union[Callable[[], Any], Callable[[dict[str, Any]], Any]]default_factoryr$   default_factory_takes_dataz#Literal['raise', 'omit', 'default']on_errorr-   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  	  sA    
&&  LNN $$11L	HrM   r  )	rS   r  r  r  r-   r%   r   r   r   c       	        D    [        SU UUUUUUUU	S9
n
U[        La  XS'   U
$ )a  
Returns a schema that adds a default value to the given schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.with_default_schema(core_schema.str_schema(), default='hello')
wrapper_schema = core_schema.typed_dict_schema(
    {'a': core_schema.typed_dict_field(schema)}
)
v = SchemaValidator(wrapper_schema)
assert v.validate_python({}) == v.validate_python({'a': 'hello'})
```

Args:
    schema: The schema to add a default value to
    default: The default value to use
    default_factory: A callable that returns the default value to use
    default_factory_takes_data: Whether the default factory takes a validated data argument
    on_error: What to do if the schema validation fails. One of 'raise', 'omit', 'default'
    validate_default: Whether the default value should be validated
    strict: Whether the underlying schema should be validated with strict mode
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
rS   )
r   r   r  r  r  r-   r%   r   r   r   )r   r   )r   rS   r  r  r  r-   r%   r   r   r   r   s              rN   with_default_schemar  	  sD    N 	'#=)#	A '')HrM   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)NullableSchemai
  zRequired[Literal['nullable']]r   r   r   r$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r   r   
  s$    
''  L	HrM   r   c          	         [        SXX#US9$ )ac  
Returns a schema that matches a nullable value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.nullable_schema(core_schema.str_schema())
v = SchemaValidator(schema)
assert v.validate_python(None) is None
```

Args:
    schema: The schema to wrap
    strict: Whether the underlying schema should be validated with strict mode
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
nullable)r   r   r%   r   r   r   r   )r   r%   r   r   r   s        rN   nullable_schemar  
  s    4 3an rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)UnionSchemai4
  zRequired[Literal['union']]r   z9Required[list[Union[CoreSchema, tuple[CoreSchema, str]]]]choicesr$   auto_collapser"   custom_error_typecustom_error_message!dict[str, Union[str, int, float]]custom_error_contextz!Literal['smart', 'left_to_right']rd   r%   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  4
  sB    
$$FF;;
++L	HrM   r  )r  r  r	  r  rd   r   r   r   c               &    [        SU UUUUUUUUS9
$ )a  
Returns a schema that matches a union value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.union_schema([core_schema.str_schema(), core_schema.int_schema()])
v = SchemaValidator(schema)
assert v.validate_python('hello') == 'hello'
assert v.validate_python(1) == 1
```

Args:
    choices: The schemas to match. If a tuple, the second item is used as the label for the case.
    auto_collapse: whether to automatically collapse unions with one element to the inner validator, default true
    custom_error_type: The custom error type to use if the validation fails
    custom_error_message: The custom error message to use if the validation fails
    custom_error_context: The custom error context to use if the validation fails
    mode: How to select which choice to return
        * `smart` (default) will try to return the choice which is the closest match to the input value
        * `left_to_right` will return the first choice in `choices` which succeeds validation
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
union)
r   r  r  r  r	  r  rd   r   r   r   r   )	r  r  r  r	  r  rd   r   r   r   s	            rN   union_schemar  C
  s0    J #+11# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)TaggedUnionSchemaiv
  z!Required[Literal['tagged-union']]r   z$Required[dict[Hashable, CoreSchema]]r  zcRequired[Union[str, list[Union[str, int]], list[list[Union[str, int]]], Callable[[Any], Hashable]]]discriminatorr"   r  r	  r
  r  r$   r%   r)   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  v
  sB    
++11vv;;L	HrM   r  )r  r	  r  r%   r)   r   r   r   c               (    [        SU UUUUUUUUU	S9$ )a
  
Returns a schema that matches a tagged union value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

apple_schema = core_schema.typed_dict_schema(
    {
        'foo': core_schema.typed_dict_field(core_schema.str_schema()),
        'bar': core_schema.typed_dict_field(core_schema.int_schema()),
    }
)
banana_schema = core_schema.typed_dict_schema(
    {
        'foo': core_schema.typed_dict_field(core_schema.str_schema()),
        'spam': core_schema.typed_dict_field(
            core_schema.list_schema(items_schema=core_schema.int_schema())
        ),
    }
)
schema = core_schema.tagged_union_schema(
    choices={
        'apple': apple_schema,
        'banana': banana_schema,
    },
    discriminator='foo',
)
v = SchemaValidator(schema)
assert v.validate_python({'foo': 'apple', 'bar': '123'}) == {'foo': 'apple', 'bar': 123}
assert v.validate_python({'foo': 'banana', 'spam': [1, 2, 3]}) == {
    'foo': 'banana',
    'spam': [1, 2, 3],
}
```

Args:
    choices: The schemas to match
        When retrieving a schema from `choices` using the discriminator value, if the value is a str,
        it should be fed back into the `choices` map until a schema is obtained
        (This approach is to prevent multiple ownership of a single schema in Rust)
    discriminator: The discriminator to use to determine the schema to use
        * If `discriminator` is a str, it is the name of the attribute to use as the discriminator
        * If `discriminator` is a list of int/str, it should be used as a "path" to access the discriminator
        * If `discriminator` is a list of lists, each inner list is a path, and the first path that exists is used
        * If `discriminator` is a callable, it should return the discriminator when called on the value to validate;
          the callable can return `None` to indicate that there is no matching discriminator present on the input
    custom_error_type: The custom error type to use if the validation fails
    custom_error_message: The custom error message to use if the validation fails
    custom_error_context: The custom error context to use if the validation fails
    strict: Whether the underlying schemas should be validated with strict mode
    from_attributes: Whether to use the attributes of the object to retrieve the discriminator value
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
tagged-union)r   r  r  r  r	  r  r%   r)   r   r   r   r   )
r  r  r  r	  r  r%   r)   r   r   r   s
             rN   tagged_union_schemar  
  s3    H #+11'# rM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)ChainSchemai
  zRequired[Literal['chain']]r   r  stepsr"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  
  s    
$$%%	HrM   r  c                   [        SXX#S9$ )a  
Returns a schema that chains the provided validation schemas, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: str, info: core_schema.ValidationInfo) -> str:
    assert 'hello' in v
    return v + ' world'

fn_schema = core_schema.with_info_plain_validator_function(function=fn)
schema = core_schema.chain_schema(
    [fn_schema, fn_schema, fn_schema, core_schema.str_schema()]
)
v = SchemaValidator(schema)
assert v.validate_python('hello') == 'hello world world world'
```

Args:
    steps: The schemas to chain
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
chain)r   r  r   r   r   r   )r  r   r   r   s       rN   chain_schemar  
  s    > wexmmrM   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   Srg)LaxOrStrictSchemai  z"Required[Literal['lax-or-strict']]r   r   
lax_schemastrict_schemar$   r%   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s*    
,,$$''L	HrM   r  c          
          [        SU UUUUUS9$ )a8  
Returns a schema that uses the lax or strict schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

def fn(v: str, info: core_schema.ValidationInfo) -> str:
    assert 'hello' in v
    return v + ' world'

lax_schema = core_schema.int_schema(strict=False)
strict_schema = core_schema.int_schema(strict=True)

schema = core_schema.lax_or_strict_schema(
    lax_schema=lax_schema, strict_schema=strict_schema, strict=True
)
v = SchemaValidator(schema)
assert v.validate_python(123) == 123

schema = core_schema.lax_or_strict_schema(
    lax_schema=lax_schema, strict_schema=strict_schema, strict=False
)
v = SchemaValidator(schema)
assert v.validate_python('123') == 123
```

Args:
    lax_schema: The lax schema to use
    strict_schema: The strict schema to use
    strict: Whether the strict schema should be used
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
lax-or-strict)r   r  r  r%   r   r   r   r   )r  r  r%   r   r   r   s         rN   lax_or_strict_schemar!    s'    V ## rM   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   Srg)JsonOrPythonSchemaiA  z#Required[Literal['json-or-python']]r   r   json_schemapython_schemar"   r   r   r   r   r   rE   Nr   rE   rM   rN   r#  r#  A  s%    
--%%''	HrM   r#  c          	         [        SU UUUUS9$ )a^  
Returns a schema that uses the Json or Python schema depending on the input:

```py
from pydantic_core import SchemaValidator, ValidationError, core_schema

v = SchemaValidator(
    core_schema.json_or_python_schema(
        json_schema=core_schema.int_schema(),
        python_schema=core_schema.int_schema(strict=True),
    )
)

assert v.validate_json('"123"') == 123

try:
    v.validate_python('123')
except ValidationError:
    pass
else:
    raise AssertionError('Validation should have failed')
```

Args:
    json_schema: The schema to use for Json inputs
    python_schema: The schema to use for Python inputs
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
json-or-python)r   r$  r%  r   r   r   r   )r$  r%  r   r   r   s        rN   json_or_python_schemar(  J  s$    L ## rM   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   Srg)TypedDictFieldiz  z%Required[Literal['typed-dict-field']]r   r   r   r$   required>Union[str, list[Union[str, int]], list[list[Union[str, int]]]]validation_aliasr"   serialization_aliasserialization_excluder   r   r   r   rE   Nr   rE   rM   rN   r*  r*  z  s1    
//  NTT33rM   r*  )r+  r-  r.  r/  r   r   c               "    [        SU UUUUUUS9$ )a  
Returns a schema that matches a typed dict field, e.g.:

```py
from pydantic_core import core_schema

field = core_schema.typed_dict_field(schema=core_schema.int_schema(), required=True)
```

Args:
    schema: The schema to use for the field
    required: Whether the field is required, otherwise uses the value from `total` on the typed dict
    validation_alias: The alias(es) to use to find the field in the validation data
    serialization_alias: The alias to use as a key when serializing
    serialization_exclude: Whether to exclude the field when serializing
    serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
    metadata: Any other information you want to include with the schema, not used by pydantic-core
typed-dict-field)r   r   r+  r-  r.  r/  r   r   r   )r   r+  r-  r.  r/  r   r   s          rN   typed_dict_fieldr2    s)    8 )/3!9	 	rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)TypedDictSchemai  zRequired[Literal['typed-dict']]r   z#Required[dict[str, TypedDictField]]fields	type[Any]r   r"   cls_namelist[ComputedField]computed_fieldsr$   r%   r   r  r&   extra_behaviorrO   r   r   r   r   r   r    r   rE   Nr   rE   rM   rN   r4  r4    sK    
))//	NM((L!!K	HrM   r4  )r   r7  r9  r%   r  r:  rO   r   r   r   r   c               ,    [        SU UUUUUUUUU	U
US9$ )a  
Returns a schema that matches a typed dict, e.g.:

```py
from typing_extensions import TypedDict

from pydantic_core import SchemaValidator, core_schema

class MyTypedDict(TypedDict):
    a: str

wrapper_schema = core_schema.typed_dict_schema(
    {'a': core_schema.typed_dict_field(core_schema.str_schema())}, cls=MyTypedDict
)
v = SchemaValidator(wrapper_schema)
assert v.validate_python({'a': 'hello'}) == {'a': 'hello'}
```

Args:
    fields: The fields to use for the typed dict
    cls: The class to use for the typed dict
    cls_name: The name to use in error locations. Falls back to `cls.__name__`, or the validator name if no class
        is provided.
    computed_fields: Computed fields to use when serializing the model, only applies when directly inside a model
    strict: Whether the typed dict is strict
    extras_schema: The extra validator to use for the typed dict
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    extra_behavior: The extra behavior to use for the typed dict
    total: Whether the typed dict is total, otherwise uses `typed_dict_total` from config
    serialization: Custom serialization schema

typed-dict)r   r5  r   r7  r9  r%   r  r:  rO   r   r   r   r   r   )r5  r   r7  r9  r%   r  r:  rO   r   r   r   r   s               rN   typed_dict_schemar=    s9    ^ '#%# rM   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S
\S'   S\S'   Srg)
ModelFieldi  z Required[Literal['model-field']]r   r   r   r,  r-  r"   r.  r$   r/  r   r   frozenr   r   rE   Nr   rE   rM   rN   r?  r?    s1    
**  TT33LrM   r?  )r-  r.  r/  r   r@  r   c               "    [        SU UUUUUUS9$ )a  
Returns a schema for a model field, e.g.:

```py
from pydantic_core import core_schema

field = core_schema.model_field(schema=core_schema.int_schema())
```

Args:
    schema: The schema to use for the field
    validation_alias: The alias(es) to use to find the field in the validation data
    serialization_alias: The alias to use as a key when serializing
    serialization_exclude: Whether to exclude the field when serializing
    serialization_exclude_if: A Callable that determines whether to exclude a field during serialization based on its value.
    frozen: Whether the field is frozen
    metadata: Any other information you want to include with the schema, not used by pydantic-core
model-field)r   r   r-  r.  r/  r   r@  r   r   )r   r-  r.  r/  r   r@  r   s          rN   model_fieldrC  	  s)    8 )/3!9	 	rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S
\S'   S\S'   S\S'   S\S'   Srg)ModelFieldsSchemai1  z!Required[Literal['model-fields']]r   zRequired[dict[str, ModelField]]r5  r"   
model_namer8  r9  r$   r%   r   r  extras_keys_schemar&   r:  r)   r   r   r   r   r   rE   Nr   rE   rM   rN   rE  rE  1  sG    
++++O((L""!!	HrM   rE  )
rF  r9  r%   r  rG  r:  r)   r   r   r   c       
        *    [        SU UUUUUUUUU	U
S9$ )a  
Returns a schema that matches the fields of a Pydantic model, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

wrapper_schema = core_schema.model_fields_schema(
    {'a': core_schema.model_field(core_schema.str_schema())}
)
v = SchemaValidator(wrapper_schema)
print(v.validate_python({'a': 'hello'}))
#> ({'a': 'hello'}, None, {'a'})
```

Args:
    fields: The fields of the model
    model_name: The name of the model, used for error messages, defaults to "Model"
    computed_fields: Computed fields to use when serializing the model, only applies when directly inside a model
    strict: Whether the model is strict
    extras_schema: The schema to use when validating extra input data
    extras_keys_schema: The schema to use when validating the keys of extra input data
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    extra_behavior: The extra behavior to use for the model fields
    from_attributes: Whether the model fields should be populated from attributes
    serialization: Custom serialization schema
model-fields)r   r5  rF  r9  r%   r  rG  r:  r)   r   r   r   r   )r5  rF  r9  r%   r  rG  r:  r)   r   r   r   s              rN   model_fields_schemarJ  @  s6    R '#-%'# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S
\S'   S\S'   S\S'   S
\S'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)ModelSchemaiy  r   r   r   r   r6  generic_originr   r   r$   custom_init
root_modelr"   	post_initr+   r,   r%   r@  r&   r:  r    r   r   r   r   r   r   rE   Nr   rE   rM   rN   rL  rL  y  sX    
$$	  NJJLL!!	HrM   rL  )rM  rN  rO  rP  r,   r%   r@  r:  r   r   r   r   c               0    [        SU UUUUUUUUU	U
UUUS9$ )a|  
A model schema generally contains a typed-dict schema.
It will run the typed dict validator, then create a new class
and set the dict and fields set returned from the typed dict validator
to `__dict__` and `__pydantic_fields_set__` respectively.

Example:

```py
from pydantic_core import CoreConfig, SchemaValidator, core_schema

class MyModel:
    __slots__ = (
        '__dict__',
        '__pydantic_fields_set__',
        '__pydantic_extra__',
        '__pydantic_private__',
    )

schema = core_schema.model_schema(
    cls=MyModel,
    config=CoreConfig(str_max_length=5),
    schema=core_schema.model_fields_schema(
        fields={'a': core_schema.model_field(core_schema.str_schema())},
    ),
)
v = SchemaValidator(schema)
assert v.isinstance_python({'a': 'hello'}) is True
assert v.isinstance_python({'a': 'too long'}) is False
```

Args:
    cls: The class to use for the model
    schema: The schema to use for the model
    generic_origin: The origin type used for this model, if it's a parametrized generic. Ex,
        if this model schema represents `SomeModel[int]`, generic_origin is `SomeModel`
    custom_init: Whether the model has a custom init method
    root_model: Whether the model is a `RootModel`
    post_init: The call after init to use for the model
    revalidate_instances: whether instances of models and dataclasses (including subclass instances)
        should re-validate defaults to config.revalidate_instances, else 'never'
    strict: Whether the model is strict
    frozen: Whether the model is frozen
    extra_behavior: The extra behavior to use for the model, used in serialization
    config: The config to use for the model
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r   rM  r   rN  rO  rP  r,   r%   r@  r:  r   r   r   r   r   )r   r   rM  rN  rO  rP  r,   r%   r@  r:  r   r   r   r   s                 rN   model_schemarR    s?    D %1%# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)DataclassFieldi  z$Required[Literal['dataclass-field']]r   r   namer   r   r$   kw_onlyinit	init_onlyr@  r,  r-  r"   r.  r/  r   r   r   r   rE   Nr   rE   rM   rN   rT  rT    sF    
..
  M
JOLTT33rM   rT  )	rV  rW  rX  r-  r.  r/  r   r   r@  c       	        *    [        SU UUUUUUUU	UU
S9$ )a  
Returns a schema for a dataclass field, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

field = core_schema.dataclass_field(
    name='a', schema=core_schema.str_schema(), kw_only=False
)
schema = core_schema.dataclass_args_schema('Foobar', [field])
v = SchemaValidator(schema)
assert v.validate_python({'a': 'hello'}) == ({'a': 'hello'}, None)
```

Args:
    name: The name to use for the argument parameter
    schema: The schema to use for the argument parameter
    kw_only: Whether the field can be set with a positional argument as well as a keyword argument
    init: Whether the field should be validated during initialization
    init_only: Whether the field should be omitted  from `__dict__` and passed to `__post_init__`
    validation_alias: The alias(es) to use to find the field in the validation data
    serialization_alias: The alias to use as a key when serializing
    serialization_exclude: Whether to exclude the field when serializing
    serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    frozen: Whether the field is frozen
dataclass-field)r   rU  r   rV  rW  rX  r-  r.  r/  r   r   r@  r   )rU  r   rV  rW  rX  r-  r.  r/  r   r   r@  s              rN   dataclass_fieldr[    s6    R )/3!9 rM   c                  p    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   Srg)DataclassArgsSchemai(  z#Required[Literal['dataclass-args']]r   r   dataclass_namezRequired[list[DataclassField]]r5  r8  r9  r$   collect_init_onlyr"   r   r   r   r   r   r&   r:  rE   Nr   rE   rM   rN   r]  r]  (  s7    
--!!**((	H!!rM   r]  )r9  r_  r   r   r   r:  c               $    [        SU UUUUUUUS9	$ )aM  
Returns a schema for validating dataclass arguments, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

field_a = core_schema.dataclass_field(
    name='a', schema=core_schema.str_schema(), kw_only=False
)
field_b = core_schema.dataclass_field(
    name='b', schema=core_schema.bool_schema(), kw_only=False
)
schema = core_schema.dataclass_args_schema('Foobar', [field_a, field_b])
v = SchemaValidator(schema)
assert v.validate_python({'a': 'hello', 'b': True}) == ({'a': 'hello', 'b': True}, None)
```

Args:
    dataclass_name: The name of the dataclass being validated
    fields: The fields to use for the dataclass
    computed_fields: Computed fields to use when serializing the dataclass
    collect_init_only: Whether to collect init only fields into a dict to pass to `__post_init__`
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
    extra_behavior: How to handle extra fields
dataclass-args)	r   r^  r5  r9  r_  r   r   r   r:  r   )r^  r5  r9  r_  r   r   r   r:  s           rN   dataclass_args_schemarb  4  s-    L %'+#%
 
rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)DataclassSchemaig  zRequired[Literal['dataclass']]r   r   r   r6  rM  r   r   zRequired[list[str]]r5  r"   r7  r$   rP  r+   r,   r%   r@  r   r   r   r   r   slotsr    r   rE   Nr   rE   rM   rN   rd  rd  g  sV    
((	  MOJJLL	HKrM   rd  )rM  r7  rP  r,   r%   r   r   r   r@  re  r   c               0    [        SU UUUUUUUUU	U
UUUS9$ )a  
Returns a schema for a dataclass. As with `ModelSchema`, this schema can only be used as a field within
another schema, not as the root type.

Args:
    cls: The dataclass type, used to perform subclass checks
    schema: The schema to use for the dataclass fields
    fields: Fields of the dataclass, this is used in serialization and in validation during re-validation
        and while validating assignment
    generic_origin: The origin type used for this dataclass, if it's a parametrized generic. Ex,
        if this model schema represents `SomeDataclass[int]`, generic_origin is `SomeDataclass`
    cls_name: The name to use in error locs, etc; this is useful for generics (default: `cls.__name__`)
    post_init: Whether to call `__post_init__` after validation
    revalidate_instances: whether instances of models and dataclasses (including subclass instances)
        should re-validate defaults to config.revalidate_instances, else 'never'
    strict: Whether to require an exact instance of `cls`
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
    frozen: Whether the dataclass is frozen
    slots: Whether `slots=True` on the dataclass, means each field is assigned independently, rather than
        simply setting `__dict__`, default false
	dataclass)r   r   rM  r5  r7  r   rP  r,   r%   r   r   r   r@  re  r   r   )r   r   r5  rM  r7  rP  r,   r%   r   r   r   r@  re  r   s                 rN   dataclass_schemarh  y  s?    P %1# rM   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)ArgumentsParameteri  r   rU  r   r   zCLiteral['positional_only', 'positional_or_keyword', 'keyword_only']rd   r,  r   rE   Nr   rE   rM   rN   rj  rj    s    
  
MMIIrM   rj  )rd   r   c                   [        XX#S9$ )aU  
Returns a schema that matches an argument parameter, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

param = core_schema.arguments_parameter(
    name='a', schema=core_schema.str_schema(), mode='positional_only'
)
schema = core_schema.arguments_schema([param])
v = SchemaValidator(schema)
assert v.validate_python(('hello',)) == (('hello',), {})
```

Args:
    name: The name to use for the argument parameter
    schema: The schema to use for the argument parameter
    mode: The mode to use for the argument parameter
    alias: The alias to use for the argument parameter
rU  r   rd   r   r   rl  s       rN   arguments_parameterrm    s    6 tKKrM   )uniformzunpacked-typed-dictVarKwargsModec                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S	\S'   S\S'   S\S'   S\S'   Srg)ArgumentsSchemai  zRequired[Literal['arguments']]r   z"Required[list[ArgumentsParameter]]arguments_schemar$   rA   r@   r   var_args_schemaro  var_kwargs_modevar_kwargs_schemar"   r   r   r   r   r   rE   Nr   rE   rM   rN   rq  rq    s=    
((88""!!	HrM   rq  )rA   r@   rs  rt  ru  r   r   r   c               &    [        SU UUUUUUUUS9
$ )a  
Returns a schema that matches an arguments schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

param_a = core_schema.arguments_parameter(
    name='a', schema=core_schema.str_schema(), mode='positional_only'
)
param_b = core_schema.arguments_parameter(
    name='b', schema=core_schema.bool_schema(), mode='positional_only'
)
schema = core_schema.arguments_schema([param_a, param_b])
v = SchemaValidator(schema)
assert v.validate_python(('hello', True)) == (('hello', True), {})
```

Args:
    arguments: The arguments to use for the arguments schema
    validate_by_name: Whether to populate by the parameter names, defaults to `False`.
    validate_by_alias: Whether to populate by the parameter aliases, defaults to `True`.
    var_args_schema: The variable args schema to use for the arguments schema
    var_kwargs_mode: The validation mode to use for variadic keyword arguments. If `'uniform'`, every value of the
        keyword arguments will be validated against the `var_kwargs_schema` schema. If `'unpacked-typed-dict'`,
        the `var_kwargs_schema` argument must be a [`typed_dict_schema`][pydantic_core.core_schema.typed_dict_schema]
    var_kwargs_schema: The variable kwargs schema to use for the arguments schema
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
	arguments)
r   rr  rA   r@   rs  rt  ru  r   r   r   r   )	rw  rA   r@   rs  rt  ru  r   r   r   s	            rN   rr  rr    s0    T ")+''+# rM   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)ArgumentsV3Parameteri!  r   rU  r   r   zLiteral['positional_only', 'positional_or_keyword', 'keyword_only', 'var_args', 'var_kwargs_uniform', 'var_kwargs_unpacked_typed_dict']rd   r,  r   rE   Nr   rE   rM   rN   ry  ry  !  s!    
    JIrM   ry  c                   [        XX#S9$ )a_  
Returns a schema that matches an argument parameter, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

param = core_schema.arguments_v3_parameter(
    name='a', schema=core_schema.str_schema(), mode='positional_only'
)
schema = core_schema.arguments_v3_schema([param])
v = SchemaValidator(schema)
assert v.validate_python({'a': 'hello'}) == (('hello',), {})
```

Args:
    name: The name to use for the argument parameter
    schema: The schema to use for the argument parameter
    mode: The mode to use for the argument parameter
    alias: The alias to use for the argument parameter
rl  r   rl  s       rN   arguments_v3_parameterr{  /  s    F tKKrM   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   Srg)ArgumentsV3SchemaiU  z!Required[Literal['arguments-v3']]r   z$Required[list[ArgumentsV3Parameter]]rr  r$   rA   r@   zLiteral['forbid', 'ignore']r:  r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r}  r}  U  s1    
++:://	HrM   r}  )rA   r@   r:  r   r   r   c               "    [        SU UUUUUUS9$ )a  
Returns a schema that matches an arguments schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

param_a = core_schema.arguments_v3_parameter(
    name='a', schema=core_schema.str_schema(), mode='positional_only'
)
param_b = core_schema.arguments_v3_parameter(
    name='kwargs', schema=core_schema.bool_schema(), mode='var_kwargs_uniform'
)
schema = core_schema.arguments_v3_schema([param_a, param_b])
v = SchemaValidator(schema)
assert v.validate_python({'a': 'hi', 'kwargs': {'b': True}}) == (('hi',), {'b': True})
```

This schema is currently not used by other Pydantic components. In V3, it will most likely
become the default arguments schema for the `'call'` schema.

Args:
    arguments: The arguments to use for the arguments schema.
    validate_by_name: Whether to populate by the parameter names, defaults to `False`.
    validate_by_alias: Whether to populate by the parameter aliases, defaults to `True`.
    extra_behavior: The extra behavior to use.
    ref: optional unique identifier of the schema, used to reference the schema in other places.
    metadata: Any other information you want to include with the schema, not used by pydantic-core.
    serialization: Custom serialization schema.
arguments-v3)r   rr  rA   r@   r:  r   r   r   r   )rw  rA   r@   r:  r   r   r   s          rN   arguments_v3_schemar  `  s*    N ")+%#	 	rM   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   Srg)
CallSchemai  zRequired[Literal['call']]r   r   rr  zRequired[Callable[..., Any]]r   r"   function_namer   r   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s1    
##****	HrM   r  )r  r   r   r   r   c               "    [        SU UUUUUUS9$ )a  
Returns a schema that matches an arguments schema, then calls a function, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

param_a = core_schema.arguments_parameter(
    name='a', schema=core_schema.str_schema(), mode='positional_only'
)
param_b = core_schema.arguments_parameter(
    name='b', schema=core_schema.bool_schema(), mode='positional_only'
)
args_schema = core_schema.arguments_schema([param_a, param_b])

schema = core_schema.call_schema(
    arguments=args_schema,
    function=lambda a, b: a + str(not b),
    return_schema=core_schema.str_schema(),
)
v = SchemaValidator(schema)
assert v.validate_python((('hello', True))) == 'helloFalse'
```

Args:
    arguments: The arguments to use for the arguments schema
    function: The function to use for the call schema
    function_name: The function name to use for the call schema, if not provided `function.__name__` is used
    return_schema: The return schema to use for the call schema
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
call)r   rr  r   r  r   r   r   r   r   )rw  r   r  r   r   r   r   s          rN   call_schemar    s*    T "###	 	rM   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   Srg)CustomErrorSchemai  z!Required[Literal['custom-error']]r   r   r   r   r  r"   r	  r
  r  r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s1    
++  $$;;	HrM   r  )r	  r  r   r   r   c               "    [        SU UUUUUUS9$ )av  
Returns a schema that matches a custom error value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.custom_error_schema(
    schema=core_schema.int_schema(),
    custom_error_type='MyError',
    custom_error_message='Error msg',
)
v = SchemaValidator(schema)
v.validate_python(1)
```

Args:
    schema: The schema to use for the custom error schema
    custom_error_type: The custom error type to use for the custom error schema
    custom_error_message: The custom error message to use for the custom error schema
    custom_error_context: The custom error context to use for the custom error schema
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
custom-error)r   r   r  r	  r  r   r   r   r   )r   r  r	  r  r   r   r   s          rN   custom_error_schemar    s*    D +11#	 	rM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)
JsonSchemai  zRequired[Literal['json']]r   r   r   r"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s    
##	HrM   r  c                   [        SXX#S9$ )a#  
Returns a schema that matches a JSON value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

dict_schema = core_schema.model_fields_schema(
    {
        'field_a': core_schema.model_field(core_schema.str_schema()),
        'field_b': core_schema.model_field(core_schema.bool_schema()),
    },
)

class MyModel:
    __slots__ = (
        '__dict__',
        '__pydantic_fields_set__',
        '__pydantic_extra__',
        '__pydantic_private__',
    )
    field_a: str
    field_b: bool

json_schema = core_schema.json_schema(schema=dict_schema)
schema = core_schema.model_schema(cls=MyModel, schema=json_schema)
v = SchemaValidator(schema)
m = v.validate_python('{"field_a": "hello", "field_b": true}')
assert isinstance(m, MyModel)
```

Args:
    schema: The schema to use for the JSON schema
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )r   r   r   r   r   r   )r   r   r   r   s       rN   r$  r$    s    V vfnnrM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S
\S'   S\S'   S
\S'   S\S'   S\S'   Srg)	UrlSchemaiC  zRequired[Literal['url']]r   r.   r0  	list[str]allowed_schemesr$   host_requiredr"   default_hostdefault_portdefault_pathr%   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r  C  sA    
""OL	HrM   r  r0  r  r  r  r  r  preserve_empty_pathr%   r   r   r   c                *    [        SU UUUUUUUUU	U
S9$ )a  
Returns a schema that matches a URL value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.url_schema()
v = SchemaValidator(schema)
print(v.validate_python('https://example.com'))
#> https://example.com/
```

Args:
    max_length: The maximum length of the URL
    allowed_schemes: The allowed URL schemes
    host_required: Whether the URL must have a host
    default_host: The default host to use if the URL does not have a host
    default_port: The default port to use if the URL does not have a port
    default_path: The default path to use if the URL does not have a path
    preserve_empty_path: Whether to preserve an empty path or convert it to '/', default False
    strict: Whether to use strict URL parsing
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r   r0  r  r  r  r  r  r  r%   r   r   r   r   r  s              rN   
url_schemar  Q  s6    N '#!!!/# rM   c                      \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S
\S'   S\S'   S
\S'   S\S'   S\S'   Srg)MultiHostUrlSchemai  z#Required[Literal['multi-host-url']]r   r.   r0  r  r  r$   r  r"   r  r  r  r%   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    sA    
--OL	HrM   r  c                *    [        SU UUUUUUUUU	U
S9$ )a5  
Returns a schema that matches a URL value with possibly multiple hosts, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.multi_host_url_schema()
v = SchemaValidator(schema)
print(v.validate_python('redis://localhost,0.0.0.0,127.0.0.1'))
#> redis://localhost,0.0.0.0,127.0.0.1
```

Args:
    max_length: The maximum length of the URL
    allowed_schemes: The allowed URL schemes
    host_required: Whether the URL must have a host
    default_host: The default host to use if the URL does not have a host
    default_port: The default port to use if the URL does not have a port
    default_path: The default path to use if the URL does not have a path
    preserve_empty_path: Whether to preserve an empty path or convert it to '/', default False
    strict: Whether to use strict URL parsing
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   r  r   r  s              rN   multi_host_url_schemar    s6    N '#!!!/# rM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)DefinitionsSchemai  z Required[Literal['definitions']]r   r   r   r  definitionsr   r   r   r   rE   Nr   rE   rM   rN   r  r    s     
**  ++rM   r  c                    [        SXS9$ )a&  
Build a schema that contains both an inner schema and a list of definitions which can be used
within the inner schema.

```py
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.definitions_schema(
    core_schema.list_schema(core_schema.definition_reference_schema('foobar')),
    [core_schema.int_schema(ref='foobar')],
)
v = SchemaValidator(schema)
assert v.validate_python([1, 2, '3']) == [1, 2, 3]
```

Args:
    schema: The inner schema
    definitions: List of definitions which can be referenced within inner schema
r  )r   r   r  )r  )r   r  s     rN   definitions_schemar    s    ( -XXrM   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)DefinitionReferenceSchemai  z#Required[Literal['definition-ref']]r   r   
schema_refr"   r   r   r   r   r   rE   Nr   rE   rM   rN   r  r    s    
--	HrM   r  c                    [        SXX#S9$ )a+  
Returns a schema that points to a schema stored in "definitions", this is useful for nested recursive
models and also when you want to define validators separately from the main schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

schema_definition = core_schema.definition_reference_schema('list-schema')
schema = core_schema.definitions_schema(
    schema=schema_definition,
    definitions=[
        core_schema.list_schema(items_schema=schema_definition, ref='list-schema'),
    ],
)
v = SchemaValidator(schema)
assert v.validate_python([()]) == [[]]
```

Args:
    schema_ref: The schema ref to use for the definition reference schema
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
definition-ref)r   r  r   r   r   r   )r  r   r   r   s       rN   definition_reference_schemar    s    : * rM   )4r   r   r   r$   r.   r   r&  r"   r   r   r	   r   r
   r^  rl  rg  rs  rz  r  r   r   r   r   r   r   r  r  r   r   rS   r  r  r  r  r   r'  r<  rI  r   ra  rg  rw  r  r  r  r   r   r   r  r  r   r+  )rB  rZ  r1  r   )hno_such_attributejson_invalid	json_typeneeds_python_objectrecursion_loopre  frozen_fieldfrozen_instanceextra_forbiddeninvalid_keyget_attribute_error
model_typemodel_attributes_typedataclass_typedataclass_exact_typedefault_factory_not_callednone_requiredgreater_thangreater_than_equal	less_thanless_than_equalr  finite_number	too_shorttoo_longiterable_typeiteration_errorstring_typestring_sub_typestring_unicodestring_too_shortstring_too_longstring_pattern_mismatchstring_not_asciirg  	dict_typemapping_type	list_type
tuple_typeset_typeset_item_not_hashable	bool_typebool_parsingint_typeint_parsingint_parsing_sizeint_from_float
float_typefloat_parsing
bytes_typebytes_too_shortbytes_too_longbytes_invalid_encodingvalue_errorassertion_errorliteral_errormissing_sentinel_error	date_typedate_parsingdate_from_datetime_parsingdate_from_datetime_inexact	date_pastdate_future	time_typetime_parsingdatetime_typedatetime_parsingdatetime_object_invaliddatetime_from_date_parsingdatetime_pastdatetime_futuretimezone_naivetimezone_awaretimezone_offsettime_delta_typetime_delta_parsingfrozen_set_typeis_instance_ofis_subclass_ofcallable_typeunion_tag_invalidunion_tag_not_foundarguments_typemissing_argumentunexpected_keyword_argumentmissing_keyword_only_argumentunexpected_positional_argument missing_positional_only_argumentmultiple_argument_valuesurl_typeurl_parsingurl_syntax_violationurl_too_long
url_scheme	uuid_typeuuid_parsinguuid_versiondecimal_typedecimal_parsingdecimal_max_digitsdecimal_max_placesdecimal_whole_digitscomplex_typecomplex_str_parsingc                 b    U R                  5        VVs0 s H  u  pUc  M
  X_M     snn$ s  snnf r~   )items)kwargskvs      rN   r   r     s(    #\\^=^TQqDAD^===s   	++c              #  h   #    U S    H%  n[        U[        5      (       a	  US   v   M!  Uv   M'     g7f)z/Iterate over the choices of a `'union'` schema.r  r   N)
isinstancer   )r  choices     rN   iter_union_choicesr    s/     y)fe$$)OL	 *s   02c`field_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.c                T    [         R                  " S[        5        [        X4SU0UD6$ )Nr  r   r  r  r  r  r   r   r   r  s       rN   field_before_validator_functionr    s,    MMm /xaJaZ`aarM   e`general_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.c                 N    [         R                  " S[        5        [        U 0 UD6$ )Nr  r  argsr  s     rN   !general_before_validator_functionr"    s&    MMo /???rM   a`field_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.c                T    [         R                  " S[        5        [        X4SU0UD6$ )Nr#  r   r  r  r  r  r  s       rN   field_after_validator_functionr&  !  s,    MMk .h`:`Y_``rM   c`general_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.c                 N    [         R                  " S[        5        [        U 0 UD6$ )Nr'  r%  r   s     rN    general_after_validator_functionr)  *  &    MMm .t>v>>rM   _`field_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.c                T    [         R                  " S[        5        [        X4SU0UD6$ )Nr+  r   r  r  r  r  r  s       rN   field_wrap_validator_functionr.  3  s.     MMi -X_*_X^__rM   a`general_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.c                 N    [         R                  " S[        5        [        U 0 UD6$ )Nr/  r-  r   s     rN   general_wrap_validator_functionr1  >  s&    MMk -d=f==rM   a`field_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.c                T    [         R                  " S[        5        [        U 4SU0UD6$ )Nr2  r   r  r  r  r  )r   r   r  s      rN   field_plain_validator_functionr5  G  s,    MMk .hX:XQWXXrM   c`general_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.c                 N    [         R                  " S[        5        [        U 0 UD6$ )Nr6  r4  r   s     rN    general_plain_validator_functionr8  P  r*  rM   )FieldValidationInfoFieldValidatorFunctionGeneralValidatorFunctionFieldWrapValidatorFunctionc                    [         R                  U 5      nUc  [        SU  S35      eSS KnSU  SUR                   S3nUR
                  " U[        SS9  U$ )	Nz)module 'pydantic_core' has no attribute ''r   `z` is deprecated, use `z
` instead.   r  )_deprecated_import_lookupgetAttributeErrorr  rF   r  r  )	attr_namenew_attrr  msgs       rN   __getattr__rG  d  sc    (,,Y7HHSTUVV)283D3D2EZPc-!<rM   )r   ExpectedSerializationTypesr   r   )r   SerializerFunctionr   r   r   r   r   CoreSchema | Noner   r   r   r   )r   WrapSerializerFunctionr   r   r   r   r   rJ  r   rJ  r   r   r   r   )r   r"   r   r   r   r   )r   r   r   r   )r   r6  r   r   r   r   )NN)r   r   r   dict[str, Any] | Noner   r   )r   r"   r   r   r   r   r   Callable[[Any], bool] | Noner   rL  r   r   )r   r   r   rL  r   SerSchema | Noner   r  )r   r   r   rL  r   rN  r   r  )NNNN)
r%   r   r   r   r   rL  r   rN  r   r  )r  
int | Noner  rO  r  rO  r  rO  r  rO  r%   r   r   r   r   rL  r   rN  r   r  )r4   r   r  float | Noner  rP  r  rP  r  rP  r  rP  r%   r   r   r   r   rL  r   rN  r   r  )r4   r   r  Decimal | Noner  rQ  r  rQ  r  rQ  r  rQ  r"  rO  r#  rO  r%   r   r   r   r   rL  r   rN  r   r!  )
r%   r   r   r   r   rL  r   rN  r   r)  )r/  zstr | Pattern[str] | Noner0  rO  r1  rO  r2  r   r3  r   r4  r   r>   z)Literal['rust-regex', 'python-re'] | Noner%   r   r<   r   r   r   r   rL  r   rN  r   r.  )r0  rO  r1  rO  r%   r   r   r   r   rL  r   rN  r   r9  )r%   r   r  date | Noner  rR  r  rR  r  rR  r@   Literal['past', 'future'] | NonerA  rO  r   r   r   rL  r   rN  r   r>  )r%   r   r  time | Noner  rT  r  rT  r  rT  rH  &Literal['aware', 'naive'] | int | NonerJ  rI  r   r   r   rL  r   rN  r   rF  )r%   r   r  datetime | Noner  rV  r  rV  r  rV  r@  rS  rH  rU  rA  rO  rJ  rI  r   r   r   rL  r   rN  r   rP  )r%   r   r  timedelta | Noner  rW  r  rW  r  rW  rJ  rI  r   r   r   rL  r   rN  r   rU  )
r\  	list[Any]r   r   r   rL  r   rN  r   rZ  )r   r   rc  rX  rd  z%Literal['str', 'int', 'float'] | Nonere  zCallable[[Any], Any] | Noner%   r   r   r   r   rL  r   rN  r   ra  )r   rL  r   rN  r   rj  )r   r   rq  r   r   r   r   rL  r   rN  r   rp  )r   r6  rq  r   r   r   r   rL  r   rN  r   rp  )r   r   r   rL  r   rN  r   r}  )r  z#Literal[1, 3, 4, 5, 6, 7, 8] | Noner%   r   r   r   r   rL  r   rN  r   r  )rZ   set[int] | Noner^   rY  r   r  r~   )r  rJ  r1  rO  r0  rO  r  r   r%   r   r   r   r   rL  r   IncExSeqOrElseSerSchema | Noner   r  )r  list[CoreSchema]r  rJ  r%   r   r   r   r   rL  r   rZ  r   r  )r  rJ  r1  rO  r0  rO  r%   r   r   r   r   rL  r   rZ  r   r  )r  r[  r  rO  r1  rO  r0  rO  r  r   r%   r   r   r   r   rL  r   rZ  r   r  )r  rJ  r1  rO  r0  rO  r  r   r%   r   r   r   r   rL  r   rN  r   r  )r  rJ  r1  rO  r0  rO  r  r   r%   r   r   r   r   rL  r   rN  r   r  )r  rJ  r1  rO  r0  rO  r   r   r   rL  r   rZ  r   r  )rZ   IncExDict | Noner^   r\  r   r  )r  rJ  r  rJ  r1  rO  r0  rO  r  r   r%   r   r   r   r   rL  r   rN  r   r  )r   r  r   r   r   r   r  rJ  r   rL  r   rN  r   r  )r   WithInfoValidatorFunctionr   r   r   r   r   r   r  rJ  r   rL  r   rN  r   r  )r   r  r   r   r   r   r  rJ  r   rL  r   rN  r   r  )r   r]  r   r   r   r   r   r   r   rL  r   rN  r   r  )r   r  r   r   r   r   r  rJ  r   rL  r   rN  r   r  )r   WithInfoWrapValidatorFunctionr   r   r   r   r  rJ  r   r   r   rL  r   rN  r   r  )r   r  r   r   r  rJ  r   rL  r   rN  r   r  )r   r]  r   r   r   r   r  rJ  r   rL  r   rN  r   r  )r   r   rS   r   r  z?Union[Callable[[], Any], Callable[[dict[str, Any]], Any], None]r  r   r  z*Literal['raise', 'omit', 'default'] | Noner-   r   r%   r   r   r   r   rL  r   rN  r   r  )r   r   r%   r   r   r   r   rL  r   rN  r   r   )r  z)list[CoreSchema | tuple[CoreSchema, str]]r  r   r  r   r	  r   r  zdict[str, str | int] | Nonerd   z(Literal['smart', 'left_to_right'] | Noner   r   r   rL  r   rN  r   r  )r  zdict[Any, CoreSchema]r  zDstr | list[str | int] | list[list[str | int]] | Callable[[Any], Any]r  r   r	  r   r  z#dict[str, int | str | float] | Noner%   r   r)   r   r   r   r   rL  r   rN  r   r  )
r  r[  r   r   r   rL  r   rN  r   r  )r  r   r  r   r%   r   r   r   r   rL  r   rN  r   r  )r$  r   r%  r   r   r   r   rL  r   rN  r   r#  )r   r   r+  r   r-  4str | list[str | int] | list[list[str | int]] | Noner.  r   r/  r   r   rL  r   rM  r   r*  )r5  zdict[str, TypedDictField]r   type[Any] | Noner7  r   r9  list[ComputedField] | Noner%   r   r  rJ  r:  ExtraBehavior | NonerO   r   r   r   r   rL  r   rN  r   r   r   r4  )r   r   r-  r_  r.  r   r/  r   r   rM  r@  r   r   rL  r   r?  )r5  zdict[str, ModelField]rF  r   r9  ra  r%   r   r  rJ  rG  rJ  r:  rb  r)   r   r   r   r   rL  r   rN  r   rE  )r   r6  r   r   rM  r`  rN  r   rO  r   rP  r   r,   7Literal['always', 'never', 'subclass-instances'] | Noner%   r   r@  r   r:  rb  r   r   r   r   r   rL  r   rN  r   rL  )rU  r"   r   r   rV  r   rW  r   rX  r   r-  r_  r.  r   r/  r   r   rL  r   rM  r@  r   r   rT  )r^  r"   r5  zlist[DataclassField]r9  ra  r_  r   r   r   r   rL  r   rN  r:  rb  r   r]  )r   r6  r   r   r5  r  rM  r`  r7  r   rP  r   r,   rc  r%   r   r   r   r   rL  r   rN  r@  r   re  r   r   r   r   rd  )
rU  r"   r   r   rd   zJLiteral['positional_only', 'positional_or_keyword', 'keyword_only'] | Noner   r_  r   rj  )rw  zlist[ArgumentsParameter]rA   r   r@   r   rs  rJ  rt  zVarKwargsMode | Noneru  rJ  r   r   r   rL  r   rN  r   rq  )
rU  r"   r   r   rd   zLiteral['positional_only', 'positional_or_keyword', 'keyword_only', 'var_args', 'var_kwargs_uniform', 'var_kwargs_unpacked_typed_dict'] | Noner   r_  r   ry  )rw  zlist[ArgumentsV3Parameter]rA   r   r@   r   r:  z"Literal['forbid', 'ignore'] | Noner   r   r   rL  r   rN  r   r}  )rw  r   r   zCallable[..., Any]r  r   r   rJ  r   r   r   rL  r   rN  r   r  )r   r   r  r"   r	  r   r  rL  r   r   r   rL  r   rN  r   r  )
r   rJ  r   r   r   rL  r   rN  r   r  )r0  rO  r  list[str] | Noner  r   r  r   r  rO  r  r   r  r   r%   r   r   r   r   rL  r   rN  r   r  )r0  rO  r  rd  r  r   r  r   r  rO  r  r   r  r   r%   r   r   r   r   rL  r   rN  r   r  )r   r   r  r[  r   r  )NNN)
r  r"   r   r   r   rL  r   rN  r   r  )r  r   r   r   )r  r  r   zGenerator[CoreSchema])r   r]  r   r"   r   r   )r   r^  r   r"   r   r   )r   r]  r   r"   )rD  r"   r   object)rJ   
__future__r   _annotationssysr  collections.abcr   r   r   r   r   r	   r
   r&  r   rer   typingr   r   r   r   r   typing_extensionsr   r   version_infor   r   r   r   pydantic_corer   ImportErrorre  r&   r    rP   rK   rQ   rU   r   r   rH  r   r   $GeneralPlainNoInfoSerializerFunction"GeneralPlainInfoSerializerFunction"FieldPlainNoInfoSerializerFunction FieldPlainInfoSerializerFunctionrI  r   r   r   r   #GeneralWrapNoInfoSerializerFunction!GeneralWrapInfoSerializerFunction!FieldWrapNoInfoSerializerFunctionFieldWrapInfoSerializerFunctionrK  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r  r  r!  r'  r)  r,  r.  r7  r9  r<  r>  rD  rF  rN  rP  rS  rU  rX  rZ  r_  ra  rh  rj  rm  JsonTyperp  rv  rx  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r.   r"   r  r  r  r  r  r  r  r  r]  r  ValidationFunctionr  r  r  r  r  r  r  r  r  r  r^  r  WrapValidatorFunctionr  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r!  r#  r(  r*  r2  r4  r=  r?  rC  rE  rJ  rL  rR  rT  r[  r]  rb  rd  rh  rj  rm  ro  rq  rr  ry  r{  r}  r  r  r  r  r  r  r$  r  r  r  r  r  r  r  r  MYPYr   CoreSchemaTypeCoreSchemaFieldType	ErrorTyper   r  r  r"  r&  r)  r.  r1  r5  r8  rA  r9  rG  rE   rM   rN   <module>r     s_&  
 3 
  8 8 4 4   ? ? 1g+ g??44/
%3
 34R"% R"j L	9 K:|DC#* C#L.x8( Xh' @ % 4/iu /& (0s
'; $%-s4Ec4J.KS.P%Q "%-sCj#o%> "#+S#7Mc7R,SUX,X#Y  (&&$&  FGy  (, '+"  % 	
 %  &@\H \
 '/5R/SUX/X&Y #$,c3PRcdgRh-ikn-n$o !$,c38U-VX[-[$\ !"*C6SUkloUp+qsv+v"w '%%#% iu  (,  $'+" $  %  	 
   %    % Fiu  HZ c c	 
 3E  !Ye !@ $#	IU 	F 	FIU  =A&* 	
 ; $ 6	  im__)>_Vf__,%  im``)>`Vf``,%  &*&*	oo	o $o $	o
 o4
	 
 #&*&*-- 	- 		-
 	- 	- - 
- $- $- -`)5   "& $&*&*00 0 		0
 	0 	0 	0 0 
0 $0 $0 0fIU $ "&"&!!%&*&*77  7 		7
 	7 	7 	7 7 7 7 
7 $7 $7 7tIU  &*&* 
 $	
 $ D9E $ *.!!$(  >B)-&*&*;&; ; 	;
 "; ; ; <; ; '; 
; $; $; ;|)5  "!&*&*$$ $ 	$
 
$ $$ $$ $N% $ /3!%&*&*11 	1 		1
 	1 	1 -1 1 
1 $1 $1 1h%   <@;E&*&*11 	1 		1
 	1 	1 :1 91 
1 $1 $1 1hYe ( /3<@!%;E&*&*99 	9 		9
 	9 	9 -9 :9 9 99 
9 $9 $9 9x
iu 
 ;E&*&*.. 	. 		.
 	. 	. 9. 
. $. $. .bIU  &*&*vv 
v $	v
 $v v6	% 	  7;+/&*&*0	00 4	0
 )0 0 
0 $0 $0 0fIU  '+&*
#
#
 
 HIy   &*&*	  
	
 $ $ Dy   &*&*"	" " 
	"
 $" $" "JYe  imdd)>dVfdd,%  48&*&*
0
 
 
	

 $
 $
 
	  59UY ] ]   19 <= 	+% 	+ '+* "!!&*48*#* * 	*
 * * 
* $* 2* *b (,&*48-"- %- 	-
 
- $- 2- -d '+) "!&*48)#) ) 	)
 ) 
) $) 2) )X
+)5 
+  '+!!!&*480"0 $0 	0
 0 0 0 
0 $0 20 0f		 	 '+, "!!&*&*,#, , 	,
 , , 
, $, $, ,^	iu 	 '+, "!!&*&*,#, , 	,
 , , 
, $, $, ,^+iu + '+, "!&*48,#, , 	,
 
, $, 2, ,^ c3h 	%  7;X\ Y Y !!3Y!>? 
,% 
, &*'+/ "!!&*&*/"/$/ 	/
 / / / 
/ $/ $/ /f #C5#:. &I & %c>#+>%?%DE iu  8:YYZ y )$<E ) 26&*&*+%++ 
	+
 0+ $+ $+ #+d "26&*&*7'77 	7
 
7 07 $7 $7 #7t.#;5 . 26&*&*)%)) 
	)
 0) $) $) ")` "&*&*4'44 	4
 
4 $4 $4 "4n8  '-I'JC'OP *	 * !)#/K^\_M`)acf)f g )5  ?Adde )5  26&*&*.).. 
	.
 0. $. $. !.j "26&*&*8+88 	8
 08 
8 $8 $8 !8v9E  26&*&*%%% 
% 0	%
 $% $% "%V "26&*&*.'. . 
	.
 0. $. $. ".b	 " %W[.2;?$(&*&*55 5 U	5
 !,5 95 "5 5 
5 $5 $5 5pYe  &*&*  
	
 $ $ >)5 $ "&$('+8<59&*&*060 0 "	0
 %0 60 30 
0 $0 $0 0f	 $ %)'+@D#'&*&*P"PWP "	P
 %P >P P !P 
P $P $P Pf)5  &*&*nn 
n $	n
 $n nD	  &*&*333 	3
 
3 $3 $3 3l%  &*&*--- 
	-
 $- $- -`4Ye 4 !MQ&*)-&*=A%% % K	%
 $% '% $% ;% %Piu ( !26'++/&*&* $=%= 
= 	=
 0= = %= )= = 
= $= $= = =@%  NR&*)-=A&*%% K% $	%
 '% ;% % $% %P	 $ "26'+,0+/#'&*&*6!6 6 0	6
 6 %6 *6 )6 !6 
6 $6 $6 6r)5 , (,#" TX+/ $&*&*R	RR %	R
 R R R RR R R )R R 
R $R $R  !Rj4Ye 4&  !MQ&*)-&*=A6
66 	6
 6 6 K6 $6 '6 $6 ;6 6 6r	")5 	"  37%)&*&*+/00 0 0	0
 #0 
0 $0 $0 )0 0fiu . (,!TX&*&* $8	88 8
 %8 8 8 R8 8 
8 $8 $8 8 8 8  !8vJ% J X\BFL
LL U	L
 @L L< ##CDy D
iu 
  %)%))-,0+/&*&*5'5 "5 #	5
 '5 *5 )5 
5 $5 $5 5pJ9E J4 BF#L
#L#L	#L @#L #LL	  %)%)9=&*&*0)0 "0 #	0
 70 
0 $0 $0 0f%  !%'+&*&*33 3 	3
 %3 
3 $3 $3 3l	  (,26&*&*+++ %	+
 0+ 
+ $+ $+ +\%  !%+o &*&*+o+o 
+o $	+o
 $+o +o +o\	   "(,!%###'+&*&*44 &4 	4
 4 4 4 %4 4 
4 $4 $4 4n%   "(,!%###'+&*&*44 &4 	4
 4 4 4 %4 4 
4 $4 $4 4n	 Y.	  &*&*		 $ $	
 D  3	 3	3	3	 	3	 		3	
 	3	 	3	 	3	 	3	 	3	 	3	 	3	 	3	 	3	 	3	 	3	  	!3	" 	#3	$ 	%3	& 	'3	( 	)3	* 	+3	, 	-3	. 	/3	0 	13	2 	%33	4 	&53	6 	$73	8 	%93	: 	;3	< 	=3	> 	?3	@ 	A3	B 	C3	D 	E3	F 	G3	H 	I3	J 	K3	L 	M3	N 	O3	P 	Q3	R 	S3	T 	U3	V 	W3	X 	Y3	Z 	[3	\ 	]3	^ 	_3	` 	a3	b 	"c3	d 	e3	f 	g3	5Jl 
 35n de 
 gi	X> qrb sb st@ u@ opa qa qr? s? mn`+`9<`FP` o` op> q> opY qY qr? s? *7 9"?	  (	AJ  %"H%s   x) )x:9x: