
    >ȋh                         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dS )	    )Iterable)chain)func_accepts_kwargsc                   N    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dS )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        X/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/core/checks/registry.pyr   r      se          E#MFH#MHEFHGEKIKDDDr   r   c                   D    e Zd Zd Zd	dZ	 	 	 	 d
dZddZddZddZdS )CheckRegistryc                 R    t                      | _        t                      | _        d S N)setregistered_checksdeployment_checks)selfs    r   __init__zCheckRegistry.__init__   s     !$!$r   Nc                 ^      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          | _                            d          rj        n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   ss    &u-- O   EJ ::h'',&&+ 
 JJuLr   )callable)r%   r.   r+   r0   r1   s   ` `` r   registerzCheckRegistry.register"   s_    "	 	 	 	 	 	 	 E?? 	5<< ! Lr   Fc                     g }|                      |          }fd|D             }|D ]K} |||          }t          |t                    st          d|z            |                    |           L|S )zS
        Run all registered checks and return list of Errors and Warnings.
        Nc                 b    g | ]+}t          |j                                                )|,S r   )r"   r+   
isdisjoint).0r.   r+   s     r   
<listcomp>z,CheckRegistry.run_checks.<locals>.<listcomp>V   s5    XXXs5:7Q7QRV7W7WXeXXXr   )app_configs	databaseszlThe function %r did not return a list. All functions registered with the checks registry must return a list.)
get_checks
isinstancer   r*   extend)	r%   r9   r+   include_deployment_checksr:   errorsr/   r.   
new_errorss	     `      r   
run_checkszCheckRegistry.run_checksH   s     !:;;XXXXXXXF 	& 	&E;)LLLJj(33 NPUV   MM*%%%%r   c                 0    ||                      |          v S r!   )tags_available)r%   tagr>   s      r   
tag_existszCheckRegistry.tag_existsb   s    d))*CDDDDr   c                 ~    t          t          j        d |                     |          D                                 S )Nc              3   $   K   | ]}|j         V  d S r!   )r+   )r7   r.   s     r   	<genexpr>z/CheckRegistry.tags_available.<locals>.<genexpr>g   s5          $
           r   )r"   r   from_iterabler;   )r%   r$   s     r   rC   zCheckRegistry.tags_availablee   sM        (,8I(J(J       
 
 	
r   c                 f    t          | j                  }|r|                    | j                   |S r!   )listr#   r=   r$   )r%   r>   r/   s      r   r;   zCheckRegistry.get_checksl   s4    d,--$ 	2MM$0111r   r!   )NNFN)F)	r   r   r   r&   r3   rA   rE   rC   r;   r   r   r   r   r      s        ' ' '$ $ $ $P "'   4E E E E
 
 
 
     r   r   N)collections.abcr   	itertoolsr   django.utils.inspectr   r   r   registryr3   rA   rE   r   r   r   <module>rP      s    $ $ $ $ $ $       4 4 4 4 4 4       ,S S S S S S S Sl =?? 
 


r   