+
     ij\ c                  sF  a  0 t $ R t^ RIHt ^ RIt^ RIt^ RIHtH	t	 ^ RI
HtH
t
HtHt ^ RIHt ^ RIHt ^ RIHtHtHtHtHt ^ RIHtHt ]P6                  ER8  d   ^ R	IHt M^ R	IHt ]P6                  ER8  d   ^ R
IHtHtHt M
^ R
IHtHtHt ]'       d   ^ RI H!t! M ^ RI H!t! ]ER,          t$ ! R R]RR7      t%Rt&R]'R&   ]! RRRR7      t( ! R R]](,          4      t) ! R R])](,          ]4      t* ! R R]](,          4      t+]ER,          t, ! R R]RR7      t-R R  lt.]].]3,          t/]]])],          .]3,          t0]]].]3,          t1]]]]*],          .]3,          t2]]/]0]1]23,          t3]ER,          t4  ! R# R$]RR7      t5R%RR&RR'RR(R!/R) R* llt6 ! R+ R,]4      t7]]]7.]3,          t8]]]7])],          .]3,          t9]]]]7.]3,          t:]]]]7]*],          .]3,          t;]]8]9]:];3,          t< ! R- R.]RR7      t=R%RR&RR/RR'RR(R!/R0 R1 llt> ! R2 R3]RR7      t?R(R"/R4 R5 llt@ ! R6 R7]RR7      tAR(R"/R8 R9 lltB ! R: R;]RR7      tCR< R= ltD]]-]5]=]?]A]C3,          tE ! R> R?]RR7      tFERR@ RA lltG ! RB RC]RR7      tHRDRRER/RF RG lltI ! RH RI]RR7      tJRJRRERRKR/RL RM lltK ! RN RO]RR7      tLRJRRERRKR/RP RQ lltM ! RR RS]RR7      tNERRT RU lltO ! RV RW]RR7      tPRXRRYRRZRR[RR\RR]RRJRRERRKR/	R^ R_ lltQ ! R` Ra]RR7      tRRbRRXRRYRRZRR[RR\RR]RRJRRERRKR/
Rc Rd lltS ! Re Rf]RR7      tTRbRRXRRYRRZRR[RR\RRgRRhRR]RRJRRERRKR/Ri Rj lltU ! Rk Rl]RR7      tVR]RRJRRERRKR/Rm Rn lltW ! Ro Rp]RR7      tXRqRRrRRsRRtRRuRRvRRwRR]RRxRRJRRERRKR/Ry Rz lltY ! R{ R|]RR7      tZRrRRsRR]RRJRRERRKR/R} R~ llt[ ! R R]RR7      t\R]RRYRRZRR[RR\RRRRRRJRRERRKR/
R R llt] ! R R]RR7      t^R]RRYRRZRR[RR\RRRRRRJRRERRKR/
R R llt_ ! R R]RR7      t`R]RRYRRZRR[RR\RRRRRRRRRRJRRERRKR/R R llta ! R R]RR7      tbR]RRYRRZRR[RR\RRRRJRRERRKR/	R R lltc ! R R]RR7      tdRJRRERRKR/R R llte ! R R]RR7      tfRRRRR]RRJRRERRKR/R R lltg ! R R]RR7      thERR R llti]ER,          tj ! R R]RR7      tkRRRJRRERRKR/R R lltl ! R R]RR7      tmRRRJRRERRKR/R R lltn ! R R]RR7      toRJRRERRKR/R R lltp ! R R]RR7      tqRRR]RRJRRERRKR/R R lltr ! R R]RR7      tsRRRR/R R lltt]]s]E3,          tu ! R R]RR7      tvERRsRRrRRRR]RRJRRERRKR/R R llltwRRR]RRJRRERRKR/R R lltxERRsRRrRR]RRJRRERRKR/R R lllty ! R R]RR7      tzRRRsRRrRRRR]RRJRRERRKR/R R llt{ ! R R]RR7      t|ERRsRRrRRRR]RRJRRERRKR/R R lllt} ! R R]RR7      t~ERRsRRrRRRR]RRJRRERRKR/R R lllt ! R R]RR7      tERRsRRrRRJRRERRKR/R R lllt]]]]3,          ,          t ! R R]RR7      tRRRR/R R llt]]]E3,          t ! R R]RR7      tERRsRRrRRRR]RRJRRERRKR/R R lllt]].]3,          t ! R R]4      t]]]+],          .]3,          t ! R R]RR7      t]]]3,          t ! R R]RR7      t ! R R]RR7      tRJRRRRERRKR/R R lltRRRJRRRRERRKR/R R llt ! R R]RR7      tRJRRRRERRKR/R R lltRRRJRRERRKR/R R llt ! R R]4      t]]].]3,          t ! R R]4      t]]]]+],          .]3,          t ! R R]RR7      t]]]3,          t ! R R]RR7      tRJRRRRERRKR/R R lltRRRRRJRRERRKR/R R llt ! R R]RR7      tRJRRRRERRKR/R ER  lltRRRJRRRRERRKR/ER ER llt ! ER ER]RR7      tER]!ERRERRERRER	RR]RRJRRERRKR/	ER
 ER llt ! ER ER]RR7      tR]RRJRRERRKR/ER ER llt ! ER ER]RR7      tERRERRERRERRERRRJRRERRKR/ER ER llt ! ER ER]RR7      tERRERRERRR]RERRRJRRERRKR/ER ER llt ! ER ER]RR7      tRJRRERRKR/ER  ER! llt ! ER" ER#]RR7      tR]RRJRRERRKR/ER$ ER% llt ! ER& ER']RR7      tRJRRERRKR/ER( ER) llt ! ER* ER+]RR7      tER,RER-RER.RER/RRERER0R/ER1 ER2 llt ! ER3 ER4]RR7      tER5RER6RER7RR]RRRER8RER9RRJRRERRKRER:R/ER; ER< llt ! ER= ER>]RR7      tER-RER.RER/RER0RER?RRER/ER@ ERA llt ! ERB ERC]RR7      tERDRER7RR]RRRERERER8RERRRJRRERRKR/
ERF ERG llt ! ERH ERI]RR7      tERJRERKRERLRERMRERNRR]RER?RER8RER:RRJRRERRKR/ERO ERP llt ! ERQ ERR]RR7      tERSRERTRERURER-RER.RER/RRERER0RER?R/	ERV ERW llt ! ERX ERY]RR7      tER7RERZRRJRRERRKRER8R/ER[ ER\ llt ! ER] ER^]RR7      tERJRER6RERMRERNRR]RRJRRERRKRER?RER_RER:R/ER` ERa llt ! ERb ERc]RR7      tERRRDR/ERd ERe llt]ER,          tR]'ERf&    ! ERg ERh]RR7      tERiRERjRERkRERlRERmRRJRRERRKR/ERn ERo llt ! ERp ERq]RR7      tERRRDR/ERr ERs llt ! ERt ERu]RR7      tERiRERjRER8RRJRRERRKR/ERv ERw llt ! ERx ERy]RR7      tERzRR'RRJRRERRKR/ER{ ER| llt ! ER} ER~]RR7      tERRERRRJRRERRKR/ER ER llt ! ER ER]RR7      tERRJRRERRKR/ER ER lllt ! ER ER]RR7      tRrRERRERRERRERRERRERRR]RRJRRERRKR/ER ER llt ! ER ER]RR7      tRrRERRERRERRERRERRERRR]RRJRRERRKR/ER ER llt ! ER ER]RR7      tER ER lt ! ER ER]RR7      tERER ER lltRt]'       gt   ]. ]FN]JN]LN]NN]PN]RN]TN]XN]ZN]\N]^N]`N]bN]dN]hN]fN]kN]mN]oN]vN]zN]|N]~N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]N]qN]VN5,          tM ]ER,          t]ER,          t]ER,          tER ER lt]! ER4      ER ER l4       t]! ER4      ER 4       t]! ER4      ER ER l4       t]! ER4      ER 4       t]! ER4      ER ER l4       t]! ER4      ER 4       t]! ER4      ER ER l4       t]! ER4      ER 4       tER]+ER]ER]ER]/t]'       d   ]+tER ER ltR#   ]" d    ]#! 4       t! ELi ; i(  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)ProtocolRequired	TypeAlias)PydanticUndefinedc                  s4   ] tR t^+t$ Rt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&   R]R&   R]R&   R]R&   R]R &   R!]R"&   R#]R$&   R]R%&   R]R&&   R]R'&   R]R(&   R)tR*# )+
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`.
strZtitleboolstrictExtraBehaviorZextra_fields_behaviorZtyped_dict_totalfrom_attributesZloc_by_alias0Literal['always', 'never', 'subclass-instances']revalidate_instancesvalidate_defaultintZstr_max_lengthZstr_min_lengthZstr_strip_whitespaceZstr_to_lowerZstr_to_upperallow_inf_nanzLiteral['iso8601', 'float']Zser_json_timedeltaz-Literal['iso8601', 'seconds', 'milliseconds']Zser_json_temporalz Literal['utf8', 'base64', 'hex']Zser_json_bytesz'Literal['null', 'constants', 'strings']Zser_json_inf_nanZval_json_bytesZhide_input_in_errorsZvalidation_error_causecoerce_numbers_to_str"Literal['rust-regex', 'python-re']regex_enginez+Union[bool, Literal['all', 'keys', 'none']]Zcache_stringsvalidate_by_aliasvalidate_by_nameZserialize_by_aliasZurl_preserve_empty_path N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r%       @/usr/lib64/python3.14/site-packages/pydantic_core/core_schema.pyr   r   +   s    'R JL(( JJ 33DD44==44  44>>!!r-   r   F)totalz2set[int | str] | dict[int | str, IncExCall] | Noner   	IncExCallContextTTz
Any | None)Z	covariantdefaultc                  s0   ] tR t^tRt]R R l4       t]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       tR R ltR R ltR R ltRtR# ) SerializationInfoz%Extra data used during serialization.c                   V ^8  d   QhRR/#    returnr0   r%   format   "r.   __annotate__SerializationInfo.__annotate__          r-   c                    R# )z0The `include` argument set during serialization.Nr%   self   &r.   includeZSerializationInfo.include        	r-   c               r4   r5   r%   r8   r:   r.   r;   r<      r=   r-   c                r>   )z0The `exclude` argument set during serialization.Nr%   r?   rA   r.   excludeZSerializationInfo.exclude   rC   r-   c               r4   r6   r7   r1   r%   r8   r:   r.   r;   r<             r-   c                r>   )z"The current serialization context.Nr%   r?   rA   r.   contextZSerializationInfo.context   rC   r-   c               r4   )r6   r7   zLiteral['python', 'json'] | strr%   r8   r:   r.   r;   r<      s      5 r-   c                r>   )z0The serialization mode set during serialization.Nr%   r?   rA   r.   modeZSerializationInfo.mode   rC   r-   c               r4   r6   r7   r   r%   r8   r:   r.   r;   r<      s      $ r-   c                r>   )z1The `by_alias` argument set during serialization.Nr%   r?   rA   r.   by_aliasZSerializationInfo.by_alias   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<      s      t r-   c                r>   )z6The `exclude_unset` argument set during serialization.Nr%   r?   rA   r.   exclude_unsetZSerializationInfo.exclude_unset   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<            $ r-   c                r>   )z9The `exclude_defaults` argument set during serialization.Nr%   r?   rA   r.   exclude_defaultsZ"SerializationInfo.exclude_defaults   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<      s      d r-   c                r>   )z5The `exclude_none` argument set during serialization.Nr%   r?   rA   r.   exclude_noneZSerializationInfo.exclude_none   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<      s       r-   c                r>   )z@The `exclude_computed_fields` argument set during serialization.Nr%   r?   rA   r.   exclude_computed_fieldsZ)SerializationInfo.exclude_computed_fields   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<      rL   r-   c                r>   )z9The `serialize_as_any` argument set during serialization.Nr%   r?   rA   r.   serialize_as_anyZ"SerializationInfo.serialize_as_any   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<      s      D r-   c                r>   )z3The `round_trip` argument set during serialization.Nr%   r?   rA   r.   
round_tripZSerializationInfo.round_trip   rC   r-   c               r4   rI   r%   r8   r:   r.   r;   r<      s    ''d'r-   c                	    R # Nr%   r?   rA   r.   mode_is_jsonZSerializationInfo.mode_is_json   s    Cr-   c               r4   r6   r7   r   r%   r8   r:   r.   r;   r<      s    !!!r-   c                	rR   rS   r%   r?   rA   r.   __str__ZSerializationInfo.__str__   s    cr-   c               r4   rU   r%   r8   r:   r.   r;   r<      s    ""#"r-   c                	rR   rS   r%   r?   rA   r.   __repr__ZSerializationInfo.__repr__   s    sr-   r%   N)r&   r'   r(   r)   r*   propertyrB   rD   rG   rH   rJ   rK   rM   rN   rO   rP   rQ   rT   rV   rW   r,   r%   r-   r.   r3   r3      s    /                      (!""r-   r3   c                  s0    ] tR t^tRt]R R l4       tRtR# )FieldSerializationInfoz+Extra data used during field serialization.c               r4   rU   r%   r8   r:   r.   r;   Z#FieldSerializationInfo.__annotate__   s      C r-   c                r>   )z/The name of the current field being serialized.Nr%   r?   rA   r.   
field_nameZ!FieldSerializationInfo.field_name   rC   r-   r%   N)r&   r'   r(   r)   r*   rX   rZ   r,   r%   r-   r.   rY   rY      s    5 r-   rY   c                  s    ] tR t^tRt]R R l4       t]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
RtR# )ValidationInfoz"Extra data used during validation.c               r4   rE   r%   r8   r:   r.   r;   ValidationInfo.__annotate__   rF   r-   c                r>   )zThe current validation context.Nr%   r?   rA   r.   rG   ZValidationInfo.context   rC   r-   c               r4   )r6   r7   CoreConfig | Noner%   r8   r:   r.   r;   r\      s      ) r-   c                r>   )z/The CoreConfig that applies to this validation.Nr%   r?   rA   r.   configZValidationInfo.config   rC   r-   c               r4   )r6   r7   zLiteral['python', 'json']r%   r8   r:   r.   r;   r\      s      / r-   c                r>   )z3The type of input data we are currently validating.Nr%   r?   rA   r.   rH   ZValidationInfo.mode   rC   r-   c               r4   )r6   r7   dict[str, Any]r%   r8   r:   r.   r;   r\      s      n r-   c                r>   )z(The data being validated for this model.Nr%   r?   rA   r.   dataZValidationInfo.data   rC   r-   c               r4   )r6   r7   
str | Noner%   r8   r:   r.   r;   r\      s      J r-   c                r>   )z_
The name of the current field being validated if this validator is
attached to a model field.
Nr%   r?   rA   r.   rZ   ZValidationInfo.field_name   s     	r-   r%   N)r&   r'   r(   r)   r*   rX   rG   r^   rH   r`   rZ   r,   r%   r-   r.   r[   r[      sg    ,         r-   r[   c                  "    ] tR tRt$ R]R&   RtR# )SimpleSerSchemai  z$Required[ExpectedSerializationTypes]typer%   Nr&   r'   r(   r)   r+   r,   r%   r-   r.   rc   rc     s    
..r-   rc   c                    V ^8  d   QhRRRR/# )r6   rd   ExpectedSerializationTypesr7   rc   r%   r8   r:   r.   r;   r;     s     & &6 &? &r-   c                s    \        V R7      # )zk
Returns a schema for serialization with a custom type.

Args:
    type: The type to use for serialization
rd   )rc   rh   rA   r.   simple_ser_schemari     s     %%r-   alwaysjson-unless-nonec                  T    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   RtR# ) PlainSerializerFunctionSerSchemai/  #Required[Literal['function-plain']]rd   zRequired[SerializerFunction]functionr   is_field_serializerinfo_arg
CoreSchemareturn_schemaWhenUsed	when_usedr%   Nre   r%   r-   r.   rm   rm   /  s%    
--**Nr-   rm   rp   rq   rs   ru   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r6   ro   SerializerFunctionrp   bool | Nonerq   rs   CoreSchema | Noneru   rt   r7   rm   r%   r8   r:   r.   r;   r;   8  sF        % 	
 %  &r-   c          	     s6    VR8X  d   Rp\        RV VVVVR7      # )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
rj   Nfunction-plain)rd   ro   rp   rq   rs   ru   _dict_not_none)ro   rp   rq   rs   ru      &$$$$r.   $plain_serializer_function_ser_schemar~   8  s0    & H	/# r-   c                  &    ] tR tRtRR R lltRtR# )SerializerFunctionWrapHandleriX  Nc               $    V ^8  d   QhRRRRRR/# )r6   input_valuer
   	index_keyzint | str | Noner7   r%   r8   r:   r.   r;   Z*SerializerFunctionWrapHandler.__annotate__Y  s    [[C[4D[SV[r-   c               	rR   rS   r%   )r@   r   r      """r.   __call__Z&SerializerFunctionWrapHandler.__call__Y  s    X[r-   r%   rS   r&   r'   r(   r)   r   r,   r%   r-   r.   r   r   X  s    [[r-   r   c                  s^    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R	]R&   R]R&   RtR# )WrapSerializerFunctionSerSchemail  "Required[Literal['function-wrap']]rd   z Required[WrapSerializerFunction]ro   r   rp   rq   rr   schemars   rt   ru   r%   Nre   r%   r-   r.   r   r   l  s+    
,,..Nr-   r   r   c               s4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r6   ro   WrapSerializerFunctionrp   rx   rq   r   ry   rs   ru   rt   r7   r   r%   r8   r:   r.   r;   r;   v  sP        $  %  	 
   %    % r-   c          
     s8    VR8X  d   Rp\        RV VVVVVR7      # )a  
Returns a schema for serialization with a wrap function, can be either a "general" or "field" function.

Args:
    function: The function to use for serialization
    is_field_serializer: Whether the serializer is for a field, e.g. takes `model` as the first argument,
        and `info` includes `field_name`
    info_arg: Whether the function takes an `info` argument
    schema: The schema to use for the inner serialization
    return_schema: Schema to use for serializing return value
    when_used: When the function should be called
rj   Nfunction-wrap)rd   ro   rp   rq   r   rs   ru   r{   )ro   rp   rq   r   rs   ru      &$$$$$r.   #wrap_serializer_function_ser_schemar   v  s3    * H	/# r-   c                  6    ] tR tRt$ R]R&   R]R&   R]R&   RtR	# )
FormatSerSchemai  zRequired[Literal['format']]rd   Required[str]formatting_stringrt   ru   r%   Nre   r%   r-   r.   r   r     s    
%%$$r-   r   c               $    V ^8  d   QhRRRRRR/# )r6   r   r   ru   rt   r7   r   r%   r8   r:   r.   r;   r;     s'     c c cH c^m cr-   c               s.    VR8X  d   Rp\        RWR7      # )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
rk   Nr9   )rd   r   ru   r{   )r   ru   s   &$r.   format_ser_schemar     s      &&	x;Lbbr-   c                  ,    ] tR tRt$ R]R&   R]R&   RtR# )ToStringSerSchemai  zRequired[Literal['to-string']]rd   rt   ru   r%   Nre   r%   r-   r.   r   r     s    
((r-   r   c               rf   )r6   ru   rt   r7   r   r%   r8   r:   r.   r;   r;     s      x IZ r-   c                s4    \        RR7      pV R8w  d   WR&   V# )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-stringrh   rk   ru   )dict)ru   ss   $ r.   to_string_ser_schemar     s#     	+A&&"+Hr-   c                  r   )
ModelSerSchemai  Required[Literal['model']]rd   Required[type[Any]]clsRequired[CoreSchema]r   r%   Nre   r%   r-   r.   r   r     s    
$$	  r-   r   c               r   )r6   r   	type[Any]r   rr   r7   r   r%   r8   r:   r.   r;   r;     s&     @ @) @Z @N @r-   c                    \        RWR7      # )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)rd   r   r   )r   )r   r      &&r.   model_ser_schemar     s     wC??r-   c                  @    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
tR# )InvalidSchemai  zRequired[Literal['invalid']]rd   r   refr_   metadata	SerSchemaserializationr%   Nre   r%   r-   r.   r   r     s    
&&	H r-   r   c               r   )r6   r   ra   r   dict[str, Any] | Noner7   r   r%   r8   r:   r.   r;   r;     s(     F F
 F5J FVc Fr-   c                r   )aE  
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)rd   r   r   r{   )r   r   r   r.   invalid_schemar     s     ycEEr-   c                  J    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   RtR# )ComputedFieldi  z#Required[Literal['computed-field']]rd   r   property_namer   rs   r   aliasr_   r   r%   Nre   r%   r-   r.   r   r     s    
--  ''Jr-   r   r   r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r6   r   r   rs   rr   r   ra   r   r   r7   r   r%   r8   r:   r.   r;   r;     s4      '1=GZor-   c                   \        RWW#R7      # )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)rd   r   rs   r   r   r{   )r   rs   r   r      &&$$r.   computed_fieldr     s     ]_d r-   c                  r   )	AnySchemai  zRequired[Literal['any']]rd   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s    
""	Hr-   r   r   r   c               (    V ^8  d   QhRRRRRRRR/# )	r6   r   ra   r   r   r   SerSchema | Noner7   r   r%   r8   r:   r.   r;   r;     s2     _ __)>_Vf__r-   c                    \        RWVR7      # )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
anyrd   r   r   r   r{   r   r   r      $$$r.   
any_schemar     s    & u#P]^^r-   c                  r   )
NoneSchemai(  zRequired[Literal['none']]rd   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r   (  s    
##	Hr-   r   c               r   )	r6   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   /  s2     ` ``)>`Vf``r-   c                r   )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
noner   r{   r   r   r.   none_schemar   /  s    & v3Q^__r-   c                  r   )
BoolSchemaiE  zRequired[Literal['bool']]rd   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r   E  s    
##L	Hr-   r   c          
     r   )r6   r   rx   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   M  sA     o oo	o $o $	o
 or-   c                r   )a1  
Returns a schema that matches a bool value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    strict: Whether the value should be a bool or a value that can be converted to a bool
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   rd   r   r   r   r   r{   r   r   r   r      &&&&r.   bool_schemar   M  s    . vfnnr-   c                  s|    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   R]R&   RtR# )	IntSchemaig  zRequired[Literal['int']]rd   r   multiple_oflegeltgtr   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r   g  s8    
""GGGGL	Hr-   r   r   r   r   r   r   r   c               s@    V ^8  d   QhRRRRRRRRRRRRR	R
RRRRRR/
# )r6   r   
int | Noner   r   r   r   r   rx   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   t  sn     - -- 	- 		-
 	- 	- - 
- $- $- -r-   c        	        ,    \        RV VVVVVVVVR7
      # )am  
Returns a schema that matches a int value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    multiple_of: The value must be a multiple of this number
    le: The value must be less than or equal to this number
    ge: The value must be greater than or equal to this number
    lt: The value must be strictly less than this number
    gt: The value must be strictly greater than this number
    strict: Whether the value should be a int or a value that can be converted to a int
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )
rd   r   r   r   r   r   r   r   r   r   r{   )	r   r   r   r   r   r   r   r   r   	   $$$$$$$$$r.   
int_schemar   t  s0    D # r-   c                  s    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )FloatSchemai  zRequired[Literal['float']]rd   r   r   floatr   r   r   r   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s>    
$$IIIIL	Hr-   r   r   c               sD    V ^8  d   QhRRRRRRRRRRRRR	RR
RRRRRRR/# )r6   r   rx   r   zfloat | Noner   r   r   r   r   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;     sx     0 00 0 		0
 	0 	0 	0 0 
0 $0 $0 0r-   c        
        .    \        RV VVVVVVVVV	R7      # )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   )rd   r   r   r   r   r   r   r   r   r   r   r{   )
r   r   r   r   r   r   r   r   r   r   
   $$$$$$$$$$r.   float_schemar     s3    H ## r-   c                  s    ] tR tRt$ 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tR# )DecimalSchemai  zRequired[Literal['decimal']]rd   r   r   r   r   r   r   r   r   r   
max_digitsdecimal_placesr   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     sI    
&&KKKKOL	Hr-   r   r   r   c               sL    V ^8  d   Qh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/# )r6   r   rx   r   zDecimal | Noner   r   r   r   r   r   r   r   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;     s     7 77  7 		7
 	7 	7 	7 7 7 7 
7 $7 $7 7r-   c                s2    \        RVVVVVVVV VV	V
VR7      # )aN  
Returns a schema that matches a decimal value, e.g.:

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

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

Args:
    allow_inf_nan: Whether to allow inf and nan values
    multiple_of: The value must be a multiple of this number
    le: The value must be less than or equal to this number
    ge: The value must be greater than or equal to this number
    lt: The value must be strictly less than this number
    gt: The value must be strictly greater than this number
    max_digits: The maximum number of decimal digits allowed
    decimal_places: The maximum number of decimal places allowed
    strict: Whether the value should be a float or a value that can be converted to a float
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
decimal)rd   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.   decimal_schemar     s9    R %## r-   c                  r   )ComplexSchemai/  zRequired[Literal['complex']]rd   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r   /  s    
&&L	Hr-   r   c          
     r   )r6   r   rx   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   7  s<       
 $	
 $ r-   c                s"    \        RV VVVR7      # )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   $$$$r.   complex_schemar   7  s     2 # r-   c                  s    ] tR tRt$ 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tR# )StringSchemaiY  zRequired[Literal['str']]rd   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   r%   Nre   r%   r-   r.   r   r   Y  sJ    
""%%OONN44L	Hr-   r   r   r   r   r   r   r   r"   r    c               sL    V ^8  d   Qh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/# )r6   r   zstr | Pattern[str] | Noner   r   r   r   rx   r   r   r"   z)Literal['rust-regex', 'python-re'] | Noner   r    r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   i  s     ; ;&; ; 	;
 "; ; ; <; ; '; 
; $; $; ;r-   c                2    \        RV VVVVVVVVV	V
VR7      # )a  
Returns a schema that matches a string value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    pattern: A regex pattern that the value must match
    max_length: The value must be at most this length
    min_length: The value must be at least this length
    strip_whitespace: Whether to strip whitespace from the value
    to_lower: Whether to convert the value to lowercase
    to_upper: Whether to convert the value to uppercase
    regex_engine: The regex engine to use for pattern validation. Default is 'rust-regex'.
        - `rust-regex` uses the [`regex`](https://docs.rs/regex) Rust
          crate, which is non-backtracking and therefore more DDoS
          resistant, but does not support all regex features.
        - `python-re` use the [`re`](https://docs.python.org/3/library/re.html) module,
          which supports all regex features, but may be slower.
    strict: Whether the value should be a string or a value that can be converted to a string
    coerce_numbers_to_str: Whether to enable coercion of any `Number` type to `str` (not applicable in `strict` mode).
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )rd   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.   
str_schemar   i  s9    Z )!3# r-   c                  ^    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   RtR# )BytesSchemai  zRequired[Literal['bytes']]rd   r   r   r   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s(    
$$OOL	Hr-   r   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r6   r   r   r   r   rx   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;     sP     $ $$ $ 	$
 
$ $$ $$ $r-   c           
     &    \        RV VVVVVR7      # )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
bytes)rd   r   r   r   r   r   r   r{   )r   r   r   r   r   r   s   $$$$$$r.   bytes_schemar     s&    8 # r-   c                      ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )
DateSchemai  zRequired[Literal['date']]rd   r   r   r   r   r   r   r   Literal['past', 'future']now_opr   now_utc_offsetr   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s@    
##LHHHH%% 	Hr-   r   r   r   c               D    V ^8  d   QhRRRRRRRRRRRR	R
RRRRRRRRR/# )r6   r   rx   r   zdate | Noner   r   r   r    Literal['past', 'future'] | Noner   r   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;     sx     1 11 	1 		1
 	1 	1 -1 1 
1 $1 $1 1r-   c        
        r   )a0  
Returns a schema that matches a date value, e.g.:

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

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

Args:
    strict: Whether the value should be a date or a value that can be converted to a date
    le: The value must be less than or equal to this date
    ge: The value must be greater than or equal to this date
    lt: The value must be strictly less than this date
    gt: The value must be strictly greater than this date
    now_op: The value must be in the past or future relative to the current date
    now_utc_offset: The value must be in the past or future relative to the current date with this utc offset
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )rd   r   r   r   r   r   r   r   r   r   r   r{   )
r   r   r   r   r   r   r   r   r   r   r   r.   date_schemar     s3    J %# r-   c                  r   )
TimeSchemai  zRequired[Literal['time']]rd   r   r   r   r   r   r   r   %Union[Literal['aware', 'naive'], int]tz_constraintLiteral['truncate', 'error']microseconds_precisionr   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s>    
##LHHHH8888	Hr-   r   r   r   Ztruncatec               r   )r6   r   rx   r   ztime | Noner   r   r   r   &Literal['aware', 'naive'] | int | Noner   r   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   *  sx     1 11 	1 		1
 	1 	1 :1 91 
1 $1 $1 1r-   c        
        r   )a8  
Returns a schema that matches a time value, e.g.:

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

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

Args:
    strict: Whether the value should be a time or a value that can be converted to a time
    le: The value must be less than or equal to this time
    ge: The value must be greater than or equal to this time
    lt: The value must be strictly less than this time
    gt: The value must be strictly greater than this time
    tz_constraint: The value must be timezone aware or naive, or an int to indicate required tz offset
    microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )rd   r   r   r   r   r   r   r   r   r   r   r{   )
r   r   r   r   r   r   r   r   r   r   r   r.   time_schemar   *  s3    J #5# r-   c                  s    ] tR tRt$ 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tR# )DatetimeSchemai^  zRequired[Literal['datetime']]rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r   ^  sL    
''LLLLL%%88 88	Hr-   r   c               sL    V ^8  d   Qh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/# )r6   r   rx   r   zdatetime | Noner   r   r   r   r   r   r   r   r   r   r   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;   p  s     9 99 	9 		9
 	9 	9 -9 :9 9 99 
9 $9 $9 9r-   c                r   )ad  
Returns a schema that matches a datetime value, e.g.:

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

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

Args:
    strict: Whether the value should be a datetime or a value that can be converted to a datetime
    le: The value must be less than or equal to this datetime
    ge: The value must be greater than or equal to this datetime
    lt: The value must be strictly less than this datetime
    gt: The value must be strictly greater than this datetime
    now_op: The value must be in the past or future relative to the current datetime
    tz_constraint: The value must be timezone aware or naive, or an int to indicate required tz offset
        TODO: use of a tzinfo where offset changes based on the datetime is not yet supported
    now_utc_offset: The value must be in the past or future relative to the current datetime with this utc offset
    microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )rd   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.   datetime_schemar   p  s9    V #%5# r-   c                  s|    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   RtR# )TimedeltaSchemai  zRequired[Literal['timedelta']]rd   r   r   r   r   r   r   r   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s8    
((LMMMM88	Hr-   r   c               s@    V ^8  d   QhRRRRRRRRRRRR	R
RRRRRRR/
# )r6   r   rx   r   ztimedelta | Noner   r   r   r   r   r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;     sn     . .. 	. 		.
 	. 	. 9. 
. $. $. .r-   c        	        r   )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   )
rd   r   r   r   r   r   r   r   r   r   r{   )	r   r   r   r   r   r   r   r   r   r   r.   timedelta_schemar     s0    F 5# r-   c                  r   )LiteralSchemai  zRequired[Literal['literal']]rd   Required[list[Any]]expectedr   r   r_   r   r   r   r%   Nre   r%   r-   r.   r   r     s    
&&!!	Hr-   r   c          
     r   )r6   r  	list[Any]r   ra   r   r   r   r   r7   r   r%   r8   r:   r.   r;   r;     sC     v vv 
v $	v
 $v vr-   c               r   )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)rd   r  r   r   r   r{   )r  r   r   r      &$$$r.   literal_schemar    s    0 y8xuur-   c                  r    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   R]R&   R]R&   RtR# )
EnumSchemai  zRequired[Literal['enum']]rd   Required[Any]r   r  memberszLiteral['str', 'int', 'float']sub_typezCallable[[Any], Any]missingr   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s6    
##	  ,,!!L	Hr-   r  r  r  c               <    V ^8  d   QhRRRRRRRRR	R
RRRRRRRR/	# )r6   r   r
   r
  r  r  z%Literal['str', 'int', 'float'] | Noner  zCallable[[Any], Any] | Noner   rx   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sb     0 0	00 4	0
 )0 0 
0 $0 $0 0r-   c               *    \        RV VVVVVVVR7	      # )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)	rd   r   r
  r  r  r   r   r   r   r{   )r   r
  r  r  r   r   r   r      &&$$$$$$r.   enum_schemar    s-    L #
 
r-   c                  r   )
MissingSentinelSchemaiL  z%Required[Literal['missing-sentinel']]rd   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  L  s    
//r-   r  c               r   )r6   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   R  s&     
 
#
#
 
r-   c                s    \        RV VR7      # )z,Returns a schema for the `MISSING` sentinel.missing-sentinel)rd   r   r   r{   )r   r   r   r.   missing_sentinel_schemar  R  s     # r-   c                  rl   )IsInstanceSchemaic  z Required[Literal['is-instance']]rd   r	  r   r   cls_reprr   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  c  s$    
**	M	Hr-   r  r  c               rv   )r6   r   r
   r  ra   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   l  sF      	  
	
 $ $ r-   c          	          \        RWW#VR7      # )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rd   r   r  r   r   r   r{   r   r  r   r   r   r}   r.   is_instance_schemar  l  s    : Cbo r-   c                  rl   )IsSubclassSchemai  z Required[Literal['is-subclass']]rd   r   r   r   r  r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s$    
**	M	Hr-   r  c               rv   )r6   r   r   r  ra   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sF     " "	" " 
	"
 $" $" "r-   c          	     r  )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-subclassr  r{   r  r}   r.   is_subclass_schemar    s    @ Cbo r-   c                  r   )CallableSchemai  zRequired[Literal['callable']]rd   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s    
''	Hr-   r  c               r   )	r6   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     s2     d dd)>dVfddr-   c                r   )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   r   r.   callable_schemar!    s    & zsUbccr-   c                  T    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   RtR# )
UuidSchemai  zRequired[Literal['uuid']]rd   zLiteral[1, 3, 4, 5, 7]versionr   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r#  r#    s$    
####L	Hr-   r#  r$  c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r6   r$  z#Literal[1, 3, 4, 5, 6, 7, 8] | Noner   rx   r   ra   r   r   r   r   r7   r#  r%   r8   r:   r.   r;   r;     sF     
 
0
 
 
	

 $
 $
 
r-   c           	     s     \        R WW#VR7      # )uuid)rd   r$  r   r   r   r   r{   )r$  r   r   r   r   s   $$$$$r.   uuid_schemar'    s     W_l r-   c                  6    ] tR tRt$ R]R&   R]R&   R]R&   RtR# )	IncExSeqSerSchemai  z-Required[Literal['include-exclude-sequence']]rd   zset[int]rB   rD   r%   Nre   r%   r-   r.   r)  r)    s    
77r-   r)  rB   rD   c               $    V ^8  d   QhRRRRRR/# )r6   rB   zset[int] | NonerD   r7   r)  r%   r8   r:   r.   r;   r;     s'     ] ]/ ]? ]^o ]r-   c                    \        R WR7      # )zinclude-exclude-sequencerd   rB   rD   r{   rB   rD      $$r.   filter_seq_schemar/    s    97\\r-   c                  r    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R	]R&   R]R&   R]R&   R]R&   RtR# )
ListSchemai  zRequired[Literal['list']]rd   rr   items_schemar   r   r   r   	fail_fastr   r   r   r_   r   IncExSeqOrElseSerSchemar   r%   Nre   r%   r-   r.   r1  r1    s3    
##OOOL	H**r-   r1  r3  c               <    V ^8  d   QhRRRRRRRRRRR	R
RRRRRR/	# )r6   r2  ry   r   r   r   r3  rx   r   r   ra   r   r   r   IncExSeqOrElseSerSchema | Noner7   r1  r%   r8   r:   r.   r;   r;     sd     * *#* * 	*
 * * 
* $* 2* *r-   c               r  )aV  
Returns a schema that matches a list value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    items_schema: The value must be a list of items that match this schema
    min_length: The value must be a list with at least this many items
    max_length: The value must be a list with at most this many items
    fail_fast: Stop validation on the first error
    strict: The value must be a list with exactly this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
list	rd   r2  r   r   r3  r   r   r   r   r{   r2  r   r   r3  r   r   r   r      &$$$$$$$r.   list_schemar;    s-    @ !#
 
r-   extras_schemac               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r6   r2  list[CoreSchema]r<  ry   r   rx   r   ra   r   r   r   r6  r7   TupleSchemar%   r8   r:   r.   r;   r;   6  sP     - -"- %- 	-
 
- $- 2- -r-   c          	     sZ    Ve   \        V 4      pW.,           p MRp\        V VVVVVR7      # )aE  
Returns a schema that matches a tuple of schemas, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    items_schema: The value must be a tuple with items that match these schemas
    extras_schema: The value must be a tuple with items that match this schema
        This was inspired by JSON schema's `prefixItems` and `items` fields.
        In python's `typing.Tuple`, you can't specify a type for "extra" items -- they must all be the same type
        if the length is variable. So this field won't be set from a `typing.Tuple` annotation on a pydantic model.
    strict: The value must be a tuple with exactly this many items
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
N)r2  variadic_item_indexr   r   r   r   )Zlentuple_schema)r2  r<  r   r   r   r   r@  s   &$$$$$ r.   tuple_positional_schemarB  6  sE    B  !,/#o5"!/# r-   c               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )r6   r2  ry   r   r   r   r   rx   r   ra   r   r   r   r6  r7   r?  r%   r8   r:   r.   r;   r;   g  sZ     ) )#) ) 	)
 ) 
) $) 2) )r-   c               sN    \        T ;'       g    \        4       .^ VVVVVVR7      # )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
)r2  r@  r   r   r   r   r   r   )rA  r   )r2  r   r   r   r   r   r      &$$$$$$r.   tuple_variable_schemarE  g  s7    @ "22jl3#	 	r-   c                  s|    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R
]R&   R]R&   R]R&   R]R&   RtR# )r?  i  zRequired[Literal['tuple']]rd   Required[list[CoreSchema]]r2  r   r@  r   r   r   r3  r   r   r   r_   r   r4  r   r%   Nre   r%   r-   r.   r?  r?    s9    
$$,,OOOL	H**r-   r?  r@  c               s@    V ^8  d   QhRRRRRRRRRRR	RR
RRRRRRR/
# )r6   r2  r>  r@  r   r   r   r3  rx   r   r   ra   r   r   r   r6  r7   r?  r%   r8   r:   r.   r;   r;     sn     0 0"0 $0 	0
 0 0 0 
0 $0 20 0r-   c               r   )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
tuple)
rd   r2  r@  r   r   r3  r   r   r   r   r{   )	r2  r@  r   r   r3  r   r   r   r   	   &$$$$$$$$r.   rA  rA    s0    J !/# r-   c                  r0  )	SetSchemai  zRequired[Literal['set']]rd   rr   r2  r   r   r   r   r3  r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   rI  rI    s3    
""OOOL	Hr-   rI  c               r5  )r6   r2  ry   r   r   r   r3  rx   r   r   ra   r   r   r   r   r7   rI  r%   r8   r:   r.   r;   r;     sd     , ,#, , 	,
 , , 
, $, $, ,r-   c               r  )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
setr8  r{   r9  r:  r.   
set_schemarK    s-    D !#
 
r-   c                  r0  )FrozenSetSchemai  zRequired[Literal['frozenset']]rd   rr   r2  r   r   r   r   r3  r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   rL  rL    s3    
((OOOL	Hr-   rL  c               r5  )r6   r2  ry   r   r   r   r3  rx   r   r   ra   r   r   r   r   r7   rL  r%   r8   r:   r.   r;   r;     sd     , ,#, , 	,
 , , 
, $, $, ,r-   c               r  )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
	frozensetr8  r{   r9  r:  r.   frozenset_schemarN    s-    D !#
 
r-   c                  s^    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   RtR# )GeneratorSchemaiI  zRequired[Literal['generator']]rd   rr   r2  r   r   r   r   r   r_   r   r4  r   r%   Nre   r%   r-   r.   rO  rO  I  s)    
((OO	H**r-   rO  c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r6   r2  ry   r   r   r   r   ra   r   r   r   r6  r7   rO  r%   r8   r:   r.   r;   r;   S  sP     , ,#, , 	,
 
, $, 2, ,r-   c          
     r   )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
	generator)rd   r2  r   r   r   r   r   r{   )r2  r   r   r   r   r   r   r.   generator_schemarR  S  s'    H !# r-   c                  r(  )	IncExDictSerSchemai  z)Required[Literal['include-exclude-dict']]rd   	IncExDictrB   rD   r%   Nre   r%   r-   r.   rS  rS    s    
33r-   rS  c               r*  )r6   rB   zIncExDict | NonerD   r7   rS  r%   r8   r:   r.   r;   r;     s)     Y Y#3 YEU Yas Yr-   c                r+  )zinclude-exclude-dictr,  r{   r-  r.  r.   filter_dict_schemarU    s    5wXXr-   c                  s|    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R
]R&   R]R&   R]R&   R]R&   RtR# )
DictSchemai  zRequired[Literal['dict']]rd   rr   keys_schemavalues_schemar   r   r   r   r3  r   r   r   r_   r   IncExDictOrElseSerSchemar   r%   Nre   r%   r-   r.   rV  rV    s9    
##OOOL	H++r-   rV  c               s@    V ^8  d   QhRRRRRRRRRRR	RR
RRRRRRR/
# )r6   rW  ry   rX  r   r   r   r3  rx   r   r   ra   r   r   r   r   r7   rV  r%   r8   r:   r.   r;   r;     sl     / /"/$/ 	/
 / / / 
/ $/ $/ /r-   c               r   )a  
Returns a schema that matches a dict value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    keys_schema: The value must be a dict with keys that match this schema
    values_schema: The value must be a dict with values that match this schema
    min_length: The value must be a dict with at least this many items
    max_length: The value must be a dict with at most this many items
    fail_fast: Stop validation on the first error
    strict: Whether the keys and values should be validated with strict mode
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   )
rd   rW  rX  r   r   r3  r   r   r   r   r{   )	rW  rX  r   r   r3  r   r   r   r   s	   &&$$$$$$$r.   dict_schemarZ    s0    H ## r-   c                  r   )NoInfoValidatorFunctionSchemai  Literal['no-info']rd   NoInfoValidatorFunctionro   r%   Nre   r%   r-   r.   r[  r[    s    
%%r-   r[  c                  r   )
WithInfoValidatorFunctionSchemai  Required[Literal['with-info']]rd   z#Required[WithInfoValidatorFunction]ro   r   rZ   r%   Nre   r%   r-   r.   r^  r^    s    
((11Or-   r^  c                  r   )_ValidatorFunctionSchemai  Required[ValidationFunction]ro   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r`  r`    s    **  	Hr-   r`  c                  r   )BeforeValidatorFunctionSchemai  z$Required[Literal['function-before']]rd   rr   json_schema_input_schemar%   Nre   r%   r-   r.   rb  rb    s    
..((r-   rb  rc  c               r=  )r6   ro   r]  r   rr   r   ra   rc  ry   r   r   r   r   r7   rb  r%   r8   r:   r.   r;   r;     sN     + +%++ 
	+
 0+ $+ $+ #+r-   c          
     .    \        RRRRV /VVVVVR7      # )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-beforerd   no-inforo   rd   ro   r   r   rc  r   r   r{   ro   r   r   rc  r   r      &&$$$$r.   !no_info_before_validator_functionrj    s0    F )Z:!9# r-   rZ   c               s8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )r6   ro   WithInfoValidatorFunctionr   rr   rZ   ra   r   rc  ry   r   r   r   r   r7   rb  r%   r8   r:   r.   r;   r;   "  sX     7 7'77 	7
 
7 07 $7 $7 #7r-   c          
     ~    Ve   \         P                  ! R\        ^R7       \        R\        RWR7      VVVVVR7      # )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.Z
stacklevelre  	with-inford   ro   rZ   rg  warningswarnDeprecationWarningr|   )ro   r   rZ   r   rc  r   r      &&$$$$$r.   #with_info_before_validator_functionru  "  sN    P  e	
 [8[!9# r-   c                  rb   )AfterValidatorFunctionSchemai\  z#Required[Literal['function-after']]rd   r%   Nre   r%   r-   r.   rv  rv  \  s    
--r-   rv  c               r=  )r6   ro   r]  r   rr   r   ra   rc  ry   r   r   r   r   r7   rv  r%   r8   r:   r.   r;   r;   `  sN     ) )%)) 
	)
 0) $) $) ")r-   c          
     rd  )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-afterrd   rf  ro   rg  r{   rh  ri  r.    no_info_after_validator_functionrx  `  s0    B )Z:!9# r-   c               s4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r6   ro   rk  r   rr   rZ   ra   r   r   r   r   r   r7   rv  r%   r8   r:   r.   r;   r;     sN     4 4'44 	4
 
4 $4 $4 "4r-   c          	     s|    Ve   \         P                  ! R\        ^R7       \        R\        RWR7      VVVVR7      # )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.rm  rw  rn  ro  )rd   ro   r   r   r   r   rp  )ro   r   rZ   r   r   r   ri  r.   "with_info_after_validator_functionry    sK    L  d	
 [8[# r-   c                  r   )ValidatorFunctionWrapHandleri  Nc               r   )r6   r   r
   outer_locationzstr | int | Noner7   r%   r8   r:   r.   r;   Z)ValidatorFunctionWrapHandler.__annotate__  s#      C 9I X[ r-   c               	rR   rS   r%   )r@   r   r{  r   r.   r   Z%ValidatorFunctionWrapHandler.__call__  s    r-   r%   rS   r   r%   r-   r.   rz  rz    s     r-   rz  c                  r   )!NoInfoWrapValidatorFunctionSchemai  r\  rd   NoInfoWrapValidatorFunctionro   r%   Nre   r%   r-   r.   r|  r|    s    
))r-   r|  c                  r   )
#WithInfoWrapValidatorFunctionSchemai  r_  rd   z'Required[WithInfoWrapValidatorFunction]ro   r   rZ   r%   Nre   r%   r-   r.   r~  r~    s    
((55Or-   r~  c                  s^    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   RtR# )WrapValidatorFunctionSchemai  r   rd   zRequired[WrapValidatorFunction]ro   r   r   r   r   rr   rc  r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s+    
,,--  	H((r-   r  c               r=  )r6   ro   r}  r   rr   r   ra   rc  ry   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sN     . .).. 
	.
 0. $. $. !.r-   c          
     s.    \        RRRRV /VVVVVR7      # )az  
Returns a schema which calls a function with a `validator` callable argument which can
optionally be used to call inner validation with the function logic, this is much like the
"onion" implementation of middleware in many popular web frameworks, no `info` argument is passed, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

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

Args:
    function: The validator function to call
    schema: The schema to validate the output of the validator function
    ref: optional unique identifier of the schema, used to reference the schema in other places
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r   rd   rf  ro   rd   ro   r   rc  r   r   r   r{   rh  ri  r.   no_info_wrap_validator_functionr    s0    L )Z:!9# r-   c               8    V ^8  d   QhRRRRRRRRR	RR
RRRRR/# )r6   ro   WithInfoWrapValidatorFunctionr   rr   rZ   ra   rc  ry   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   	  sX     8 8+88 	8
 08 
8 $8 $8 !8r-   c          
     rl  )a  
Returns a schema which calls a function with a `validator` callable argument which can
optionally be used to call inner validation with the function logic, this is much like the
"onion" implementation of middleware in many popular web frameworks, an `info` argument is also passed, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

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

Args:
    function: The validator function to call
    schema: The schema to validate the output of the validator function
    field_name: The name of the field this validator is applied to, if any (deprecated)
    json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
zThe `field_name` argument on `with_info_wrap_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.rm  r   rn  ro  r  rp  )ro   r   rZ   rc  r   r   r   rt  r.   !with_info_wrap_validator_functionr  	  sN    R  c	
 [8[!9# r-   c                  r"  )PlainValidatorFunctionSchemaiT	  rn   rd   ra  ro   r   r   rr   rc  r_   r   r   r   r%   Nre   r%   r-   r.   r  r  T	  s%    
--**	H((r-   r  c               r%  )r6   ro   r]  r   ra   rc  ry   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   ]	  sF     % %%% 
% 0	%
 $% $% "%r-   c          	     s,    \        RRRRV /VVVVR7      # )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
rz   rd   rf  ro   rd   ro   r   rc  r   r   r{   )ro   r   rc  r   r   r}   r.    no_info_plain_validator_functionr  ]	  s,    < )Z:!9# r-   c               rP  )r6   ro   rk  rZ   ra   r   rc  ry   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   	  sP     . .'. . 
	.
 0. $. $. ".r-   c          	     s|    Ve   \         P                  ! R\        ^R7       \        R\        RWR7      VVVVR7      # )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.rm  rz   rn  ro  r  rp  )ro   rZ   r   rc  r   r   r   r.   "with_info_plain_validator_functionr  	  sK    @  d	
 [8[!9# r-   c                  s    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R
]R&   R
]R&   R]R&   R]R&   R]R&   RtR# )WithDefaultSchemai	  zRequired[Literal['default']]rd   r   r   r
   r2   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   r%   Nre   r%   r-   r.   r  r  	  sA    
&&  LNN $$11L	Hr-   r  r2   r  r  r  r   c               sD    V ^8  d   QhRRRRRRRRR	R
RRRRRRRRRRRR/# )r6   r   rr   r2   r
   r  z?Union[Callable[[], Any], Callable[[dict[str, Any]], Any], None]r  rx   r  z*Literal['raise', 'omit', 'default'] | Noner   r   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   	  sy     5 55 5 U	5
 !,5 95 "5 5 
5 $5 $5 5r-   c       	        sL    \        RV VVVVVVVV	R7
      p
V\        Jd   WR&   V
# )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
r2   )
rd   r   r  r  r  r   r   r   r   r   )r|   r   )r   r2   r  r  r  r   r   r   r   r   r   s   &$$$$$$$$$ r.   with_default_schemar  	  sD    N 	'#=)#	A '')Hr-   c                  r"  )NullableSchemai	  zRequired[Literal['nullable']]rd   r   r   r   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  	  s$    
''  L	Hr-   r  c               r%  )r6   r   rr   r   rx   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   
  sF        
	
 $ $ r-   c          	     r  )ac  
Returns a schema that matches a nullable value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    schema: The schema to wrap
    strict: Whether the underlying schema should be validated with strict mode
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
nullable)rd   r   r   r   r   r   r{   )r   r   r   r   r   r}   r.   nullable_schemar  
  s    4 3an r-   c                  s    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )UnionSchemai$
  zRequired[Literal['union']]rd   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']rH   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  $
  sB    
$$FF;;
++L	Hr-   r  r  r  r  r  rH   c               s@    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRR/
# )r6   r  z)list[CoreSchema | tuple[CoreSchema, str]]r  rx   r  ra   r  r  zdict[str, str | int] | NonerH   z(Literal['smart', 'left_to_right'] | Noner   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   3
  sn     0 060 0 "	0
 %0 60 30 
0 $0 $0 0r-   c               r   )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)
rd   r  r  r  r  r  rH   r   r   r   r{   )	r  r  r  r  r  rH   r   r   r   rH  r.   union_schemar  3
  s0    J #+11# r-   c                  s    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )TaggedUnionSchemaif
  z!Required[Literal['tagged-union']]rd   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   r%   Nre   r%   r-   r.   r  r  f
  sB    
++11vv;;L	Hr-   r  r   c               sD    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRRRR/# )r6   r  zdict[Any, CoreSchema]r  zDstr | list[str | int] | list[list[str | int]] | Callable[[Any], Any]r  ra   r  r  z#dict[str, int | str | float] | Noner   rx   r   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   t
  s     P P"PWP "	P
 %P >P P !P 
P $P $P Pr-   c               r   )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)rd   r  r  r  r  r  r   r   r   r   r   r{   )
r  r  r  r  r  r   r   r   r   r   s
   &&$$$$$$$$r.   tagged_union_schemar  t
  s3    H #+11'# r-   c                  r   )ChainSchemai
  zRequired[Literal['chain']]rd   rF  stepsr   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  
  s    
$$%%	Hr-   r  c          
     r   )r6   r  r>  r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   
  sC     n nn 
n $	n
 $n nr-   c               r   )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)rd   r  r   r   r   r{   )r  r   r   r   r  r.   chain_schemar  
  s    > wexmmr-   c                  r   )LaxOrStrictSchemai
  z"Required[Literal['lax-or-strict']]rd   r   
lax_schemastrict_schemar   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  
  s*    
,,$$''L	Hr-   r  c               r   )r6   r  rr   r  r   rx   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   
  sN     3 333 	3
 
3 $3 $3 3r-   c          
     r   )a8  
Returns a schema that uses the lax or strict schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

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

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

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

Args:
    lax_schema: The lax schema to use
    strict_schema: The strict schema to use
    strict: Whether the strict schema should be used
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
lax-or-strict)rd   r  r  r   r   r   r   r{   )r  r  r   r   r   r   ri  r.   lax_or_strict_schemar  
  s'    V ## r-   c                  sT    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   RtR# )JsonOrPythonSchemai1  z#Required[Literal['json-or-python']]rd   r   json_schemapython_schemar   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  1  s%    
--%%''	Hr-   r  c               s0    V ^8  d   QhRRRRRRRRRR	R
R/# )r6   r  rr   r  r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   :  sD     - --- 
	-
 $- $- -r-   c          	     s$    \        RV VVVVR7      # )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)rd   r  r  r   r   r   r{   )r  r  r   r   r   s   &&$$$r.   json_or_python_schemar  :  s$    L ## r-   c                  sh    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   R]R&   RtR# )TypedDictFieldij  z%Required[Literal['typed-dict-field']]rd   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_ifr%   Nre   r%   r-   r.   r  r  j  s1    
//  NTT33r-   r  r  r  r  r  r  c               s8    V ^8  d   QhRRRRRRRRR	RR
RRRRR/# )r6   r   rr   r  rx   r  4str | list[str | int] | list[list[str | int]] | Noner  ra   r  r   r   r  Callable[[Any], bool] | Noner7   r  r%   r8   r:   r.   r;   r;   u  s[     % %% % K	%
 $% '% $% ;% %r-   c               s(    \        RV VVVVVVR7      # )a  
Returns a schema that matches a typed dict field, e.g.:

```py
from pydantic_core import core_schema

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

Args:
    schema: The schema to use for the field
    required: Whether the field is required, otherwise uses the value from `total` on the typed dict
    validation_alias: The alias(es) to use to find the field in the validation data
    serialization_alias: The alias to use as a key when serializing
    serialization_exclude: Whether to exclude the field when serializing
    serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
    metadata: Any other information you want to include with the schema, not used by pydantic-core
typed-dict-field)rd   r   r  r  r  r  r  r   r{   )r   r  r  r  r  r   r  rD  r.   typed_dict_fieldr  u  s)    8 )/3!9	 	r-   c                  s    ] tR tRt$ 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tR# )TypedDictSchemai  zRequired[Literal['typed-dict']]rd   z#Required[dict[str, TypedDictField]]fieldsr   r   r   cls_namelist[ComputedField]computed_fieldsr   r   rr   r<  r   extra_behaviorr/   r   r_   r   r   r   r   r^   r%   Nre   r%   r-   r.   r  r    sK    
))//	NM((L!!K	Hr-   r  r   r  r  r  r/   r^   c               sL    V ^8  d   Qh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/# )r6   r  zdict[str, TypedDictField]r   type[Any] | Noner  ra   r  list[ComputedField] | Noner   rx   r<  ry   r  ExtraBehavior | Noner/   r   r   r   r   r   r^   r]   r7   r  r%   r8   r:   r.   r;   r;     s     = =%= 
= 	=
 0= = %= )= = 
= $= $= = =r-   c               r   )a  
Returns a schema that matches a typed dict, e.g.:

```py
from typing_extensions import TypedDict

from pydantic_core import SchemaValidator, core_schema

class MyTypedDict(TypedDict):
    a: str

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

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

typed-dict)rd   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   &$$$$$$$$$$$r.   typed_dict_schemar    s9    ^ '#%# r-   c                  sh    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R
]R&   R]R&   RtR# )
ModelFieldi  z Required[Literal['model-field']]rd   r   r   r  r  r   r  r   r  r  r  frozenr_   r   r%   Nre   r%   r-   r.   r  r    s1    
**  TT33Lr-   r  r  c               s8    V ^8  d   QhRRRRRRRRR	R
RRRRRR/# )r6   r   rr   r  r  r  ra   r  rx   r  r  r  r   r   r7   r  r%   r8   r:   r.   r;   r;     s[     % %% K% $	%
 '% ;% % $% %r-   c               (    \        RV VVVVVVR7      # )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)rd   r   r  r  r  r  r  r   r{   )r   r  r  r  r  r  r   rD  r.   model_fieldr    s)    8 )/3!9	 	r-   c                  s    ] tR tRt$ 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tR# )ModelFieldsSchemai!  z!Required[Literal['model-fields']]rd   zRequired[dict[str, ModelField]]r  r   
model_namer  r  r   r   rr   r<  extras_keys_schemar   r  r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  !  sG    
++++O((L""!!	Hr-   r  r  r  c               sH    V ^8  d   QhRRRRRRRRR	R
RR
RRRRRRRRRRRR/# )r6   r  zdict[str, ModelField]r  ra   r  r  r   rx   r<  ry   r  r  r  r   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   0  s     6 6!6 6 0	6
 6 %6 *6 )6 !6 
6 $6 $6 6r-   c       
        0    \        RV VVVVVVVVV	V
R7      # )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)rd   r  r  r  r   r<  r  r  r   r   r   r   r{   )r  r  r  r   r<  r  r  r   r   r   r   s   &$$$$$$$$$$r.   model_fields_schemar  0  s6    R '#-%'# r-   c                  s    ] tR tRt$ 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tR# )ModelSchemaii  r   rd   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   r%   Nre   r%   r-   r.   r  r  i  sX    
$$	  NJJLL!!	Hr-   r  r  r  r  r  r   c               sT    V ^8  d   Qh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/# )r6   r   r   r   rr   r  r  r  rx   r  r  ra   r   7Literal['always', 'never', 'subclass-instances'] | Noner   r  r  r  r^   r]   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   {  s     R R	RR %	R
 R R R RR R R )R R 
R $R $R  !Rr-   c               s6    \        RV VVVVVVVVV	V
VVVR7      # )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   )rd   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   &&$$$$$$$$$$$$r.   model_schemar  {  s?    D %1%# r-   c                  s    ] tR tRt$ 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tR# )DataclassFieldi  z$Required[Literal['dataclass-field']]rd   r   namer   r   r   kw_onlyinit	init_onlyr  r  r  r   r  r  r_   r   r  r  r%   Nre   r%   r-   r.   r  r    sF    
..
  M
JOLTT33r-   r  r  r  r  c               sH    V ^8  d   QhRRRRRRRRRRR	R
RRRRRRRRRRRR/# )r6   r  r   r   rr   r  rx   r  r  r  r  r  ra   r  r   r   r  r  r  r7   r  r%   r8   r:   r.   r;   r;     s     6 6
66 	6
 6 6 K6 $6 '6 $6 ;6 6 6r-   c       	        s0    \        RV VVVVVVVV	VV
R7      # )a  
Returns a schema for a dataclass field, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

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

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    dataclass_name: The name of the dataclass being validated
    fields: The fields to use for the dataclass
    computed_fields: Computed fields to use when serializing the dataclass
    collect_init_only: Whether to collect init only fields into a dict to pass to `__post_init__`
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
    extra_behavior: How to handle extra fields
dataclass-args)	rd   r  r  r  r  r   r   r   r  r{   )r  r  r  r  r   r   r   r  r  r.   dataclass_args_schemar  $  s-    L %'+#%
 
r-   c                  s    ] tR tRt$ 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tR# )DataclassSchemaiW  zRequired[Literal['dataclass']]rd   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^   r%   Nre   r%   r-   r.   r  r  W  sV    
((	  MOJJLL	HKr-   r  r  c               sT    V ^8  d   Qh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/# )r6   r   r   r   rr   r  	list[str]r  r  r  ra   r  rx   r   r  r   r   r   r   r   r   r  r  r^   r]   r7   r  r%   r8   r:   r.   r;   r;   i  s     8 8	88 8
 %8 8 8 R8 8 
8 $8 $8 8 8 8  !8r-   c               s6    \        RV VVVVVVVVV	V
VVVR7      # )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)rd   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   &&&$$$$$$$$$$$r.   dataclass_schemar  i  s?    P %1# r-   c                  r   )ArgumentsParameteri  r   r  r   r   zCLiteral['positional_only', 'positional_or_keyword', 'keyword_only']rH   r  r   r%   Nre   r%   r-   r.   r  r    s    
  
MMIIr-   r  c          
     r   )r6   r  r   r   rr   rH   zJLiteral['positional_only', 'positional_or_keyword', 'keyword_only'] | Noner   r  r7   r  r%   r8   r:   r.   r;   r;     sC     L L
LL U	L
 @L Lr-   c                   \        WW#R7      # )aU  
Returns a schema that matches an argument parameter, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    name: The name to use for the argument parameter
    schema: The schema to use for the argument parameter
    mode: The mode to use for the argument parameter
    alias: The alias to use for the argument parameter
r  r   rH   r   r{   r  r   r.   arguments_parameterr    s    6 tKKr-   VarKwargsModec                  s|    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R	]R&   R]R&   R]R&   R]R&   RtR# )ArgumentsSchemai  zRequired[Literal['arguments']]rd   z"Required[list[ArgumentsParameter]]arguments_schemar   r$   r#   rr   var_args_schemar  var_kwargs_modevar_kwargs_schemar   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s=    
((88""!!	Hr-   r  r$   r#   r  r  r  c               s@    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRR/
# )r6   	argumentszlist[ArgumentsParameter]r$   rx   r#   r  ry   r  zVarKwargsMode | Noner  r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sn     5 5'5 "5 #	5
 '5 *5 )5 
5 $5 $5 5r-   c               r   )a  
Returns a schema that matches an arguments schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    arguments: The arguments to use for the arguments schema
    validate_by_name: Whether to populate by the parameter names, defaults to `False`.
    validate_by_alias: Whether to populate by the parameter aliases, defaults to `True`.
    var_args_schema: The variable args schema to use for the arguments schema
    var_kwargs_mode: The validation mode to use for variadic keyword arguments. If `'uniform'`, every value of the
        keyword arguments will be validated against the `var_kwargs_schema` schema. If `'unpacked-typed-dict'`,
        the `var_kwargs_schema` argument must be a [`typed_dict_schema`][pydantic_core.core_schema.typed_dict_schema]
    var_kwargs_schema: The variable kwargs schema to use for the arguments schema
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
r  )
rd   r  r$   r#   r  r  r  r   r   r   r{   )	r  r$   r#   r  r  r  r   r   r   rH  r.   r  r    s0    T ")+''+# r-   c                  r   )ArgumentsV3Parameteri  r   r  r   r   zLiteral['positional_only', 'positional_or_keyword', 'keyword_only', 'var_args', 'var_kwargs_uniform', 'var_kwargs_unpacked_typed_dict']rH   r  r   r%   Nre   r%   r-   r.   r  r    s!    
    JIr-   r  c          
     r   )r6   r  r   r   rr   rH   zLiteral['positional_only', 'positional_or_keyword', 'keyword_only', 'var_args', 'var_kwargs_uniform', 'var_kwargs_unpacked_typed_dict'] | Noner   r  r7   r  r%   r8   r:   r.   r;   r;     sB     #L #L
#L#L	#L @#L #Lr-   c               r  )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
r  r{   r  r   r.   arguments_v3_parameterr    s    F tKKr-   c                  sh    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   R]R&   RtR# )ArgumentsV3SchemaiE  z!Required[Literal['arguments-v3']]rd   z$Required[list[ArgumentsV3Parameter]]r  r   r$   r#   zLiteral['forbid', 'ignore']r  r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  E  s1    
++:://	Hr-   r  c               rC  )r6   r  zlist[ArgumentsV3Parameter]r$   rx   r#   r  z"Literal['forbid', 'ignore'] | Noner   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   P  sZ     0 0)0 "0 #	0
 70 
0 $0 $0 0r-   c               r  )a  
Returns a schema that matches an arguments schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

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

Args:
    arguments: The arguments to use for the arguments schema.
    validate_by_name: Whether to populate by the parameter names, defaults to `False`.
    validate_by_alias: Whether to populate by the parameter aliases, defaults to `True`.
    extra_behavior: The extra behavior to use.
    ref: optional unique identifier of the schema, used to reference the schema in other places.
    metadata: Any other information you want to include with the schema, not used by pydantic-core.
    serialization: Custom serialization schema.
arguments-v3)rd   r  r$   r#   r  r   r   r   r{   )r  r$   r#   r  r   r   r   rD  r.   arguments_v3_schemar  P  s*    N ")+%#	 	r-   c                  h    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   R]R&   RtR# )
CallSchemai  zRequired[Literal['call']]rd   r   r  zRequired[Callable[..., Any]]ro   r   function_namerr   rs   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s1    
##****	Hr-   r  r  c               r  )r6   r  rr   ro   zCallable[..., Any]r  ra   rs   ry   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sX     3 33 3 	3
 %3 
3 $3 $3 3r-   c               r  )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)rd   r  ro   r  rs   r   r   r   r{   )r  ro   r  rs   r   r   r   rt  r.   call_schemar    s*    T "###	 	r-   c                  r  )CustomErrorSchemai  z!Required[Literal['custom-error']]rd   r   r   r   r  r   r  r  r  r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s1    
++  $$;;	Hr-   r  c               s8    V ^8  d   QhRRRRRRRRR	RR
RRRRR/# )r6   r   rr   r  r   r  ra   r  r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sX     + +++ %	+
 0+ 
+ $+ $+ +r-   c               r  )av  
Returns a schema that matches a custom error value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    schema: The schema to use for the custom error schema
    custom_error_type: The custom error type to use for the custom error schema
    custom_error_message: The custom error message to use for the custom error schema
    custom_error_context: The custom error context to use for the custom error schema
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
custom-error)rd   r   r  r  r  r   r   r   r{   )r   r  r  r  r   r   r   rt  r.   custom_error_schemar    s*    D +11#	 	r-   c                  r   )
JsonSchemai  zRequired[Literal['json']]rd   rr   r   r   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s    
##	Hr-   r  c          
     r   )r6   r   ry   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     sC     +o +o+o 
+o $	+o
 $+o +or-   c               r   )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
json)rd   r   r   r   r   r{   )r   r   r   r   r  r.   r  r    s    V vfnnr-   c                      ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R
]R&   R]R&   R
]R&   R]R&   R]R&   RtR# )	UrlSchemai3  zRequired[Literal['url']]rd   r   r   r  allowed_schemesr   host_requiredr   default_hostdefault_portdefault_pathr   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r  3  sA    
""OL	Hr-   r  r  r  r  r  r  preserve_empty_pathc               H    V ^8  d   QhRRRRRRRRR	RR
RRRRRRRRRRRRR/# )r6   r   r   r  list[str] | Noner  rx   r  ra   r  r  r  r   r   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;   A  s     4 44 &4 	4
 4 4 4 %4 4 
4 $4 $4 4r-   c                r  )a  
Returns a schema that matches a URL value, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

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

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    max_length: The maximum length of the URL
    allowed_schemes: The allowed URL schemes
    host_required: Whether the URL must have a host
    default_host: The default host to use if the URL does not have a host
    default_port: The default port to use if the URL does not have a port
    default_path: The default path to use if the URL does not have a path
    preserve_empty_path: Whether to preserve an empty path or convert it to '/', default False
    strict: Whether to use strict URL parsing
    ref: optional unique identifier of the schema, used to reference the schema in other places
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
multi-host-urlr  r{   r  r  r.   multi_host_url_schemar    s6    N '#!!!/# r-   c                  r   )DefinitionsSchemai  z Required[Literal['definitions']]rd   r   r   rF  definitionsr_   r   r   r   r%   Nre   r%   r-   r.   r  r    s     
**  ++r-   r  c               r   )r6   r   rr   r  r>  r7   r  r%   r8   r:   r.   r;   r;     s(     Y Yz Y8H YM^ Yr-   c                r   )a&  
Build a schema that contains both an inner schema and a list of definitions which can be used
within the inner schema.

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    schema: The inner schema
    definitions: List of definitions which can be referenced within inner schema
r  )rd   r   r  )r  )r   r  r   r.   definitions_schemar    s    ( -XXr-   c                  r   )DefinitionReferenceSchemai  z#Required[Literal['definition-ref']]rd   r   
schema_refr   r   r_   r   r   r   r%   Nre   r%   r-   r.   r  r    s    
--	Hr-   r  c          
     r   )r6   r  r   r   ra   r   r   r   r   r7   r  r%   r8   r:   r.   r;   r;     s:      	 $ $	
 r-   c                r   )a+  
Returns a schema that points to a schema stored in "definitions", this is useful for nested recursive
models and also when you want to define validators separately from the main schema, e.g.:

```py
from pydantic_core import SchemaValidator, core_schema

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

Args:
    schema_ref: The schema ref to use for the definition reference schema
    metadata: Any other information you want to include with the schema, not used by pydantic-core
    serialization: Custom serialization schema
definition-ref)rd   r  r   r   r   r{   )r  r   r   r   r   r.   definition_reference_schemar    s    : * r-   c               s     V ^8  d   QhRRRR/# )r6   kwargsr
   r7   r%   r8   r:   r.   r;   r;     s     > >S >S >r-   c                 sb    V P                  4        UUu/ uF  w  rVf   K  WbK  	  upp# u uppi rS   )Zitems)r  ZkZvs   ,  r.   r|   r|     s(    #\\^=^TQqDAD^===s   ++c`field_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.c               r   r6   ro   rk  rZ   r   r   rr   r%   r8   r:   r.   r;   r;     s)     b b.G bUX bbl br-   c                T    \         P                  ! R \        4       \        W3RV/VB # )r  rZ   rq  rr  rs  ru  ro   rZ   r   r     &&&,r.   field_before_validator_functionr     s,    MMm /xaJaZ`aar-   e`general_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.c                 N    \         P                  ! R \        4       \        V / VB # )r!  r  Zargsr     *,r.   !general_before_validator_functionr%    s&    MMo /???r-   a`field_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.c               r   r  r%   r8   r:   r.   r;   r;     s)     a a-F aTW aak ar-   c                r  )r&  rZ   rq  rr  rs  ry  r  r  r.   field_after_validator_functionr(    s,    MMk .h`:`Y_``r-   c`general_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.c                 r"  )r)  r'  r#  r$  r.    general_after_validator_functionr*    &    MMm .t>v>>r-   _`field_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.c               r   )r6   ro   r  rZ   r   r   rr   r%   r8   r:   r.   r;   r;     s)     ` `+`9<`FP`r-   c                r  )r,  rZ   rq  rr  rs  r  r  r  r.   field_wrap_validator_functionr.    s.     MMi -X_*_X^__r-   a`general_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.c                 r"  )r/  r-  r#  r$  r.   general_wrap_validator_functionr0  $  s&    MMk -d=f==r-   a`field_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.c               rf   )r6   ro   rk  rZ   r   r%   r8   r:   r.   r;   r;   .  s      Y Y-F YTW Yr-   c                sT    \         P                  ! R \        4       \        V 3RV/VB # )r1  rZ   rq  rr  rs  r  )ro   rZ   r  s   &&,r.   field_plain_validator_functionr3  -  s,    MMk .hX:XQWXXr-   c`general_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.c                 r"  )r4  r2  r#  r$  r.    general_plain_validator_functionr5  6  r+  r-   FieldValidationInfoZFieldValidatorFunctionZGeneralValidatorFunctionZFieldWrapValidatorFunctionc               rf   )r6   	attr_namer   r7   objectr%   r8   r:   r.   r;   r;   J  s     	 	3 	6 	r-   c                s    \         P                  V 4      pVf   \        RV  R24      h^ R IpRV  RVP                   R2pVP
                  ! V\        ^R7       V# )Nz)module 'pydantic_core' has no attribute 'Z'Z`z` is deprecated, use `z
` instead.rm  )_deprecated_import_lookupZgetZAttributeErrorrq  r&   rr  rs  )r7  Znew_attrrq  Zmsgs   &   r.   __getattr__r:  J  sc    (,,Y7HHSTUVV)283D3D2EZPc-!<r-   )   i   )r;  i   )ZallowZforbidZignore)r   r   r   r   r   r   Z	bytearrayr7  rG  rJ  rM  rQ  r   r   r   r   r   r
  r  r  r&  r   )rj   zunless-noner  rk   )NN)NNNN)Znullr   r   r   r   r7  r   rS   )Zuniformzunpacked-typed-dict)NNN)4r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r7  rG  rJ  rM  rQ  r   rw  re  r   rz   r2   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   )gZno_such_attributeZjson_invalidZ	json_typeZneeds_python_objectZrecursion_loopr  Zfrozen_fieldZfrozen_instanceZextra_forbiddenZinvalid_keyZget_attribute_errorZ
model_typeZmodel_attributes_typeZdataclass_typeZdataclass_exact_typeZdefault_factory_not_calledZnone_requiredZgreater_thanZgreater_than_equalZ	less_thanZless_than_equalr   Zfinite_numberZ	too_shortZtoo_longZiterable_typeZiteration_errorZstring_typeZstring_sub_typeZstring_unicodeZstring_too_shortZstring_too_longZstring_pattern_mismatchr  Z	dict_typeZmapping_typeZ	list_typeZ
tuple_typeZset_typeZset_item_not_hashableZ	bool_typeZbool_parsingZint_typeZint_parsingZint_parsing_sizeZint_from_floatZ
float_typeZfloat_parsingZ
bytes_typeZbytes_too_shortZbytes_too_longZbytes_invalid_encodingZvalue_errorZassertion_errorZliteral_errorZmissing_sentinel_errorZ	date_typeZdate_parsingZdate_from_datetime_parsingZdate_from_datetime_inexactZ	date_pastZdate_futureZ	time_typeZtime_parsingZdatetime_typeZdatetime_parsingZdatetime_object_invalidZdatetime_from_date_parsingZdatetime_pastZdatetime_futureZtimezone_naiveZtimezone_awareZtimezone_offsetZtime_delta_typeZtime_delta_parsingZfrozen_set_typeZis_instance_ofZis_subclass_ofZcallable_typeZunion_tag_invalidZunion_tag_not_foundZarguments_typeZmissing_argumentZunexpected_keyword_argumentZmissing_keyword_only_argumentZunexpected_positional_argumentZ missing_positional_only_argumentZmultiple_argument_valuesZurl_typeZurl_parsingZurl_syntax_violationZurl_too_longZ
url_schemeZ	uuid_typeZuuid_parsingZuuid_versionZdecimal_typeZdecimal_parsingZdecimal_max_digitsZdecimal_max_placesZdecimal_whole_digitsZcomplex_typeZcomplex_str_parsing)__conditional_annotations__r*   Z
__future__r    Z_annotationsZsysrq  Zcollections.abcr   r   r   r   r   r   r   r   Zrer   Ztypingr	   r
   r   r   r   Ztyping_extensionsr   r   Zversion_infor   r   r   r   Zpydantic_corer   ZImportErrorr8  r   r   r0   r+   r1   r3   rY   r[   rg   rc   ri   Z$GeneralPlainNoInfoSerializerFunctionZ"GeneralPlainInfoSerializerFunctionZ"FieldPlainNoInfoSerializerFunctionZ FieldPlainInfoSerializerFunctionrw   rt   rm   r~   r   Z#GeneralWrapNoInfoSerializerFunctionZ!GeneralWrapInfoSerializerFunctionZ!FieldWrapNoInfoSerializerFunctionZ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   r   r   r   r   r  r  r  r  r  ZJsonTyper  r  r  r  r  r!  r#  r'  r)  r/  r4  r1  r;  rB  rE  r?  rA  rI  rK  rL  rN  rO  rR  rJ  r   r   rT  rS  rU  rY  rV  rZ  r]  r[  rk  r^  ZValidationFunctionr`  rb  rj  ru  rv  rx  ry  rz  r}  r|  r  r~  Z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  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  ZMYPYrr   ZCoreSchemaTypeZCoreSchemaFieldTypeZ	ErrorTyper|   r   r%  r(  r*  r.  r0  r3  r5  r9  r6  r:  )r<  s   @r.   <module>r=     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 cGY c	 
2D !Ye !@ $#	IU F FIU JNrv"	 __AE_im_,% ``AE`im`,% o o4
	 
-"- - 	-
 - - - - '+- '+-`)5 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tIU   '+	
 '+D9E  ;)-; "; "	;
 %); !; !; ?C; ; *.; ; '+; '+;|)5 $!$ "$ 	$
 $ '+$ '+$N%  11 1 	1
 1 1 041 "&1 1 '+1 '+1h% 11 1 	1
 1 1 =A1 <F1 1 '+1 '+1hYe $99 9 	9
 9 9 049 =A9 "&9 <F9 9 '+9 '+9x
iu 
..  .  	.
  .  . <F. . '+. '+.bIU v v '+	v
 '+v6	% 	0 7;	0
 ,00 0 0 '+0 '+0fIU 
 
 HIy    	
 '+ '+Dy "  " 	"
 '+" '+"JYe ddAEdimd,% 
37
 
 	

 '+
 '+
	 ]D ]UY ]   19 <= 	+% 	+* "* "	*
 "* * * '+* 59* *\- (,- 	-
 - '+- 59-b) ") "	)
 ) ) '+) 59) )X
+)5 
+0 '+0 "	0
 "0 "0 0 0 '+0 590f		 	, ", "	,
 ", , , '+, '+, ,^	iu 	, ", "	,
 ", , , '+, '+, ,^+iu +, ", "	,
 , '+, 59, ,^ c3h 	% Yd YX\ Y !!3Y!>? 
,% 
,/ "	/
 "/ "/ / / '+/ '+/ /f #C5#:. &I & %c>#+>%?%DE iu  8:YYZ y )$<E )
+ 	+
 37+ '++ '++\7 "	7
 7 377 '+7 '+7t.#;5 .) 	)
 37) '+) '+)X4 "	4
 4 '+4 '+4n8  '-I'JC'OP *	 * !)#/K^\_M`)acf)f g )5  ?Adde )5 . 	.
 37. '+. '+.b8 "	8
 378 8 '+8 '+8v9E % % 37	%
 '+% '+% %P. ". 	.
 37. '+. '+. .b	 5 %5 X\	5
 /35 <@5 %)5 5 5 '+5 '+5 5pYe   	
 '+ '+ >)5 0 "&0 %)	0
 (,0 9=0 6:0 0 '+0 '+0 0f	 P %)	P
 (,P AEP P $(P P '+P '+P Pf)5 n n '+	n
 '+n nD	 3 	3
 3 '+3 '+3 3l% - 	-
 '+- '+- -`4Ye 4% !% NR	%
 '+% *.% '+% >B% %Piu "= !=  	=
 37= = (,= ,0= = = '+= '+= !%= =@% % NR% '+	%
 *.% >B% % '+% %P	 6 "6 37	6
 6 (,6 -16 ,06 $(6 6 '+6 '+6 6r)5 $R (,	R
  $R #R !R UYR R R ,0R !%R R '+R '+R Rj4Ye 46  	6
 6 "6 NR6 '+6 *.6 '+6 >B6 6 6r	")5 	"0 37	0
 &*0 0 '+0 '+0 ,00 0fiu $8
 (,8  8 "8 UY8 8 8 '+8 '+8 8 8 !%8 8vJ% JL X\	L
 CGL L< ##CDy D
iu 
5 %)5 &*	5
 *.5 -15 ,05 5 '+5 '+5 5pJ9E J#L #L CG#L #LL	 0 %)0 &*	0
 :>0 0 '+0 '+0 0f% 3 !%	3
 (,3 3 '+3 '+3 3l	 + (,	+
 37+ + '++ '++ +\% +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` o` op> q> opY qY qr? s? >7 9 "?	  (	 	MI  %"H%s   !v v v 