o
    ô<âg±  ã                   @   s  d Z ddlZddlmZ G dd„ deƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZ	G dd„ de	ƒZ
G dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ deƒZG dd„ deƒZG d d!„ d!eƒZG d"d#„ d#eƒZG d$d%„ d%eƒZG d&d'„ d'eƒZG d(d)„ d)eƒZd*ZG d+d,„ d,eƒZG d-d.„ d.eƒZG d/d0„ d0eƒZG d1d2„ d2eƒZdS )3z.
Global Django exception and warning classes.
é    N)Úmake_hashablec                   @   ó   e Zd ZdZdS )ÚFieldDoesNotExistz(The requested model field does not existN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r
   r
   úI/var/www/html/venv/lib/python3.10/site-packages/django/core/exceptions.pyr   
   ó    r   c                   @   r   )ÚAppRegistryNotReadyz-The django.apps registry is not populated yetNr   r
   r
   r
   r   r      r   r   c                   @   s   e Zd ZdZdZdS )ÚObjectDoesNotExistz#The requested object does not existTN)r   r   r   r	   Úsilent_variable_failurer
   r
   r
   r   r      s    r   c                   @   r   )ÚMultipleObjectsReturnedz?The query returned multiple objects when only one was expected.Nr   r
   r
   r
   r   r      r   r   c                   @   r   )ÚSuspiciousOperationz!The user did something suspiciousNr   r
   r
   r
   r   r   "   s    r   c                   @   r   )ÚSuspiciousMultipartFormz+Suspect MIME request in multipart form dataNr   r
   r
   r
   r   r   &   r   r   c                   @   r   )ÚSuspiciousFileOperationz/A Suspicious filesystem operation was attemptedNr   r
   r
   r
   r   r   ,   r   r   c                   @   r   )ÚDisallowedHostz'HTTP_HOST header contains invalid valueNr   r
   r
   r
   r   r   2   r   r   c                   @   r   )ÚDisallowedRedirectz&Redirect to scheme not in allowed listNr   r
   r
   r
   r   r   8   r   r   c                   @   r   )ÚTooManyFieldsSentzl
    The number of fields in a GET or POST request exceeded
    settings.DATA_UPLOAD_MAX_NUMBER_FIELDS.
    Nr   r
   r
   r
   r   r   >   ó    r   c                   @   r   )ÚTooManyFilesSentzk
    The number of fields in a GET or POST request exceeded
    settings.DATA_UPLOAD_MAX_NUMBER_FILES.
    Nr   r
   r
   r
   r   r   G   r   r   c                   @   r   )ÚRequestDataTooBigzq
    The size of the request (excluding any file uploads) exceeded
    settings.DATA_UPLOAD_MAX_MEMORY_SIZE.
    Nr   r
   r
   r
   r   r   P   r   r   c                   @   r   )ÚRequestAbortedz=The request was closed before it was completed, or timed out.Nr   r
   r
   r
   r   r   Y   r   r   c                   @   r   )Ú
BadRequestz1The request is malformed and cannot be processed.Nr   r
   r
   r
   r   r   _   r   r   c                   @   r   )ÚPermissionDeniedz+The user did not have permission to do thatNr   r
   r
   r
   r   r   e   r   r   c                   @   r   )ÚViewDoesNotExistz!The requested view does not existNr   r
   r
   r
   r   r   k   r   r   c                   @   r   )ÚMiddlewareNotUsedz8This middleware is not used in this server configurationNr   r
   r
   r
   r   r   q   r   r   c                   @   r   )ÚImproperlyConfiguredz'Django is somehow improperly configuredNr   r
   r
   r
   r   r   w   r   r   c                   @   r   )Ú
FieldErrorz(Some kind of problem with a model field.Nr   r
   r
   r
   r   r    }   r   r    Ú__all__c                       sj   e Zd ZdZd‡ fdd„	Zedd„ ƒZedd„ ƒZd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Z‡  ZS )ÚValidationErrorzAn error while validating data.Nc                    s  t ƒ  |||¡ t|tƒr*t|dƒr|j}nt|dƒs|j}n|j|j|j	}}}t|t
ƒrLi | _| ¡ D ]\}}t|tƒsCt|ƒ}|j| j|< q6dS t|tƒr}g | _|D ]$}t|tƒsat|ƒ}t|dƒrs| j t|j ¡ g ƒ¡ qV| j |j¡ qVdS || _|| _|| _	| g| _dS )aÒ  
        The `message` argument can be a single error, a list of errors, or a
        dictionary that maps field names to lists of errors. What we define as
        an "error" can be either a simple string or an instance of
        ValidationError with its message attribute set, and what we define as
        list or dictionary can be an actual `list` or `dict` or an instance
        of ValidationError with its `error_list` or `error_dict` attribute set.
        Ú
error_dictÚmessageN)ÚsuperÚ__init__Ú
isinstancer"   Úhasattrr#   Ú
error_listr$   ÚcodeÚparamsÚdictÚitemsÚlistÚextendÚsumÚvalues)Úselfr$   r*   r+   ÚfieldÚmessages©Ú	__class__r
   r   r&   ‰   s6   	




ý


ù
zValidationError.__init__c                 C   s   t | dƒ t| ƒS ©Nr#   )Úgetattrr,   ©r2   r
   r
   r   Úmessage_dict´   s   
zValidationError.message_dictc                 C   s$   t | dƒrtt| ƒ ¡ g ƒS t| ƒS r7   )r(   r0   r,   r1   r.   r9   r
   r
   r   r4   ¼   s   
zValidationError.messagesc                 C   sL   t | dƒr| j ¡ D ]\}}| |g ¡ |¡ q
|S | tg ¡ | j¡ |S r7   )r(   r#   r-   Ú
setdefaultr/   ÚNON_FIELD_ERRORSr)   )r2   r#   r3   r)   r
   r
   r   Úupdate_error_dictÂ   s   
ÿz!ValidationError.update_error_dictc                 c   sf    t | dƒr| j ¡ D ]\}}|tt|ƒƒfV  qd S | jD ]}|j}|jr+||j; }t|ƒV  qd S r7   )	r(   r#   r-   r.   r"   r)   r$   r+   Ústr)r2   r3   ÚerrorsÚerrorr$   r
   r
   r   Ú__iter__Ê   s   €
ÿ

üzValidationError.__iter__c                 C   s"   t | dƒrtt| ƒƒS tt| ƒƒS r7   )r(   Úreprr,   r.   r9   r
   r
   r   Ú__str__Õ   s   
zValidationError.__str__c                 C   s   d|  S )NzValidationError(%s)r
   r9   r
   r
   r   Ú__repr__Ú   s   zValidationError.__repr__c                 C   s   t |tƒstS t| ƒt|ƒkS )N)r'   r"   ÚNotImplementedÚhash)r2   Úotherr
   r
   r   Ú__eq__Ý   s   
zValidationError.__eq__c                 C   sV   t | dƒrt| j| jt| jƒfƒS t | dƒrtt| jƒƒS ttt| j	t
 d¡dƒƒS )Nr$   r#   )Úkey)r(   rF   r$   r*   r   r+   r#   ÚtupleÚsortedr)   ÚoperatorÚ
attrgetterr9   r
   r
   r   Ú__hash__â   s   
ýÿ
zValidationError.__hash__)NN)r   r   r   r	   r&   Úpropertyr:   r4   r=   rA   rC   rD   rH   rN   Ú__classcell__r
   r
   r5   r   r"   †   s    +

r"   c                   @   r   )ÚEmptyResultSetz)A database query predicate is impossible.Nr   r
   r
   r
   r   rQ   ð   r   rQ   c                   @   r   )ÚFullResultSetz1A database query predicate is matches everything.Nr   r
   r
   r
   r   rR   ö   r   rR   c                   @   r   )ÚSynchronousOnlyOperationzBThe user tried to call a sync-only function from an async context.Nr   r
   r
   r
   r   rS   ü   r   rS   )r	   rL   Údjango.utils.hashabler   Ú	Exceptionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r<   r"   rQ   rR   rS   r
   r
   r
   r   Ú<module>   s6    			j