+
     Xh  c                   s(    R t ^RIHt R tR tR tR# )zA
Commonly useful filters for `attrs.asdict` and `attrs.astuple`.
)	Attributec                sl    \        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)
isinstanceZtypeZ.0cls   & 1/usr/lib/python3.14/site-packages/attr/filters.py	<genexpr>_split_what.<locals>.<genexpr>   s     ?#C)>##   )
)c              3   r   r   )r   Zstrr   r   r   r   r	      s     >#C)=##r
   c              3   r   r   )r   r    r   r   r   r   r	      s     D#C)C##r
   )Z	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                 sj   < VP                   S9   ;'       g    V P                  S9   ;'       g    V S9   # r   Z	__class__ZnameZ	attributeZvalueattrsr   names   &&r   include_Zinclude.<locals>.include_&   s<    OOs" " "~~&" "E!	
r   r   )r   r   r   r   r      * @@@r   includer      "     $D)C
 Or   c                 r   )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                 st   < VP                   S9   ;'       g    V P                  S9   ;'       g    V S9   '       * # r   r   r   r   r   exclude_Zexclude.<locals>.exclude_A   sA    OOs" " "~~&" "E!
 	
r   r   )r   r   r   r   r   r   r   excluder   0   r   r   N)Z__doc__Z_maker    r   r   r   ) r   r   <module>r      s    6r   