o
    "7h                     @   s\   d dl mZ d dlmZ d dlmZ G dd dZG dd dZe Zej	Z	ej
Z
ejZdS )	    )Iterable)chain)func_accepts_kwargsc                   @   sL   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    r   r   p/var/www/epreuve.sigeris.cm/public_html/epreuve/venv/lib/python3.10/site-packages/django/core/checks/registry.pyr      s"    r   c                   @   sN   e Zd Zdd ZdddZ				dddZdd	d
ZdddZdddZdS )CheckRegistryc                 C   s   t  | _t  | _d S N)setregistered_checksdeployment_checks)selfr   r   r   __init__   s   zCheckRegistry.__init__Nc                    s2    fdd}t |r||S |r|f7 |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                    s:   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$   r   r   inner3   s   
z%CheckRegistry.register.<locals>.inner)callable)r    r'   r$   r*   r+   r   r)   r   register"   s   
zCheckRegistry.registerFc           	         sb   g }|  |} dur fdd|D }|D ]}|||d}t|ts)td| || q|S )zS
        Run all registered checks and return list of Errors and Warnings.
        Nc                    s    g | ]}t |j s|qS r   )r   r$   
isdisjoint.0r'   r$   r   r   
<listcomp>V   s     z,CheckRegistry.run_checks.<locals>.<listcomp>)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    r3   r$   include_deployment_checksr4   errorsr(   r'   
new_errorsr   r1   r   
run_checksH   s   


zCheckRegistry.run_checksc                 C   s   ||  |v S r   )tags_available)r    tagr8   r   r   r   
tag_existsb   s   zCheckRegistry.tag_existsc                 C   s   t tdd | |D S )Nc                 s   s    | ]}|j V  qd S r   r1   r/   r   r   r   	<genexpr>g   s    
z/CheckRegistry.tags_available.<locals>.<genexpr>)r   r   from_iterabler5   )r    r   r   r   r   r<   e   s
   
zCheckRegistry.tags_availablec                 C   s   t | j}|r|| j |S r   )listr   r7   r   )r    r8   r(   r   r   r   r5   l   s   
zCheckRegistry.get_checksr   )NNFN)F)	r   r   r   r!   r-   r;   r>   r<   r5   r   r   r   r   r      s    
(


r   N)collections.abcr   	itertoolsr   django.utils.inspectr   r   r   registryr-   r;   r>   r   r   r   r   <module>   s    V
