
    hm                      U d Z ddlmZ ddlZddlZddlmZmZ ddl	m
Z
m	Z	mZmZ ddlmZ ddlmZ ddlmZmZmZmZmZ dd	lmZmZ ej4                  d
k  rddlmZ nddlmZ ej4                  dk  rddlmZmZmZ n
ddlmZmZmZ erddlm Z  n	 ddlm Z  ed   Z# G d ded      Z$dZ%de&d<    eddd      Z' G d dee'         Z( G d de(e'   e      Z) G d d ee'         Z*ed!   Z+ G d" d#ed      Z,dFd$Z-eegef   Z.eee(e   gef   Z/eeegef   Z0eeee)e   gef   Z1ee.e/e0e1f   Z2ed%   Z3	  G d& d'ed      Z4dddd(d)	 	 	 	 	 	 	 	 	 	 	 dGd*Z5 G d+ d,e      Z6eee6gef   Z7eee6e(e   gef   Z8eeee6gef   Z9eeee6e)e   gef   Z:ee7e8e9e:f   Z; G d- d.ed      Z<ddddd(d/	 	 	 	 	 	 	 	 	 	 	 	 	 dHd0Z= G d1 d2ed      Z>d3d4dId5Z? G d6 d7ed      Z@d3d4dJd8ZA G d9 d:ed      ZBdKd;ZCee,e4e<e>e@eBf   ZD G d< d=ed      ZEdLdMd>ZF G d? d@ed      ZGdddA	 	 	 	 	 	 	 	 	 dNdBZH G dC dDed      ZIddddE	 	 	 	 	 	 	 dOdFZJ G dG dHed      ZKddddE	 	 	 	 	 	 	 dPdIZL G dJ dKed      ZM	 	 	 	 dQ	 	 	 	 	 	 	 	 	 dRdLZN G dM dNed      ZOddddddddddO		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dSdPZP G dQ dRed      ZQdddddddddddS
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dTdTZR G dU dVed      ZSdddddddddddddW	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dUdXZT G dY dZed      ZUddddd[	 	 	 	 	 	 	 	 	 dVd\ZV G d] d^ed      ZWddddddddddddd_	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dWd`ZX G da dbed      ZYdddddddc	 	 	 	 	 	 	 	 	 	 	 	 	 dXddZZ G de dfed      Z[dddddddddddg
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dYdhZ\ G di djed      Z]dddddddkddddl
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dZdmZ^ G dn doed      Z_dddddddddkddddp	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d[dqZ` G dr dsed      Zaddddddkddddt		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d\duZb G dv dwed      ZcddddE	 	 	 	 	 	 	 	 	 d]dxZd G dy dzed      Zeddddddd{	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d^d|Zf G d} d~ed      Zg	 	 dL	 	 	 	 	 d_dZhed   Zi G d ded      Zjddddd	 	 	 	 	 	 	 	 	 	 	 d`dZk G d ded      Zlddddd	 	 	 	 	 	 	 	 	 	 	 dadZm G d ded      ZnddddE	 	 	 	 	 	 	 dbdZo G d ded      Zpdddddd	 	 	 	 	 	 	 	 	 	 	 dcdZq G d ded      ZrddddddZseereDf   Zt G d ded      Zu	 dedddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dfdZvdddddd	 	 	 	 	 	 	 	 	 	 	 	 	 dgdZw	 deddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dhdZx G d ded      Zyddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 didZz G d ded      Z{	 dedddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 djdZ| G d ded      Z}	 dedddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dkdZ~ G d ded      Z	 dedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 dldZeeeef      Z G d ded      ZddddmdZeeeDf   Z G d ded      Z	 	 dLdddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dndZeegef   Z G d de      Zeee*e   gef   Z G d ded      Zeeef   Z G d ded      Z G d ded      Zddddd	 	 	 	 	 	 	 	 	 	 	 	 	 dodZdddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dpdZ G d ded      Zddddd	 	 	 	 	 	 	 	 	 	 	 	 	 dqdZddddd	 	 	 	 	 	 	 	 	 	 	 	 	 drdZ G d de      Zeeegef   Z G d de      Zeeee*e   gef   Z G dĄ ded      Zeeef   Z G dƄ ded      Zddddd	 	 	 	 	 	 	 	 	 	 	 	 	 dsdȄZddddddɜ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dtdʄZ G d˄ ded      Zddddd	 	 	 	 	 	 	 	 	 	 	 dud̈́Zdddddd	 	 	 	 	 	 	 	 	 	 	 	 	 dvd΄Z G dτ ded      Ze dddddddddќ		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dwd҄Z G dӄ ded      Zddddd[	 	 	 	 	 	 	 	 	 	 	 dxdՄZ G dք ded      Zddddddddd؜	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dydلZ G dڄ ded      Zdddddddddܜ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dzd݄Z G dބ ded      ZddddE	 	 	 	 	 	 	 	 	 d{dZ G d ded      Zddddd[	 	 	 	 	 	 	 	 	 	 	 	 	 d|dZ G d ded      ZddddE	 	 	 	 	 	 	 	 	 	 	 d}dZ G d ded      Zddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d~dZ G d ded      Zdddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zddddddddddd
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zddddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zdddddddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d d ed      Zddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zdddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zddd		 	 	 	 	 	 	 	 	 dd
Zed   Zde&d<    G d ded      Zddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zddd		 	 	 	 	 	 	 	 	 ddZ G d ded      Zddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zdddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d ded      Zdddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ G d  d!ed      Z	 deddddE	 	 	 	 	 	 	 	 	 dd"Z G d# d$ed      Zdddddddddddd%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd&Z G d' d(ed      Zdddddddddddd%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd)Z G d* d+ed      ZӐdd,Z G d- d.ed      Z	 	 	 d	 	 	 	 	 	 	 	 	 dd/ZdZesoeg eEeIeKeMeOeQeSeWeYe[e]e_eaecegeeejeleneueye{e}eeeeeeeeeeeeeeeeeeeÑeǑeɑeˑe͑eϑeёeӑeՑepeU   Zn	 ed0   Zed1   Zed2   Zېdd3Z ed4      dd5       Z ed6      d7        Z ed8      dd9       Z ed:      d;        Z ed<      	 	 	 	 	 	 dd=       Z ed>      d?        Z ed@      ddA       Z edB      dC        Ze*eeedDZere*ZddEZy# e!$ r  e"       Z Y w xY w(  ze
This module contains definitions to build schemas which `pydantic_core` can
validate and serialize.
    )annotationsN)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                  *   e Zd ZU dZded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded <   d!ed"<   d#ed$<   ded%<   ded&<   ded'<   ded(<   y))*
CoreConfiga  
    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.
        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url_preserve_empty_pathN)__name__
__module____qualname____doc____annotations__     >D:\jyotish\venv\Lib\site-packages\pydantic_core/core_schema.pyr   r   +   s    'R JL(( JJ 33DD44==44  44>>!!rH   r   F)totalz2set[int | str] | dict[int | str, IncExCall] | Noner   	IncExCallContextTTz
Any | None)	covariantdefaultc                      e Zd ZdZedd       Zedd       Zedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       ZddZddZddZy)SerializationInfoz%Extra data used during serialization.c                     y)z0The `include` argument set during serialization.NrG   selfs    rI   includezSerializationInfo.include        	rH   c                     y)z0The `exclude` argument set during serialization.NrG   rR   s    rI   excludezSerializationInfo.exclude   rU   rH   c                     y)z"The current serialization context.NrG   rR   s    rI   contextzSerializationInfo.context   rU   rH   c                     y)z0The serialization mode set during serialization.NrG   rR   s    rI   modezSerializationInfo.mode   rU   rH   c                     y)z1The `by_alias` argument set during serialization.NrG   rR   s    rI   by_aliaszSerializationInfo.by_alias   rU   rH   c                     y)z6The `exclude_unset` argument set during serialization.NrG   rR   s    rI   exclude_unsetzSerializationInfo.exclude_unset   rU   rH   c                     y)z9The `exclude_defaults` argument set during serialization.NrG   rR   s    rI   exclude_defaultsz"SerializationInfo.exclude_defaults   rU   rH   c                     y)z5The `exclude_none` argument set during serialization.NrG   rR   s    rI   exclude_nonezSerializationInfo.exclude_none   rU   rH   c                     y)z@The `exclude_computed_fields` argument set during serialization.NrG   rR   s    rI   exclude_computed_fieldsz)SerializationInfo.exclude_computed_fields   rU   rH   c                     y)z9The `serialize_as_any` argument set during serialization.NrG   rR   s    rI   serialize_as_anyz"SerializationInfo.serialize_as_any   rU   rH   c                     y)z3The `round_trip` argument set during serialization.NrG   rR   s    rI   
round_tripzSerializationInfo.round_trip   rU   rH   c                     y NrG   rR   s    rI   mode_is_jsonzSerializationInfo.mode_is_json   s    CrH   c                     y rk   rG   rR   s    rI   __str__zSerializationInfo.__str__   s    crH   c                     y rk   rG   rR   s    rI   __repr__zSerializationInfo.__repr__   s    srH   N)returnrK   rq   rL   )rq   zLiteral['python', 'json'] | str)rq   r"   rq   r    )rB   rC   rD   rE   propertyrT   rW   rY   r[   r]   r_   ra   rc   re   rg   ri   rl   rn   rp   rG   rH   rI   rP   rP      s    /                      (!"rH   rP   c                  "    e Zd ZdZedd       Zy)FieldSerializationInfoz+Extra data used during field serialization.c                     y)z/The name of the current field being serialized.NrG   rR   s    rI   
field_namez!FieldSerializationInfo.field_name   rU   rH   Nrs   )rB   rC   rD   rE   rt   rx   rG   rH   rI   rv   rv      s    5 rH   rv   c                  j    e Zd ZdZedd       Zed	d       Zed
d       Zedd       Zedd       Z	y)ValidationInfoz"Extra data used during validation.c                     y)zThe current validation context.NrG   rR   s    rI   rY   zValidationInfo.context   rU   rH   c                     y)z/The CoreConfig that applies to this validation.NrG   rR   s    rI   configzValidationInfo.config   rU   rH   c                     y)z3The type of input data we are currently validating.NrG   rR   s    rI   r[   zValidationInfo.mode   rU   rH   c                     y)z(The data being validated for this model.NrG   rR   s    rI   datazValidationInfo.data   rU   rH   c                     y)zw
        The name of the current field being validated if this validator is
        attached to a model field.
        NrG   rR   s    rI   rx   zValidationInfo.field_name   s     	rH   Nrr   )rq   CoreConfig | None)rq   zLiteral['python', 'json'])rq   dict[str, Any])rq   
str | None)
rB   rC   rD   rE   rt   rY   r}   r[   r   rx   rG   rH   rI   rz   rz      sg    ,         rH   rz   )noner,   r"   floatr    bytes	bytearraylisttupleset	frozenset	generatordictr   r   r   r	   urlmulti-host-urljsonuuidanyc                      e Zd ZU ded<   y)SimpleSerSchemaz$Required[ExpectedSerializationTypes]typeNrB   rC   rD   rF   rG   rH   rI   r   r     s    
..rH   r   c                    t        |       S )z{
    Returns a schema for serialization with a custom type.

    Args:
        type: The type to use for serialization
    r   )r   r   s    rI   simple_ser_schemar     s     %%rH   )alwayszunless-noner   json-unless-nonec                  J    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   y) PlainSerializerFunctionSerSchema#Required[Literal['function-plain']]r   zRequired[SerializerFunction]functionr"   is_field_serializerinfo_arg
CoreSchemareturn_schemaWhenUsed	when_usedNr   rG   rH   rI   r   r   /  s%    
--**NrH   r   r   )r   r   r   r   c               2    |dk(  rd}t        d| ||||      S )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        rI   $plain_serializer_function_ser_schemar   8  s0    & H	/# rH   c                      e Zd ZdddZy)SerializerFunctionWrapHandlerNc                    y rk   rG   )rS   input_value	index_keys      rI   __call__z&SerializerFunctionWrapHandler.__call__Y  s    X[rH   rk   )r   r   r   zint | str | Nonerq   r   rB   rC   rD   r   rG   rH   rI   r   r   X  s    [rH   r   c                  T    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   y)WrapSerializerFunctionSerSchema"Required[Literal['function-wrap']]r   z Required[WrapSerializerFunction]r   r"   r   r   r   schemar   r   r   Nr   rG   rH   rI   r   r   l  s+    
,,..NrH   r   )r   r   r   r   r   c          	     4    |dk(  rd}t        d| |||||      S )aE  
    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         rI   #wrap_serializer_function_ser_schemar   v  s3    * H	/# rH   c                  ,    e Zd ZU ded<   ded<   ded<   y)FormatSerSchemazRequired[Literal['format']]r   Required[str]formatting_stringr   r   Nr   rG   rH   rI   r   r     s    
%%$$rH   r   r   )r   c               ,    |dk(  rd}t        d| |      S )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     rI   format_ser_schemar     s#     &&	x;LXabbrH   c                  "    e Zd ZU ded<   ded<   y)ToStringSerSchemazRequired[Literal['to-string']]r   r   r   Nr   rG   rH   rI   r   r     s    
((rH   r   c                2    t        d      }| dk7  r| |d<   |S )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     rI   to_string_ser_schemar     s%     	+A&&"+HrH   c                  ,    e Zd ZU ded<   ded<   ded<   y)ModelSerSchemaRequired[Literal['model']]r   Required[type[Any]]clsRequired[CoreSchema]r   Nr   rG   rH   rI   r   r     s    
$$	  rH   r   c                    t        d| |      S )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     rI   model_ser_schemar     s     wC??rH   c                  6    e Zd ZU ded<   ded<   ded<   ded<   y	)
InvalidSchemazRequired[Literal['invalid']]r   r    refr   metadata	SerSchemaserializationNr   rG   rH   rI   r   r     s    
&&	H rH   r   c                    t        d| |      S )a]  
    Returns an invalid schema, used to indicate that a schema is invalid.

        Returns a schema that matches any value, e.g.:

    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     rI   invalid_schemar     s     ycHEErH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)ComputedFieldz#Required[Literal['computed-field']]r   r   property_namer   r   r    aliasr   r   Nr   rG   rH   rI   r   r     s    
--  ''JrH   r   )r   r   c               "    t        d| |||      S )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   s       rI   computed_fieldr     s     ]-_dow rH   c                  6    e Zd ZU ded<   ded<   ded<   ded<   y	)
	AnySchemazRequired[Literal['any']]r   r    r   r   r   r   r   Nr   rG   rH   rI   r   r     s    
""	HrH   r   r   r   r   c                     t        d| ||      S )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      rI   
any_schemar     s    & u#P]^^rH   c                  6    e Zd ZU ded<   ded<   ded<   ded<   y	)

NoneSchemazRequired[Literal['none']]r   r    r   r   r   r   r   Nr   rG   rH   rI   r   r   (  s    
##	HrH   r   c                     t        d| ||      S )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      rI   none_schemar   /  s    & v3Q^__rH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)
BoolSchemazRequired[Literal['bool']]r   r"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r   r   E  s    
##L	HrH   r   c                "    t        d| |||      S )ae  
    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       rI   bool_schemar   M  s    . vf#`mnnrH   c                  r    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   y)	IntSchemazRequired[Literal['int']]r   r,   multiple_oflegeltgtr"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r   r   g  s8    
""GGGGL	HrH   r   	r   r   r   r   r   r#   r   r   r   c        	        ,    t        d| ||||||||
      S )a  
    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	            rI   
int_schemar   t  s0    D # rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   y)FloatSchemazRequired[Literal['float']]r   r"   r2   r   r   r   r   r   r   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r   r     s>    
$$IIIIL	HrH   r   
r2   r   r   r   r   r   r#   r   r   r   c        
        .    t        d| |||||||||	      S )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   r2   r   r   r   r   r   r#   r   r   r   r   r   s
             rI   float_schemar     s3    H ## rH   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   y)DecimalSchemazRequired[Literal['decimal']]r   r"   r2   r
   r   r   r   r   r   r,   
max_digitsdecimal_placesr#   r    r   r   r   r   r   Nr   rG   rH   rI   r   r     sI    
&&KKKKOL	HrH   r   r2   r   r   r   r   r   r   r  r#   r   r   r   c                2    t        d|||||||| ||	|
|      S )a  
    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   r2   r#   r   r   r   r   r  s               rI   decimal_schemar    s9    R %## rH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)ComplexSchemazRequired[Literal['complex']]r   r"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r  r  /  s    
&&L	HrH   r  r   c                "    t        d| |||      S )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       rI   complex_schemar
  7  s     2 # rH   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   y)StringSchemaz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   Nr   rG   rH   rI   r  r  Y  sJ    
""%%OONN44L	HrH   r  r  r  r  r  r  r  r<   r#   r:   r   r   r   c                2    t        d| |||||||||	|
|      S )aC  
    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  r  r  r  r  r  r<   r#   r:   r   r   r   r   r  s               rI   
str_schemar  i  s9    Z )!3# rH   c                  T    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   y)BytesSchemazRequired[Literal['bytes']]r   r,   r  r  r"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r  r    s(    
$$OOL	HrH   r  r  r  r#   r   r   r   c           	     &    t        d| |||||      S )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   r  r  r#   r   r   r   r   r  s         rI   bytes_schemar    s&    8 # rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   y)
DateSchemazRequired[Literal['date']]r   r"   r#   r   r   r   r   r   Literal['past', 'future']now_opr,   now_utc_offsetr    r   r   r   r   r   Nr   rG   rH   rI   r  r    s@    
##LHHHH%% 	HrH   r  
r#   r   r   r   r   r  r  r   r   r   c        
        .    t        d| |||||||||	      S )a  
    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  r  r   r   r   r   r   s
             rI   date_schemar"    s3    J %# rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   y)
TimeSchemaz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   Nr   rG   rH   rI   r$  r$    s>    
##LHHHH8888	HrH   r$  truncate
r#   r   r   r   r   r&  r(  r   r   r   c        
        .    t        d| |||||||||	      S )a  
    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   r&  r(  r   r   r   r   r*  s
             rI   time_schemar,  *  s3    J #5# rH   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   y)DatetimeSchemazRequired[Literal['datetime']]r   r"   r#   r   r   r   r   r   r  r  r%  r&  r,   r  r'  r(  r    r   r   r   r   r   Nr   rG   rH   rI   r.  r.  ^  sL    
''LLLLL%%88 88	HrH   r.  r#   r   r   r   r   r  r&  r  r(  r   r   r   c                2    t        d| |||||||||	|
|      S )a  
    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  r&  r  r(  r   r   r   r   r/  s               rI   datetime_schemar1  p  s9    V #%5# rH   c                  r    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   y)TimedeltaSchemazRequired[Literal['timedelta']]r   r"   r#   r	   r   r   r   r   r'  r(  r    r   r   r   r   r   Nr   rG   rH   rI   r3  r3    s8    
((LMMMM88	HrH   r3  	r#   r   r   r   r   r(  r   r   r   c        	        ,    t        d| ||||||||
      S )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   r(  r   r   r   r   r4  s	            rI   timedelta_schemar6    s0    F 5# rH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)LiteralSchemazRequired[Literal['literal']]r   Required[list[Any]]expectedr    r   r   r   r   r   Nr   rG   rH   rI   r8  r8    s    
&&!!	HrH   r8  c               "    t        d| |||      S )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       rI   literal_schemar=    s    0 y8xgtuurH   c                  h    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   y)
EnumSchemazRequired[Literal['enum']]r   Required[Any]r   r9  memberszLiteral['str', 'int', 'float']sub_typezCallable[[Any], Any]missingr"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r?  r?    s6    
##	  ,,!!L	HrH   r?  )rB  rC  r#   r   r   r   c               *    t        d| |||||||	      S )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   rA  rB  rC  r#   r   r   r   r   )r   rA  rB  rC  r#   r   r   r   s           rI   enum_schemarF    s-    L #
 
rH   c                  ,    e Zd ZU ded<   ded<   ded<   y)MissingSentinelSchemaz%Required[Literal['missing-sentinel']]r   r   r   r   r   Nr   rG   rH   rI   rH  rH  L  s    
//rH   rH  c                    t        d| |      S )z,Returns a schema for the `MISSING` sentinel.missing-sentinel)r   r   r   r   )r   r   s     rI   missing_sentinel_schemarK  R  s     # rH   )nullr"   r,   r   r    r   r   c                  J    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   y)IsInstanceSchemaz Required[Literal['is-instance']]r   r@  r   r    cls_reprr   r   r   r   r   Nr   rG   rH   rI   rN  rN  c  s$    
**	M	HrH   rN  )rO  r   r   r   c               $    t        d| ||||      S )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   rO  r   r   r   r   r   rO  r   r   r   s        rI   is_instance_schemarT  l  s    : hC(bo rH   c                  J    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   y)IsSubclassSchemaz Required[Literal['is-subclass']]r   r   r   r    rO  r   r   r   r   r   Nr   rG   rH   rI   rV  rV    s$    
**	M	HrH   rV  c               $    t        d| ||||      S )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-subclassrR  r   rS  s        rI   is_subclass_schemarY    s     @ hC(bo rH   c                  6    e Zd ZU ded<   ded<   ded<   ded<   y	)
CallableSchemazRequired[Literal['callable']]r   r    r   r   r   r   r   Nr   rG   rH   rI   r[  r[    s    
''	HrH   r[  c                     t        d| ||      S )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      rI   callable_schemar^    s    & zsXUbccrH   c                  J    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   y)
UuidSchemazRequired[Literal['uuid']]r   zLiteral[1, 3, 4, 5, 7]versionr"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r`  r`    s$    
####L	HrH   r`  ra  r#   r   r   r   c                $    t        d| ||||      S )Nr   )r   ra  r#   r   r   r   r   rb  s        rI   uuid_schemard    s     WVx_l rH   c                  ,    e Zd ZU ded<   ded<   ded<   y)IncExSeqSerSchemaz-Required[Literal['include-exclude-sequence']]r   zset[int]rT   rW   Nr   rG   rH   rI   rf  rf    s    
77rH   rf  rT   rW   c                    t        d| |      S )Nzinclude-exclude-sequencer   rT   rW   r   rg  s     rI   filter_seq_schemarj    s    97T[\\rH   c                  h    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   y)
ListSchemazRequired[Literal['list']]r   r   items_schemar,   r  r  r"   	fail_fastr#   r    r   r   r   IncExSeqOrElseSerSchemar   Nr   rG   rH   rI   rl  rl    s3    
##OOOL	H**rH   rl  )r  r  rn  r#   r   r   r   c               *    t        d| |||||||	      S )a  
    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   rm  r  r  rn  r#   r   r   r   r   rm  r  r  rn  r#   r   r   r   s           rI   list_schemars    s-    @ !#
 
rH   )extras_schemar#   r   r   r   TupleSchemac               P    |t        |       }| |gz   } nd}t        | |||||      S )a  
    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)rm  variadic_item_indexr#   r   r   r   )lentuple_schema)rm  rt  r#   r   r   r   rw  s          rI   tuple_positional_schemarz  6  sG    B  !,/#}o5"!/# rH   )r  r  r#   r   r   r   c          
     B    t        | xs
 t               gd||||||      S )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   )rm  rw  r  r  r#   r   r   r   )ry  r   )rm  r  r  r#   r   r   r   s          rI   tuple_variable_schemar|  g  s4    @ "2jl3#	 	rH   c                  r    e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   d	ed<   ded<   ded<   ded<   y)ru  zRequired[Literal['tuple']]r   Required[list[CoreSchema]]rm  r,   rw  r  r  r"   rn  r#   r    r   r   r   ro  r   Nr   rG   rH   rI   ru  ru    s9    
$$,,OOOL	H**rH   )rw  r  r  rn  r#   r   r   r   c               ,    t        d| ||||||||
      S )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   rm  rw  r  r  rn  r#   r   r   r   r   )	rm  rw  r  r  rn  r#   r   r   r   s	            rI   ry  ry    s0    J !/# rH   c                  h    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   y)	SetSchemazRequired[Literal['set']]r   r   rm  r,   r  r  r"   rn  r#   r    r   r   r   r   r   Nr   rG   rH   rI   r  r    s3    
""OOOL	HrH   r  c               *    t        d| |||||||	      S )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   rq  r   rr  s           rI   
set_schemar    s-    D !#
 
rH   c                  h    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   y)FrozenSetSchemazRequired[Literal['frozenset']]r   r   rm  r,   r  r  r"   rn  r#   r    r   r   r   r   r   Nr   rG   rH   rI   r  r    s3    
((OOOL	HrH   r  c               *    t        d| |||||||	      S )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   rq  r   rr  s           rI   frozenset_schemar    s-    D !#
 
rH   c                  T    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   y)GeneratorSchemazRequired[Literal['generator']]r   r   rm  r,   r  r  r    r   r   r   ro  r   Nr   rG   rH   rI   r  r  I  s)    
((OO	H**rH   r  )r  r  r   r   r   c          	     &    t        d| |||||      S )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   rm  r  r  r   r   r   r   )rm  r  r  r   r   r   s         rI   generator_schemar  S  s'    H !# rH   c                  ,    e Zd ZU ded<   ded<   ded<   y)IncExDictSerSchemaz)Required[Literal['include-exclude-dict']]r   	IncExDictrT   rW   Nr   rG   rH   rI   r  r    s    
33rH   r  c                    t        d| |      S )Nzinclude-exclude-dictri  r   rg  s     rI   filter_dict_schemar    s    5wPWXXrH   c                  r    e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   d	ed<   ded<   ded<   ded<   y)
DictSchemazRequired[Literal['dict']]r   r   keys_schemavalues_schemar,   r  r  r"   rn  r#   r    r   r   r   IncExDictOrElseSerSchemar   Nr   rG   rH   rI   r  r    s9    
##OOOL	H++rH   r  c               ,    t        d| ||||||||
      S )a7  
    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  r  r  rn  r#   r   r   r   r   )	r  r  r  r  rn  r#   r   r   r   s	            rI   dict_schemar    s0    H ## rH   c                  "    e Zd ZU ded<   ded<   y)NoInfoValidatorFunctionSchemaLiteral['no-info']r   NoInfoValidatorFunctionr   Nr   rG   rH   rI   r  r    s    
%%rH   r  c                  ,    e Zd ZU ded<   ded<   ded<   y)WithInfoValidatorFunctionSchemaRequired[Literal['with-info']]r   z#Required[WithInfoValidatorFunction]r   r    rx   Nr   rG   rH   rI   r  r    s    
((11OrH   r  c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)_ValidatorFunctionSchemaRequired[ValidationFunction]r   r   r   r    r   r   r   r   r   Nr   rG   rH   rI   r  r    s    **  	HrH   r  c                  "    e Zd ZU ded<   ded<   y)BeforeValidatorFunctionSchemaz$Required[Literal['function-before']]r   r   json_schema_input_schemaNr   rG   rH   rI   r  r    s    
..((rH   r  )r   r  r   r   c          	     ,    t        dd| d|||||      S )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         rI   !no_info_before_validator_functionr    s,    F #:!9# rH   )rx   r   r  r   r   c          	     z    |t        j                  dt        d       t        dt        d| |      |||||      S )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   rx   r  warningswarnDeprecationWarningr   )r   r   rx   r   r  r   r   s          rI   #with_info_before_validator_functionr  "  sQ    P  e	
 [8PZ[!9# rH   c                      e Zd ZU ded<   y)AfterValidatorFunctionSchemaz#Required[Literal['function-after']]r   Nr   rG   rH   rI   r  r  \  s    
--rH   r  c          	     ,    t        dd| d|||||      S )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         rI    no_info_after_validator_functionr  `  s,    B #:!9# rH   )rx   r   r   r   c               x    |t        j                  dt        d       t        dt        d| |      ||||      S )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   rx   r   r   r   s         rI   "with_info_after_validator_functionr    sN    L  d	
 [8PZ[# rH   c                      e Zd ZdddZy)ValidatorFunctionWrapHandlerNc                    y rk   rG   )rS   r   outer_locations      rI   r   z%ValidatorFunctionWrapHandler.__call__  s    rH   rk   )r   r   r  zstr | int | Nonerq   r   r   rG   rH   rI   r  r    s    rH   r  c                  "    e Zd ZU ded<   ded<   y)!NoInfoWrapValidatorFunctionSchemar  r   NoInfoWrapValidatorFunctionr   Nr   rG   rH   rI   r  r    s    
))rH   r  c                  ,    e Zd ZU ded<   ded<   ded<   y)#WithInfoWrapValidatorFunctionSchemar  r   z'Required[WithInfoWrapValidatorFunction]r   r    rx   Nr   rG   rH   rI   r  r    s    
((55OrH   r  c                  T    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   y)WrapValidatorFunctionSchemar   r   zRequired[WrapValidatorFunction]r   r   r   r    r   r   r  r   r   r   r   Nr   rG   rH   rI   r  r    s+    
,,--  	H((rH   r  c          	     ,    t        dd| d|||||      S )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, 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         rI   no_info_wrap_validator_functionr    s,    L #:!9# rH   )rx   r  r   r   r   c          	     z    |t        j                  dt        d       t        dt        d| |      |||||      S )ag  
    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   rx   r  r   r   r   s          rI   !with_info_wrap_validator_functionr  	  sQ    R  c	
 [8PZ[!9# rH   c                  J    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   y)PlainValidatorFunctionSchemar   r   r  r   r    r   r   r  r   r   r   r   Nr   rG   rH   rI   r  r  T	  s%    
--**	H((rH   r  c               *    t        dd| d||||      S )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        rI    no_info_plain_validator_functionr  ]	  s(    < #:!9# rH   c               x    |t        j                  dt        d       t        dt        d| |      ||||      S )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   rx   r   r  r   r   s         rI   "with_info_plain_validator_functionr  	  sN    @  d	
 [8PZ[!9# rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   d	ed<   d	ed<   ded<   ded<   ded<   y)WithDefaultSchemazRequired[Literal['default']]r   r   r   r   rN   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   Nr   rG   rH   rI   r  r  	  sA    
&&  LNN $$11L	HrH   r  )	rN   r  r  r  r+   r#   r   r   r   c       	        J    t        d| ||||||||	
      }
|t        ur||
d<   |
S )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
    rN   )
r   r   r  r  r  r+   r#   r   r   r   )r   r   )r   rN   r  r  r  r+   r#   r   r   r   r   s              rI   with_default_schemar  	  sF    N 	'#=)#	A '')HrH   c                  J    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   y)NullableSchemazRequired[Literal['nullable']]r   r   r   r"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r  r  	  s$    
''  L	HrH   r  c               $    t        d| ||||      S )a  
    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        rI   nullable_schemar  
  s    4 v3an rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   y)UnionSchemaz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']r[   r#   r   r   r   r   r   Nr   rG   rH   rI   r  r  $
  sB    
$$FF;;
++L	HrH   r  )r  r  r  r  r[   r   r   r   c               ,    t        d| ||||||||
      S )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  r[   r   r   r   r   )	r  r  r  r  r  r[   r   r   r   s	            rI   union_schemar  3
  s0    J #+11# rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   y)TaggedUnionSchemaz!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   Nr   rG   rH   rI   r  r  f
  sB    
++11vv;;L	HrH   r  )r  r  r  r#   r'   r   r   r   c               .    t        d| |||||||||	      S )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
             rI   tagged_union_schemar  t
  s3    H #+11'# rH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)ChainSchemazRequired[Literal['chain']]r   r~  stepsr    r   r   r   r   r   Nr   rG   rH   rI   r  r  
  s    
$$%%	HrH   r  c               "    t        d| |||      S )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       rI   chain_schemar  
  s    > wex_lmmrH   c                  T    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   y)LaxOrStrictSchemaz"Required[Literal['lax-or-strict']]r   r   
lax_schemastrict_schemar"   r#   r    r   r   r   r   r   Nr   rG   rH   rI   r  r  
  s*    
,,$$''L	HrH   r  c          	     &    t        d| |||||      S )a  
    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         rI   lax_or_strict_schemar  
  s'    V ## rH   c                  J    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   y)JsonOrPythonSchemaz#Required[Literal['json-or-python']]r   r   json_schemapython_schemar    r   r   r   r   r   Nr   rG   rH   rI   r   r   1  s%    
--%%''	HrH   r   c               $    t        d| ||||      S )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        rI   json_or_python_schemar  :  s$    L ## rH   c                  ^    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   y)TypedDictFieldz%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   Callable[[Any], bool]serialization_exclude_ifNr   rG   rH   rI   r  r  j  s1    
//  NTT33rH   r  )r  r
  r  r  r   r  c          
     (    t        d| ||||||      S )aO  
    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          rI   typed_dict_fieldr  u  s)    8 )/3!9	 	rH   c                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   y)TypedDictSchemazRequired[Literal['typed-dict']]r   z#Required[dict[str, TypedDictField]]fields	type[Any]r   r    cls_namelist[ComputedField]computed_fieldsr"   r#   r   rt  r$   extra_behaviorrJ   r   r   r   r   r   r   r}   Nr   rG   rH   rI   r  r    sK    
))//	NM((L!!K	HrH   r  )r   r  r  r#   rt  r  rJ   r   r   r   r}   c               2    t        d| |||||||||	|
|      S )an  
    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   r  r   r  r  r#   rt  r  rJ   r   r   r   r}   r   )r  r   r  r  r#   rt  r  rJ   r   r   r   r}   s               rI   typed_dict_schemar    s9    ^ '#%# rH   c                  ^    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   d	ed<   ded<   y)
ModelFieldz Required[Literal['model-field']]r   r   r   r	  r
  r    r  r"   r  r  r  frozenr   r   Nr   rG   rH   rI   r  r    s1    
**  TT33LrH   r  )r
  r  r  r  r  r   c          
     (    t        d| ||||||      S )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          rI   model_fieldr"    s)    8 )/3!9	 	rH   c                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   d	ed<   ded<   ded<   ded<   y)ModelFieldsSchemaz!Required[Literal['model-fields']]r   zRequired[dict[str, ModelField]]r  r    
model_namer  r  r"   r#   r   rt  extras_keys_schemar$   r  r'   r   r   r   r   r   Nr   rG   rH   rI   r$  r$  !  sG    
++++O((L""!!	HrH   r$  )
r%  r  r#   rt  r&  r  r'   r   r   r   c       
        0    t        d| |||||||||	|
      S )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   r  r%  r  r#   rt  r&  r  r'   r   r   r   r   )r  r%  r  r#   rt  r&  r  r'   r   r   r   s              rI   model_fields_schemar)  0  s6    R '#-%'# rH   c                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   d	ed<   ded<   ded<   d	ed<   d	ed<   ded<   ded<   ded<   ded<   ded<   y)ModelSchemar   r   r   r   r  generic_originr   r   r"   custom_init
root_modelr    	post_initr)   r*   r#   r  r$   r  r   r}   r   r   r   r   r   Nr   rG   rH   rI   r+  r+  i  sX    
$$	  NJJLL!!	HrH   r+  )r,  r-  r.  r/  r*   r#   r  r  r}   r   r   r   c               6    t        d| |||||||||	|
|||      S )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   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   s                 rI   model_schemar1  {  s?    D %1%# rH   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   y)DataclassFieldz$Required[Literal['dataclass-field']]r   r   namer   r   r"   kw_onlyinit	init_onlyr  r	  r
  r    r  r  r   r   r  r  Nr   rG   rH   rI   r3  r3    sF    
..
  M
JOLTT33rH   r3  )	r5  r6  r7  r
  r  r  r   r  r  c       	        0    t        d| ||||||||	||
      S )a6  
    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   r4  r   r5  r6  r7  r
  r  r  r  r   r  r   )r4  r   r5  r6  r7  r
  r  r  r   r  r  s              rI   dataclass_fieldr:    s6    R )/3!9 rH   c                  h    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   y)DataclassArgsSchemaz#Required[Literal['dataclass-args']]r   r   dataclass_namezRequired[list[DataclassField]]r  r  r  r"   collect_init_onlyr    r   r   r   r   r   r$   r  Nr   rG   rH   rI   r<  r<    s7    
--!!**((	H!!rH   r<  )r  r>  r   r   r   r  c               *    t        d| |||||||	      S )a  
    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=  r  r  r>  r   r   r   r  r   )r=  r  r  r>  r   r   r   r  s           rI   dataclass_args_schemarA  $  s-    L %'+#%
 
rH   c                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   y)DataclassSchemazRequired[Literal['dataclass']]r   r   r   r  r,  r   r   zRequired[list[str]]r  r    r  r"   r/  r)   r*   r#   r  r   r   r   r   r   slotsr   r}   Nr   rG   rH   rI   rC  rC  W  sV    
((	  MOJJLL	HKrH   rC  )r,  r  r/  r*   r#   r   r   r   r  rD  r}   c               6    t        d| |||||||||	|
|||      S )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   r,  r  r  r   r/  r*   r#   r   r   r   r  rD  r}   r   )r   r   r  r,  r  r/  r*   r#   r   r   r   r  rD  r}   s                 rI   dataclass_schemarG  i  s?    P %1# rH   c                  6    e Zd ZU ded<   ded<   ded<   ded<   y	)
ArgumentsParameterr   r4  r   r   zCLiteral['positional_only', 'positional_or_keyword', 'keyword_only']r[   r	  r   Nr   rG   rH   rI   rI  rI    s    
  
MMIIrH   rI  )r[   r   c                    t        | |||      S )a  
    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
    r4  r   r[   r   r   rK  s       rI   arguments_parameterrL    s    6 tFUKKrH   )uniformzunpacked-typed-dictVarKwargsModec                  r    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   y)ArgumentsSchemazRequired[Literal['arguments']]r   z"Required[list[ArgumentsParameter]]arguments_schemar"   r?   r>   r   var_args_schemarN  var_kwargs_modevar_kwargs_schemar    r   r   r   r   r   Nr   rG   rH   rI   rP  rP    s=    
((88""!!	HrH   rP  )r?   r>   rR  rS  rT  r   r   r   c               ,    t        d| ||||||||
      S )aD  
    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   rQ  r?   r>   rR  rS  rT  r   r   r   r   )	rV  r?   r>   rR  rS  rT  r   r   r   s	            rI   rQ  rQ    s0    T ")+''+# rH   c                  6    e Zd ZU ded<   ded<   ded<   ded<   y	)
ArgumentsV3Parameterr   r4  r   r   zLiteral['positional_only', 'positional_or_keyword', 'keyword_only', 'var_args', 'var_kwargs_uniform', 'var_kwargs_unpacked_typed_dict']r[   r	  r   Nr   rG   rH   rI   rX  rX    s!    
    JIrH   rX  c                    t        | |||      S )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
    rK  r   rK  s       rI   arguments_v3_parameterrZ    s    F tFUKKrH   c                  ^    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   y)ArgumentsV3Schemaz!Required[Literal['arguments-v3']]r   z$Required[list[ArgumentsV3Parameter]]rQ  r"   r?   r>   zLiteral['forbid', 'ignore']r  r    r   r   r   r   r   Nr   rG   rH   rI   r\  r\  E  s1    
++:://	HrH   r\  )r?   r>   r  r   r   r   c          
     (    t        d| ||||||      S )a4  
    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   rQ  r?   r>   r  r   r   r   r   )rV  r?   r>   r  r   r   r   s          rI   arguments_v3_schemar_  P  s*    N ")+%#	 	rH   c                  ^    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   y)
CallSchemazRequired[Literal['call']]r   r   rQ  zRequired[Callable[..., Any]]r   r    function_namer   r   r   r   r   r   r   Nr   rG   rH   rI   ra  ra    s1    
##****	HrH   ra  )rb  r   r   r   r   c          
     (    t        d| ||||||      S )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   rQ  r   rb  r   r   r   r   r   )rV  r   rb  r   r   r   r   s          rI   call_schemare    s*    T "###	 	rH   c                  ^    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   y)CustomErrorSchemaz!Required[Literal['custom-error']]r   r   r   r   r  r    r  r  r  r   r   r   r   r   Nr   rG   rH   rI   rg  rg    s1    
++  $$;;	HrH   rg  )r  r  r   r   r   c          
     (    t        d| ||||||      S )a  
    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          rI   custom_error_schemarj    s*    D +11#	 	rH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)
JsonSchemazRequired[Literal['json']]r   r   r   r    r   r   r   r   r   Nr   rG   rH   rI   rl  rl    s    
##	HrH   rl  c               "    t        d| |||      S )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       rI   r  r    s    V vf#`mnnrH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   d	ed<   ded<   d	ed<   ded<   ded<   y)	UrlSchemazRequired[Literal['url']]r   r,   r  	list[str]allowed_schemesr"   host_requiredr    default_hostdefault_portdefault_pathr#   r   r   r   r   r   Nr   rG   rH   rI   ro  ro  3  sA    
""OL	HrH   ro  r  rq  rr  rs  rt  ru  preserve_empty_pathr#   r   r   r   c                0    t        d| |||||||||	|
      S )aB  
    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   r  rq  rr  rs  rt  ru  rw  r#   r   r   r   r   rv  s              rI   
url_schemarz  A  s6    N '#!!!/# rH   c                  |    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   d	ed<   ded<   d	ed<   ded<   ded<   y)MultiHostUrlSchemaz#Required[Literal['multi-host-url']]r   r,   r  rp  rq  r"   rr  r    rs  rt  ru  r#   r   r   r   r   r   Nr   rG   rH   rI   r|  r|  x  sA    
--OL	HrH   r|  c                0    t        d| |||||||||	|
      S )a  
    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   ry  r   rv  s              rI   multi_host_url_schemar~    s6    N '#!!!/# rH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)DefinitionsSchemaz Required[Literal['definitions']]r   r   r   r~  definitionsr   r   r   r   Nr   rG   rH   rI   r  r    s     
**  ++rH   r  c                    t        d| |      S )ab  
    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     rI   definitions_schemar    s    ( -KXXrH   c                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)DefinitionReferenceSchemaz#Required[Literal['definition-ref']]r   r   
schema_refr    r   r   r   r   r   Nr   rG   rH   rI   r  r    s    
--	HrH   r  c                "    t        d| |||      S )aw  
    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       rI   definition_reference_schemar    s    : *#`m rH   )4r   r   r   r"   r,   r   r  r    r   r   r   r   r	   r<  rJ  rE  rQ  rX  r]  r   r   r   r   r   r   r  r  r   r   rN   r  r  r  r  r  r  r  r(  r   r@  rF  rV  r^  rd  ri  r   r   r   r  r  r   r	  )r!  r9  r  r   )gno_such_attributejson_invalid	json_typeneeds_python_objectrecursion_looprC  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_mismatchrE  	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                 \    | j                         D ci c]  \  }}|	|| c}}S c c}}w rk   )items)kwargskvs      rI   r   r     s,    #\\^=^TQq}AqD^===s   
((c`field_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.c                T    t        j                  dt               t        | |fd|i|S )Nr  rx   r  r  r  r  r   rx   r   r  s       rI   field_before_validator_functionr    s.    MMm /xaJaZ`aarH   e`general_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.c                 L    t        j                  dt               t        | i |S )Nr  r  argsr  s     rI   !general_before_validator_functionr    s&    MMo /???rH   a`field_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.c                T    t        j                  dt               t        | |fd|i|S )Nr  rx   r  r  r  r  r  s       rI   field_after_validator_functionr     s.    MMk .h`:`Y_``rH   c`general_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.c                 L    t        j                  dt               t        | i |S )Nr  r  r  s     rI    general_after_validator_functionr    &    MMm .t>v>>rH   _`field_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.c                T    t        j                  dt               t        | |fd|i|S )Nr  rx   r  r  r  r  r  s       rI   field_wrap_validator_functionr    s0     MMi -Xv_*_X^__rH   a`general_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.c                 L    t        j                  dt               t        | i |S )Nr	  r  r  s     rI   general_wrap_validator_functionr  $  s&    MMk -d=f==rH   a`field_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.c                R    t        j                  dt               t        | fd|i|S )Nr  rx   r  r  r  r  )r   rx   r  s      rI   field_plain_validator_functionr  -  s,    MMk .hX:XQWXXrH   c`general_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.c                 L    t        j                  dt               t        | i |S )Nr  r  r  s     rI    general_plain_validator_functionr  6  r  rH   )FieldValidationInfoFieldValidatorFunctionGeneralValidatorFunctionFieldWrapValidatorFunctionc                    t         j                  |       }|t        d|  d      dd l}d|  d|j                   d} |j
                  |t        d       |S )	Nz)module 'pydantic_core' has no attribute ''r   `z` is deprecated, use `z
` instead.   r  )_deprecated_import_lookupgetAttributeErrorr  rB   r  r  )	attr_namenew_attrr  msgs       rI   __getattr__r!  J  se    (,,Y7HHSTUVV)283D3D2EZPc-!<rH   )r   ExpectedSerializationTypesrq   r   )r   SerializerFunctionr   bool | Noner   r$  r   CoreSchema | Noner   r   rq   r   )r   WrapSerializerFunctionr   r$  r   r$  r   r%  r   r%  r   r   rq   r   )r   r    r   r   rq   r   )r   r   rq   r   )r   r  r   r   rq   r   )NN)r   r   r   dict[str, Any] | Nonerq   r   )
r   r    r   r   r   r   r   r'  rq   r   )r   r   r   r'  r   SerSchema | Nonerq   r   )r   r   r   r'  r   r(  rq   r   )NNNN)
r#   r$  r   r   r   r'  r   r(  rq   r   )r   
int | Noner   r)  r   r)  r   r)  r   r)  r#   r$  r   r   r   r'  r   r(  rq   r   )r2   r$  r   float | Noner   r*  r   r*  r   r*  r   r*  r#   r$  r   r   r   r'  r   r(  rq   r   )r2   r$  r   Decimal | Noner   r+  r   r+  r   r+  r   r+  r   r)  r  r)  r#   r$  r   r   r   r'  r   r(  rq   r   )
r#   r$  r   r   r   r'  r   r(  rq   r  )r  zstr | Pattern[str] | Noner  r)  r  r)  r  r$  r  r$  r  r$  r<   z)Literal['rust-regex', 'python-re'] | Noner#   r$  r:   r$  r   r   r   r'  r   r(  rq   r  )r  r)  r  r)  r#   r$  r   r   r   r'  r   r(  rq   r  )r#   r$  r   date | Noner   r,  r   r,  r   r,  r   Literal['past', 'future'] | Noner  r)  r   r   r   r'  r   r(  rq   r  )r#   r$  r   time | Noner   r.  r   r.  r   r.  r&  &Literal['aware', 'naive'] | int | Noner(  r'  r   r   r   r'  r   r(  rq   r$  )r#   r$  r   datetime | Noner   r0  r   r0  r   r0  r  r-  r&  r/  r  r)  r(  r'  r   r   r   r'  r   r(  rq   r.  )r#   r$  r   timedelta | Noner   r1  r   r1  r   r1  r(  r'  r   r   r   r'  r   r(  rq   r3  )
r:  	list[Any]r   r   r   r'  r   r(  rq   r8  )r   r   rA  r2  rB  z%Literal['str', 'int', 'float'] | NonerC  zCallable[[Any], Any] | Noner#   r$  r   r   r   r'  r   r(  rq   r?  )r   r'  r   r(  rq   rH  )r   r   rO  r   r   r   r   r'  r   r(  rq   rN  )r   r  rO  r   r   r   r   r'  r   r(  rq   rN  )r   r   r   r'  r   r(  rq   r[  )ra  z#Literal[1, 3, 4, 5, 6, 7, 8] | Noner#   r$  r   r   r   r'  r   r(  rq   r`  )rT   set[int] | NonerW   r3  rq   rf  rk   )rm  r%  r  r)  r  r)  rn  r$  r#   r$  r   r   r   r'  r   IncExSeqOrElseSerSchema | Nonerq   rl  )rm  list[CoreSchema]rt  r%  r#   r$  r   r   r   r'  r   r4  rq   ru  )rm  r%  r  r)  r  r)  r#   r$  r   r   r   r'  r   r4  rq   ru  )rm  r5  rw  r)  r  r)  r  r)  rn  r$  r#   r$  r   r   r   r'  r   r4  rq   ru  )rm  r%  r  r)  r  r)  rn  r$  r#   r$  r   r   r   r'  r   r(  rq   r  )rm  r%  r  r)  r  r)  rn  r$  r#   r$  r   r   r   r'  r   r(  rq   r  )rm  r%  r  r)  r  r)  r   r   r   r'  r   r4  rq   r  )rT   IncExDict | NonerW   r6  rq   r  )r  r%  r  r%  r  r)  r  r)  rn  r$  r#   r$  r   r   r   r'  r   r(  rq   r  )r   r  r   r   r   r   r  r%  r   r'  r   r(  rq   r  )r   WithInfoValidatorFunctionr   r   rx   r   r   r   r  r%  r   r'  r   r(  rq   r  )r   r  r   r   r   r   r  r%  r   r'  r   r(  rq   r  )r   r7  r   r   rx   r   r   r   r   r'  r   r(  rq   r  )r   r  r   r   r   r   r  r%  r   r'  r   r(  rq   r  )r   WithInfoWrapValidatorFunctionr   r   rx   r   r  r%  r   r   r   r'  r   r(  rq   r  )r   r  r   r   r  r%  r   r'  r   r(  rq   r  )r   r7  rx   r   r   r   r  r%  r   r'  r   r(  rq   r  )r   r   rN   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   r'  r   r(  rq   r  )r   r   r#   r$  r   r   r   r'  r   r(  rq   r  )r  z)list[CoreSchema | tuple[CoreSchema, str]]r  r$  r  r   r  r   r  zdict[str, str | int] | Noner[   z(Literal['smart', 'left_to_right'] | Noner   r   r   r'  r   r(  rq   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   r'  r   r(  rq   r  )
r  r5  r   r   r   r'  r   r(  rq   r  )r  r   r  r   r#   r$  r   r   r   r'  r   r(  rq   r  )r  r   r  r   r   r   r   r'  r   r(  rq   r   )r   r   r  r$  r
  4str | list[str | int] | list[list[str | int]] | Noner  r   r  r$  r   r'  r  Callable[[Any], bool] | Nonerq   r  )r  zdict[str, TypedDictField]r   type[Any] | Noner  r   r  list[ComputedField] | Noner#   r$  rt  r%  r  ExtraBehavior | NonerJ   r$  r   r   r   r'  r   r(  r}   r   rq   r  )r   r   r
  r9  r  r   r  r$  r  r:  r  r$  r   r'  rq   r  )r  zdict[str, ModelField]r%  r   r  r<  r#   r$  rt  r%  r&  r%  r  r=  r'   r$  r   r   r   r'  r   r(  rq   r$  )r   r  r   r   r,  r;  r-  r$  r.  r$  r/  r   r*   7Literal['always', 'never', 'subclass-instances'] | Noner#   r$  r  r$  r  r=  r}   r   r   r   r   r'  r   r(  rq   r+  )r4  r    r   r   r5  r$  r6  r$  r7  r$  r
  r9  r  r   r  r$  r   r'  r  r:  r  r$  rq   r3  )r=  r    r  zlist[DataclassField]r  r<  r>  r$  r   r   r   r'  r   r(  r  r=  rq   r<  )r   r  r   r   r  rp  r,  r;  r  r   r/  r$  r*   r>  r#   r$  r   r   r   r'  r   r(  r  r$  rD  r$  r}   r   rq   rC  )
r4  r    r   r   r[   zJLiteral['positional_only', 'positional_or_keyword', 'keyword_only'] | Noner   r9  rq   rI  )rV  zlist[ArgumentsParameter]r?   r$  r>   r$  rR  r%  rS  zVarKwargsMode | NonerT  r%  r   r   r   r'  r   r(  rq   rP  )
r4  r    r   r   r[   zLiteral['positional_only', 'positional_or_keyword', 'keyword_only', 'var_args', 'var_kwargs_uniform', 'var_kwargs_unpacked_typed_dict'] | Noner   r9  rq   rX  )rV  zlist[ArgumentsV3Parameter]r?   r$  r>   r$  r  z"Literal['forbid', 'ignore'] | Noner   r   r   r'  r   r(  rq   r\  )rV  r   r   zCallable[..., Any]rb  r   r   r%  r   r   r   r'  r   r(  rq   ra  )r   r   r  r    r  r   r  r'  r   r   r   r'  r   r(  rq   rg  )
r   r%  r   r   r   r'  r   r(  rq   rl  )r  r)  rq  list[str] | Nonerr  r$  rs  r   rt  r)  ru  r   rw  r$  r#   r$  r   r   r   r'  r   r(  rq   ro  )r  r)  rq  r?  rr  r$  rs  r   rt  r)  ru  r   rw  r$  r#   r$  r   r   r   r'  r   r(  rq   r|  )r   r   r  r5  rq   r  )NNN)
r  r    r   r   r   r'  r   r(  rq   r  )r  r   rq   r   )r   r7  rx   r    r   r   )r   r8  rx   r    r   r   )r   r7  rx   r    )r  r    rq   object)rE   
__future__r   _annotationssysr  collections.abcr   r   r   r   r   r	   r  r
   rer   typingr   r   r   r   r   typing_extensionsr   r   version_infor   r   r   r   pydantic_corer   ImportErrorr@  r$   r   rK   rF   rL   rP   rv   rz   r"  r   r   $GeneralPlainNoInfoSerializerFunction"GeneralPlainInfoSerializerFunction"FieldPlainNoInfoSerializerFunction FieldPlainInfoSerializerFunctionr#  r   r   r   r   #GeneralWrapNoInfoSerializerFunction!GeneralWrapInfoSerializerFunction!FieldWrapNoInfoSerializerFunctionFieldWrapInfoSerializerFunctionr&  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"  r$  r,  r.  r1  r3  r6  r8  r=  r?  rF  rH  rK  JsonTyperN  rT  rV  rY  r[  r^  r`  rd  rf  rj  ro  rl  rs  rz  r|  ru  ry  r  r  r  r  r  r  r   r,   r    r  r  r  r  r  r  r  r  r7  r  ValidationFunctionr  r  r  r  r  r  r  r  r  r  r8  r  WrapValidatorFunctionr  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+  r1  r3  r:  r<  rA  rC  rG  rI  rL  rN  rP  rQ  rX  rZ  r\  r_  ra  re  rg  rj  rl  r  ro  rz  r|  r~  r  r  r  r  MYPYr   CoreSchemaTypeCoreSchemaFieldType	ErrorTyper   r  r  r   r  r  r  r  r  r  r  r!  rG   rH   rI   <module>rZ     s!&  
 3 
  - 4 4   ? ? 1g+ g??44/
%3
 34P"% P"f L	9 K:|D>#* >#B.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	 
 3E !Ye !@ $#	IU FIU  KOrv'1=GZo"	  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 !!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\	   "(,!%###'+&*&*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 
 fh	V> 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"?	  (	MI  %"H%s   y yy