o
    Ú­j}  ã                   @  s  d Z ddlmZ ddlZddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ dZdeƒ › d�Zed ZG dd„ dƒZG dd„ deeƒZG dd„ deeƒZG dd„ deeƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZee ƒZ!dS )zPydantic-specific errors.é    )ÚannotationsN)ÚAnyÚClassVarÚLiteral)ÚSelf)Ú	Qualifier)Ú_repré   )Úgetattr_migration)Úversion_short)ÚPydanticUserErrorÚPydanticUndefinedAnnotationÚPydanticImportErrorÚPydanticSchemaGenerationErrorÚPydanticInvalidForJsonSchemaÚPydanticForbiddenQualifierÚPydanticErrorCodeszhttps://errors.pydantic.dev/z/u/)0zclass-not-fully-definedzcustom-json-schemazdecorator-invalid-fieldszdecorator-missing-argumentszdecorator-missing-fieldzdiscriminator-no-fieldzdiscriminator-alias-typezdiscriminator-needs-literalzdiscriminator-aliaszdiscriminator-validatorzcallable-discriminator-no-tagztyped-dict-versionzmodel-field-overriddenzmodel-field-missing-annotationzconfig-bothzremoved-kwargszcircular-reference-schemaúinvalid-for-json-schemazjson-schema-already-usedzbase-model-instantiatedúundefined-annotationúschema-for-unknown-typeúimport-errorzcreate-model-field-definitionszvalidator-instance-methodzvalidator-input-typezroot-validator-pre-skipz model-serializer-instance-methodzvalidator-field-config-infozvalidator-v1-signaturezvalidator-signaturezfield-serializer-signaturezmodel-serializer-signaturezmultiple-field-serializerszinvalid-annotated-typeztype-adapter-config-unusedzroot-model-extrazunevaluable-type-annotationz dataclass-init-false-extra-allowzclashing-init-and-init-varzmodel-config-invalid-field-namezwith-config-on-modelzdataclass-on-modelzvalidate-call-typezunpack-typed-dictzoverlapping-unpack-typed-dictzinvalid-self-typez validate-by-alias-and-name-falsec                   @  s$   e Zd ZdZddd	„Zdd
d„ZdS )ÚPydanticErrorMixinzØA mixin class for common functionality shared by all Pydantic-specific errors.

    Attributes:
        message: A message describing the error.
        code: An optional error code from PydanticErrorCodes enum.
    ÚmessageÚstrÚcodeúPydanticErrorCodes | NoneÚreturnÚNonec                C  s   || _ || _d S )N©r   r   )Úselfr   r   © r    úL/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pydantic/errors.pyÚ__init__Z   s   
zPydanticErrorMixin.__init__c                 C  s&   | j d u r| jS | j› dt› | j › �S )Nz 

For further information visit )r   r   ÚDEV_ERROR_DOCS_URL)r   r    r    r!   Ú__str__^   s   
zPydanticErrorMixin.__str__N)r   r   r   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r$   r    r    r    r!   r   R   s    
r   c                   @  s   e Zd ZdZdS )r   z1An error raised due to incorrect use of Pydantic.N)r%   r&   r'   r(   r    r    r    r!   r   e   s    r   c                      s0   e Zd ZdZd‡ fdd„Zeddd„ƒZ‡  ZS )r   zÆA subclass of `NameError` raised when handling undefined annotations during `CoreSchema` generation.

    Attributes:
        name: Name of the error.
        message: Description of the error.
    Únamer   r   r   r   c                   s   || _ tƒ j|dd� d S )Nr   r   )r)   Úsuperr"   )r   r)   r   ©Ú	__class__r    r!   r"   q   s   z$PydanticUndefinedAnnotation.__init__Ú
name_errorÚ	NameErrorr   c                 C  sD   z|j }W n ty   t dt|ƒ¡ d¡}Y nw | |t|ƒd�S )zÙConvert a `NameError` to a `PydanticUndefinedAnnotation` error.

        Args:
            name_error: `NameError` to be converted.

        Returns:
            Converted `PydanticUndefinedAnnotation` error.
        z	.*'(.+?)'r	   )r)   r   )r)   ÚAttributeErrorÚreÚsearchr   Úgroup)Úclsr-   r)   r    r    r!   Úfrom_name_erroru   s   

ÿz+PydanticUndefinedAnnotation.from_name_error)r)   r   r   r   r   r   )r-   r.   r   r   )r%   r&   r'   r(   r"   Úclassmethodr4   Ú__classcell__r    r    r+   r!   r   i   s
    r   c                      ó"   e Zd ZdZd‡ fdd„Z‡  ZS )	r   zŽAn error raised when an import fails due to module changes between V1 and V2.

    Attributes:
        message: Description of the error.
    r   r   r   r   c                   ó   t ƒ j|dd� d S )Nr   ©r   ©r*   r"   ©r   r   r+   r    r!   r"   �   ó   zPydanticImportError.__init__©r   r   r   r   ©r%   r&   r'   r(   r"   r6   r    r    r+   r!   r   †   ó    r   c                      r7   )	r   zŠAn error raised during failures to generate a `CoreSchema` for some type.

    Attributes:
        message: Description of the error.
    r   r   r   r   c                   r8   )Nr   r9   r:   r;   r+   r    r!   r"   ˜   r<   z&PydanticSchemaGenerationError.__init__r=   r>   r    r    r+   r!   r   ‘   r?   r   c                      r7   )	r   z‘An error raised during failures to generate a JSON schema for some `CoreSchema`.

    Attributes:
        message: Description of the error.
    r   r   r   r   c                   r8   )Nr   r9   r:   r;   r+   r    r!   r"   £   r<   z%PydanticInvalidForJsonSchema.__init__r=   r>   r    r    r+   r!   r   œ   r?   r   c                      s>   e Zd ZU dZdddddddœZd	ed
< d‡ fdd„Z‡  ZS )r   zLAn error raised if a forbidden type qualifier is found in a type annotation.ztyping.Requiredztyping.NotRequiredztyping.ReadOnlyztyping.ClassVarzdataclasses.InitVarztyping.Final)ÚrequiredÚnot_requiredÚ	read_onlyÚ	class_varÚinit_varÚfinalzClassVar[dict[Qualifier, str]]Ú_qualifier_repr_mapÚ	qualifierr   Ú
annotationr   r   r   c                   s.   t ƒ jdt |¡›d| j| ›d�d d� d S )NzThe annotation z contains the z? type qualifier, which is invalid in the context it is defined.r   )r*   r"   r   Údisplay_as_typerF   )r   rG   rH   r+   r    r!   r"   ³   s   
ûz#PydanticForbiddenQualifier.__init__)rG   r   rH   r   r   r   )r%   r&   r'   r(   rF   Ú__annotations__r"   r6   r    r    r+   r!   r   §   s   
 ú	r   )"r(   Ú
__future__r   Ú_annotationsr0   Útypingr   r   r   Útyping_extensionsr   Útyping_inspection.introspectionr   Úpydantic._internalr   Ú
_migrationr
   Úversionr   Ú__all__r#   r   r   ÚRuntimeErrorr   r.   r   ÚImportErrorr   r   r   r   r%   Ú__getattr__r    r    r    r!   Ú<module>   s,    ÿ4