File: //usr/lib/python3/dist-packages/attr/__pycache__/_next_gen.cpython-312.pyc
�
��`� � � � d Z ddlmZ ddlmZ ddlmZ ddlmZm Z m
Z
mZ ddddddd dd dd d ddd ddddd
�d�ZeZ
eedd�� Zedddddddd dddd
�d�Zy)zr
These are Python 3.6+-only and keyword-only APIs that call `attr.s` and
`attr.ib` with different default values.
� )�partial)�UnannotatedAttributeError� )�setters)�NOTHING�_frozen_setattrs�attrib�attrsNTF)�these�repr�hash�init�slots�frozen�weakref_slot�str�auto_attribs�kw_only�
cache_hash�auto_exc�eq�order�auto_detect�getstate_setstate�
on_setattr�field_transformerc �z ��������� �
���
������� ����
������
�������fd��� ���fd�}| �|S || � S )aD
The only behavioral differences are the handling of the *auto_attribs*
option:
:param Optional[bool] auto_attribs: If set to `True` or `False`, it behaves
exactly like `attr.s`. If left `None`, `attr.s` will try to guess:
1. If any attributes are annotated and no unannotated `attr.ib`\ s
are found, it assumes *auto_attribs=True*.
2. Otherwise it assumes *auto_attribs=False* and tries to collect
`attr.ib`\ s.
and that mutable classes (``frozen=False``) validate on ``__setattr__``.
.. versionadded:: 20.1.0
c � �� t di d| �d��d��d� �d�
�d��d��d��d ��d
|�d��d��d
��d��d�
�d��dd�d��d��d���S )N� maybe_clsr r r
r r r r r r r r r r r r �collect_by_mroTr r r � )r
)�clsr r r r r r r r r
r r r r r r r r r s ������������������0/usr/lib/python3/dist-packages/attr/_next_gen.py�do_itzdefine.<locals>.do_it5 s� �� ��
��
��
� �
� �
�
�
� �
� �
� &�
� �
� &�
� �
� "�
� �
� �
� �
� $�!
�"