
    #Yh                     (    d Z ddlmZ d Zd Zd ZdS )zA
Commonly useful filters for `attrs.asdict` and `attrs.astuple`.
   )	Attributec                     t          d | D                       t          d | D                       t          d | D                       fS )zD
    Returns a tuple of `frozenset`s of classes and attributes.
    c              3   D   K   | ]}t          |t                    |V  d S N)
isinstancetype.0clss     TD:\DownLoads\facial_attendance_system-main\venv311\Lib\site-packages\attr/filters.py	<genexpr>z_split_what.<locals>.<genexpr>   s1      ??#C)>)>?#??????    c              3   D   K   | ]}t          |t                    |V  d S r   )r   strr	   s     r   r   z_split_what.<locals>.<genexpr>   s1      >>#C)=)=>#>>>>>>r   c              3   D   K   | ]}t          |t                    |V  d S r   )r   r   r	   s     r   r   z_split_what.<locals>.<genexpr>   s1      DD#C)C)CD#DDDDDDr   )	frozenset)whats    r   _split_whatr   
   s\    
 	???????>>>>>>>DDDDDDD r   c                  @    t          |           \  fd}|S )a  
    Create a filter that only allows *what*.

    Args:
        what (list[type, str, attrs.Attribute]):
            What to include. Can be a type, a name, or an attribute.

    Returns:
        Callable:
            A callable that can be passed to `attrs.asdict`'s and
            `attrs.astuple`'s *filter* argument.

    .. versionchanged:: 23.1.0 Accept strings with field names.
    c                 0    |j         v p| j        v p| v S r   	__class__name	attributevalueattrsr   namess     r   include_zinclude.<locals>.include_&   s.    Os" "~&"E!	
r   r   )r   r   r   r   r   s     @@@r   includer!      E     $D))C
 
 
 
 
 
 
 Or   c                  @    t          |           \  fd}|S )a  
    Create a filter that does **not** allow *what*.

    Args:
        what (list[type, str, attrs.Attribute]):
            What to exclude. Can be a type, a name, or an attribute.

    Returns:
        Callable:
            A callable that can be passed to `attrs.asdict`'s and
            `attrs.astuple`'s *filter* argument.

    .. versionchanged:: 23.3.0 Accept field name string as input argument
    c                 2    |j         v p| j        v p| v  S r   r   r   s     r   exclude_zexclude.<locals>.exclude_A   s3    Os" "~&"E!
 	
r   r    )r   r%   r   r   r   s     @@@r   excluder&   0   r"   r   N)__doc___maker   r   r!   r&    r   r   <module>r*      sZ              6    r   