
    e                     &    d Z ddlmZ d Zd Zd Zy)z,
Commonly useful filters for `attr.asdict`.
   )	Attributec                 l    t        d | D              t        d | D              t        d | D              fS )zD
    Returns a tuple of `frozenset`s of classes and attributes.
    c              3   B   K   | ]  }t        |t              s|  y wN)
isinstancetype.0clss     ./usr/lib/python3/dist-packages/attr/filters.py	<genexpr>z_split_what.<locals>.<genexpr>   s     ?#C)>#?   c              3   B   K   | ]  }t        |t              s|  y wr   )r   strr	   s     r   r   z_split_what.<locals>.<genexpr>   s     >#C)=#>r   c              3   B   K   | ]  }t        |t              s|  y wr   )r   r   r	   s     r   r   z_split_what.<locals>.<genexpr>   s     D#C)C#Dr   )	frozenset)whats    r   _split_whatr   
   s8    
 	???>>>DDD     c                  8    t        |       \  fd}|S )z
    Include *what*.

    :param what: What to include.
    :type what: `list` of classes `type`, field names `str` or
        `attrs.Attribute`\ s

    :rtype: `callable`

    .. versionchanged:: 23.1.0 Accept strings with field names.
    c                 L    |j                   v xs | j                  v xs | v S r   	__class__name	attributevalueattrsr   namess     r   include_zinclude.<locals>.include_#   s2    OOs" "~~&"E!	
r   r   )r   r    r   r   r   s     @@@r   includer"      "     $D)C
 Or   c                  8    t        |       \  fd}|S )z
    Exclude *what*.

    :param what: What to exclude.
    :type what: `list` of classes `type`, field names `str` or
        `attrs.Attribute`\ s.

    :rtype: `callable`

    .. versionchanged:: 23.3.0 Accept field name string as input argument
    c                 N    |j                   v xs | j                  v xs | v  S r   r   r   s     r   exclude_zexclude.<locals>.exclude_;   s7    OOs" "~~&"E!
 	
r   r!   )r   r&   r   r   r   s     @@@r   excluder'   -   r#   r   N)__doc___maker   r   r"   r'    r   r   <module>r+      s    0r   