Ë
    S>{i¥  ã                  ó  — U d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
mZ ddlmZmZ ddlmZ dZdZd	ed
<    G d„ de«      Zed   Zd	ed<    G d„ de«      Z G d„ de«      Z G d„ dee«      Z G d„ dee«      ZdZd	ed<    G d„ dee«      Zy)zš!!! abstract "Usage Documentation"
    [Build a Plugin](../concepts/plugins.md#build-a-plugin)

Plugin interface for Pydantic plugins, and related types.
é    )Úannotations)ÚAnyÚCallableÚLiteralÚ
NamedTuple)Ú
CoreConfigÚ
CoreSchemaÚValidationError)ÚProtocolÚ	TypeAlias)ÚExtraValues)ÚPydanticPluginProtocolÚBaseValidateHandlerProtocolÚValidatePythonHandlerProtocolÚValidateJsonHandlerProtocolÚValidateStringsHandlerProtocolÚNewSchemaReturnsÚSchemaTypePathÚ
SchemaKindúvtuple[ValidatePythonHandlerProtocol | None, ValidateJsonHandlerProtocol | None, ValidateStringsHandlerProtocol | None]r   r   c                  ó&   — e Zd ZU dZded<   ded<   y)r   zQPath defining where `schema_type` was defined, or where `TypeAdapter` was called.ÚstrÚmoduleÚnameN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pydantic/plugin/__init__.pyr   r      s   … Ù[àƒKØ
„Ir!   r   )Ú	BaseModelÚTypeAdapterÚ	dataclassÚcreate_modelÚvalidate_callr   c                  ó4   — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)r   z5Protocol defining the interface for Pydantic plugins.c                ó   — t        d«      ‚)a�  This method is called for each plugin every time a new [`SchemaValidator`][pydantic_core.SchemaValidator]
        is created.

        It should return an event handler for each of the three validation methods, or `None` if the plugin does not
        implement that method.

        Args:
            schema: The schema to validate against.
            schema_type: The original type which the schema was created from, e.g. the model class.
            schema_type_path: Path defining where `schema_type` was defined, or where `TypeAdapter` was called.
            schema_kind: The kind of schema to validate against.
            config: The config to use for validation.
            plugin_settings: Any plugin settings.

        Returns:
            A tuple of optional event handlers for each of the three validation methods -
                `validate_python`, `validate_json`, `validate_strings`.
        z9Pydantic plugins should implement `new_schema_validator`.)ÚNotImplementedError)ÚselfÚschemaÚschema_typeÚschema_type_pathÚschema_kindÚconfigÚplugin_settingss          r"   Únew_schema_validatorz+PydanticPluginProtocol.new_schema_validator+   s   € ô: "Ð"]Ó^Ð^r!   N)r,   r	   r-   r   r.   r   r/   r   r0   zCoreConfig | Noner1   zdict[str, object]Úreturnr   )r   r   r   r   r2   r    r!   r"   r   r   (   sV   „ Ù?ð_àð_ð ð_ð )ð	_ð
  ð_ð "ð_ð +ð_ð
ô_r!   r   c                  ó6   — e Zd ZU dZded<   	 dd„Zd	d„Zd
d„Zy)r   z»Base class for plugin callbacks protocols.

    You shouldn't implement this protocol directly, instead use one of the subclasses with adds the correctly
    typed `on_error` method.
    zCallable[..., None]Úon_enterc                 ó   — y)z{Callback to be notified of successful validation.

        Args:
            result: The result of the validation.
        Nr    )r+   Úresults     r"   Ú
on_successz&BaseValidateHandlerProtocol.on_successU   ó   € ð 	r!   c                 ó   — y)znCallback to be notified of validation errors.

        Args:
            error: The validation error.
        Nr    )r+   Úerrors     r"   Úon_errorz$BaseValidateHandlerProtocol.on_error]   r9   r!   c                 ó   — y)zˆCallback to be notified of validation exceptions.

        Args:
            exception: The exception raised during validation.
        Nr    )r+   Ú	exceptions     r"   Úon_exceptionz(BaseValidateHandlerProtocol.on_exceptione   r9   r!   N)r7   r   r3   ÚNone)r;   r
   r3   r@   )r>   Ú	Exceptionr3   r@   )r   r   r   r   r   r8   r<   r?   r    r!   r"   r   r   K   s!   … ñð "Ó!ØEóóôr!   r   c                  óL   — e Zd ZdZddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)r   z4Event handler for `SchemaValidator.validate_python`.N)ÚstrictÚextraÚfrom_attributesÚcontextÚself_instanceÚby_aliasÚby_namec                ó   — y)am  Callback to be notified of validation start, and create an instance of the event handler.

        Args:
            input: The input to be validated.
            strict: Whether to validate the object in strict mode.
            extra: Whether to ignore, allow, or forbid extra data during model validation.
            from_attributes: Whether to validate objects as inputs by extracting attributes.
            context: The context to use for validation, this is passed to functional validators.
            self_instance: An instance of a model to set attributes on from validation, this is used when running
                validation from the `__init__` method of a model.
            by_alias: Whether to use the field's alias to match the input data to an attribute.
            by_name: Whether to use the field's name to match the input data to an attribute.
        Nr    )	r+   ÚinputrC   rD   rE   rF   rG   rH   rI   s	            r"   r5   z&ValidatePythonHandlerProtocol.on_enterq   ó   � r!   )rK   r   rC   úbool | NonerD   úExtraValues | NonerE   rM   rF   ú
Any | NonerG   rO   rH   rM   rI   rM   r3   r@   ©r   r   r   r   r5   r    r!   r"   r   r   n   sy   „ Ù>ð #Ø$(Ø'+Ø"Ø$(Ø $Ø#ñàðð ð	ð
 "ðð %ðð ðð "ðð ðð ðð 
ôr!   r   c                  óF   — e Zd ZdZdddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)r   z2Event handler for `SchemaValidator.validate_json`.N)rC   rD   rF   rG   rH   rI   c                ó   — y)a  Callback to be notified of validation start, and create an instance of the event handler.

        Args:
            input: The JSON data to be validated.
            strict: Whether to validate the object in strict mode.
            extra: Whether to ignore, allow, or forbid extra data during model validation.
            context: The context to use for validation, this is passed to functional validators.
            self_instance: An instance of a model to set attributes on from validation, this is used when running
                validation from the `__init__` method of a model.
            by_alias: Whether to use the field's alias to match the input data to an attribute.
            by_name: Whether to use the field's name to match the input data to an attribute.
        Nr    )r+   rK   rC   rD   rF   rG   rH   rI   s           r"   r5   z$ValidateJsonHandlerProtocol.on_enter�   rL   r!   )rK   zstr | bytes | bytearrayrC   rM   rD   rN   rF   rO   rG   rO   rH   rM   rI   rM   r3   r@   rP   r    r!   r"   r   r   Œ   sl   „ Ù<ð #Ø$(Ø"Ø$(Ø $Ø#ñà&ðð ð	ð
 "ðð ðð "ðð ðð ðð 
ôr!   r   zdict[str, StringInput]ÚStringInputc                  ó@   — e Zd ZdZddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)r   z5Event handler for `SchemaValidator.validate_strings`.N)rC   rD   rF   rH   rI   c                ó   — y)ab  Callback to be notified of validation start, and create an instance of the event handler.

        Args:
            input: The string data to be validated.
            strict: Whether to validate the object in strict mode.
            extra: Whether to ignore, allow, or forbid extra data during model validation.
            context: The context to use for validation, this is passed to functional validators.
            by_alias: Whether to use the field's alias to match the input data to an attribute.
            by_name: Whether to use the field's name to match the input data to an attribute.
        Nr    )r+   rK   rC   rD   rF   rH   rI   s          r"   r5   z'ValidateStringsHandlerProtocol.on_enter®   rL   r!   )rK   rS   rC   rM   rD   rN   rF   rO   rH   rM   rI   rM   r3   r@   rP   r    r!   r"   r   r   «   s_   „ Ù?ð #Ø$(Ø"Ø $Ø#ñàðð ð	ð
 "ðð ðð ðð ðð 
ôr!   r   N)r   Ú
__future__r   Útypingr   r   r   r   Úpydantic_corer   r	   r
   Útyping_extensionsr   r   Úpydantic.configr   Ú__all__r   r   r   r   r   r   r   r   rS   r   r    r!   r"   ú<module>r\      s¬   ðòõ #ç 5Ó 5ç AÑ Aß 1å 'ð	€ð WÐ �)ó  Wô�Zô ð  Ð hÑi€
ˆIÓ iô _˜Xô  _ôF  (ô  ôFÐ$?Àô ô<Ð"=¸xô ð8 2€ˆYÓ 1ôÐ%@À(õ r!   