Ë
    ôrªiš  ã                   ó¦   — d dl mZ d dlmZ d dlmZ  G d„ d«      Z G d„ d«      Z e«       Zej                  Z	ej                  Z
ej                  Zy)	é    )ÚIterable)Úchain)Úfunc_accepts_kwargsc                   óL   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZy)ÚTagsz,
    Built-in tags for internal checks.
    ÚadminÚasync_supportÚcachesÚcommandsÚcompatibilityÚdatabaseÚfilesÚmodelsÚsecurityÚsignalsÚsitesÚstaticfilesÚ	templatesÚtranslationÚurlsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   © ó    úN/var/www/html/venv/lib/python3.12/site-packages/django/core/checks/registry.pyr   r      sT   „ ñð €EØ#€MØ€FØ€HØ#€MØ€HØ€EØ€FØ€HØ€GØ€EØ€KØ€IØ€KØ�Dr   r   c                   óB   — e Zd Zd„ Zdd„Z	 	 	 	 d	d„Zd
d„Zd
d„Zd
d„Zy)ÚCheckRegistryc                 ó@   — t        «       | _        t        «       | _        y ©N)ÚsetÚregistered_checksÚdeployment_checks)Úselfs    r   Ú__init__zCheckRegistry.__init__   s   € Ü!$£ˆÔÜ!$£ˆÕr   Nc                 óP   ‡ ‡‡— ˆˆ ˆfd„}t        |«      r ||«      S |r‰|fz  Š|S )a  
        Can be used as a function or a decorator. Register given function
        `f` labeled with given `tags`. The function should receive **kwargs
        and return list of Errors and Warnings.

        Example::

            registry = CheckRegistry()
            @registry.register('mytag', 'anothertag')
            def my_check(app_configs, **kwargs):
                # ... perform checks and collect `errors` ...
                return errors
            # or
            registry.register(my_check, 'mytag', 'anothertag')
        c                 ó¶   •— t        | «      st        d«      ‚‰| _        ‰j                  d«      r‰j                  n‰j
                  }|j                  | «       | S )Nz9Check functions must accept keyword arguments (**kwargs).Údeploy)r   Ú	TypeErrorÚtagsÚgetr$   r#   Úadd)ÚcheckÚchecksÚkwargsr%   r+   s     €€€r   Úinnerz%CheckRegistry.register.<locals>.inner3   s^   ø€ Ü& uÔ-ÜØOóð ð ˆEŒJð —:‘:˜hÔ'ð ×&Ò&à×+Ñ+ð ð
 �J‰J�uÔØˆLr   )Úcallable)r%   r.   r+   r0   r1   s   ` `` r   ÚregisterzCheckRegistry.register"   s/   ú€ ö"	ô �EŒ?Ù˜“<ÐáØ˜˜Ñ �ØˆLr   c                 ó"  — g }| j                  |«      }|�4|D �cg c])  }t        |j                  «      j                  |«      rŒ(|‘Œ+ }}|D ];  } |||¬«      }t	        |t
        «      st        d|z  «      ‚|j                  |«       Œ= |S c c}w )zS
        Run all registered checks and return list of Errors and Warnings.
        )Úapp_configsÚ	databaseszlThe function %r did not return a list. All functions registered with the checks registry must return a list.)Ú
get_checksr"   r+   Ú
isdisjointÚ
isinstancer   r*   Úextend)	r%   r5   r+   Úinclude_deployment_checksr6   Úerrorsr/   r.   Ú
new_errorss	            r   Ú
run_checkszCheckRegistry.run_checksH   sŸ   € ð ˆØ—‘Ð!:Ó;ˆàÐÙ)/ÓX© ´s¸5¿:¹:³×7QÑ7QÐRVÕ7W’e¨ˆFÐXãˆEÙ¨;À)ÔLˆJÜ˜j¬(Ô3ÜðNØPUñVóð ð �M‰M˜*Õ%ð ð ˆùò Ys   š)BÁBc                 ó(   — || j                  |«      v S r!   )Útags_available)r%   Útagr;   s      r   Ú
tag_existszCheckRegistry.tag_existsb   s   € Ø�d×)Ñ)Ð*CÓDÐDÐDr   c                 ój   — t        t        j                  d„ | j                  |«      D «       «      «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr!   )r+   )Ú.0r.   s     r   Ú	<genexpr>z/CheckRegistry.tags_available.<locals>.<genexpr>g   s   è ø€ ð  Ù(J˜u�—
•
Ñ(Jùs   ‚)r"   r   Úfrom_iterabler7   )r%   r$   s     r   r@   zCheckRegistry.tags_availablee   s4   € ÜÜ×Ññ  Ø(,¯©Ð8IÔ(Jó ó ó
ð 	
r   c                 ój   — t        | j                  «      }|r|j                  | j                  «       |S r!   )Úlistr#   r:   r$   )r%   r;   r/   s      r   r7   zCheckRegistry.get_checksl   s,   € Ü�d×,Ñ,Ó-ˆÙ$Ø�M‰M˜$×0Ñ0Ô1Øˆr   r!   )NNFN)F)	r   r   r   r&   r3   r>   rB   r@   r7   r   r   r   r   r      s0   „ ò'ó$ðP ØØ"'Øóó4Eó
ôr   r   N)Úcollections.abcr   Ú	itertoolsr   Údjango.utils.inspectr   r   r   Úregistryr3   r>   rB   r   r   r   Ú<module>rN      sO   ðÝ $Ý å 4÷ñ ÷,Sñ Sñl ‹?€Ø×Ñ€Ø× Ñ €
Ø× Ñ �
r   