+
    Ci                     (    R t ^RIHt R tR tR tR# )zA
Commonly useful filters for `attrs.asdict` and `attrs.astuple`.
)	Attributec                l    \        R V  4       4      \        R V  4       4      \        R V  4       4      3# )z<
Returns a tuple of `frozenset`s of classes and attributes.
c              3   V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5iN)
isinstancetype.0clss   & ./usr/lib/python3/dist-packages/attr/filters.py	<genexpr>_split_what.<locals>.<genexpr>   s     ?#C)>##   )
)c              3   V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5ir   )r   strr   s   & r   r   r      s     >#C)=##r   c              3   V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5ir   )r   r   r   s   & r   r   r      s     D#C)C##r   )	frozenset)whats   &r   _split_whatr   
   s8    
 	???>>>DDD     c                 :   aaa \        V 4      w  oooVVV3R lpV# )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                 j   < VP                   S9   ;'       g    V P                  S9   ;'       g    V S9   # r   	__class__name	attributevalueattrsr
   namess   &&r   include_include.<locals>.include_&   s<    OOs" " "~~&" "E!	
r   r   )r   r    r   r
   r   s   * @@@r   includer#      "     $D)C
 Or   c                 :   aaa \        V 4      w  oooVVV3R lpV# )ap  
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                 t   < VP                   S9   ;'       g    V P                  S9   ;'       g    V S9   '       * # r   r   r   s   &&r   exclude_exclude.<locals>.exclude_A   sA    OOs" " "~~&" "E!
 	
r   r"   )r   r'   r   r
   r   s   * @@@r   excluder)   0   r$   r   N)__doc___maker   r   r#   r)    r   r   <module>r-      s    6r   