HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/attr/__pycache__/_next_gen.cpython-310.pyc
o

"we�@s�dZddlmZddlmZddlmZddlmZ	ddl
mZmZm
Z
mZmZddlmZ		dd	d	d	d	d	d
dd
dd	ddd
d	dd
d	d	d	d
d�d
d�ZeZeed
d	d�Zed	d
d	d
d	d	d	d	dd	d	d	d	d�dd�Zd
d	d	d�dd�Zd
d	d�dd�Zd	S)z]
These are keyword-only APIs that call `attr.s` and `attr.ib` with different
default values.
�)�partial�)�setters)�asdict)�astuple)�NOTHING�_frozen_setattrs�_ng_default_on_setattr�attrib�attrs)�UnannotatedAttributeErrorNTF)�these�repr�unsafe_hash�hash�init�slots�frozen�weakref_slot�str�auto_attribs�kw_only�
cache_hash�auto_exc�eq�order�auto_detect�getstate_setstate�
on_setattr�field_transformer�
match_argscsV��������	�
���
�������fdd������
fdd�}|dur'|S||�S)a�
    Define an *attrs* class.

    Differences to the classic `attr.s` that it uses underneath:

    - Automatically detect whether or not *auto_attribs* should be `True` (c.f.
      *auto_attribs* parameter).
    - If *frozen* is `False`, run converters and validators when setting an
      attribute by default.
    - *slots=True*

      .. caution::

         Usually this has only upsides and few visible effects in everyday
         programming. But it *can* lead to some suprising behaviors, so please
         make sure to read :term:`slotted classes`.
    - *auto_exc=True*
    - *auto_detect=True*
    - *order=False*
    - Some options that were only relevant on Python 2 or were kept around for
      backwards-compatibility have been removed.

    Please note that these are all defaults and you can change them as you
    wish.

    :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 `attrs.fields`\ s
          are found, it assumes *auto_attribs=True*.
       2. Otherwise it assumes *auto_attribs=False* and tries to collect
          `attrs.fields`\ s.

    For now, please refer to `attr.s` for the rest of the parameters.

    .. versionadded:: 20.1.0
    .. versionchanged:: 21.3.0 Converters are also run ``on_setattr``.
    .. versionadded:: 22.2.0
       *unsafe_hash* as an alias for *hash* (for :pep:`681` compliance).
    cs�tdid|�d��d�
�d��d��d��d��d��d	��d
��d|�d�	�d
��d��d��d��d��dd�d��d��d��d�
��S)N�	maybe_clsr
rrrrrrrrrrrrrrr�collect_by_mroTrrrr �)r)�clsr)rrrrrrrrrrr rrrrrr
rrr#�G/home/arjun/projects/env/lib/python3.10/site-packages/attr/_next_gen.py�do_itYsZ��������	�
���
����������zdefine.<locals>.do_itcs��dtjfv}�dur�durt�|jD]}|jtur&|r!td��tj�nq�dur0�|��Sz�|d�WStyD�|d�YSw)z�
        Making this a wrapper ensures this code runs during class creation.

        We also ensure that frozen-ness of classes is inherited.
        NFz@Frozen classes can't use on_setattr (frozen-ness was inherited).T)r�NO_OPr	�	__bases__�__setattr__r�
ValueErrorr)r$�had_on_setattr�base_cls)rr&rrr#r%�wrapss&

��

�zdefine.<locals>.wrapNr#)r!r
rrrrrrrrrrrrrrrrrrr r-r#)rrrrr&rrrrrrrr rrrrrr
rrr%�defines
0A%r.)rr��default�	validatorrrr�metadata�type�	converter�factoryrrrr�aliascCs$t||||||||||	|
|||
d�S)a,
    Identical to `attr.ib`, except keyword-only and with some arguments
    removed.

    .. versionadded:: 23.1.0
       The *type* parameter has been re-added; mostly for
       {func}`attrs.make_class`. Please note that type checkers ignore this
       metadata.
    .. versionadded:: 20.1.0
    r/)r
r/r#r#r%�field�s �r7)�recurse�filter�value_serializercCst||||dd�S)z�
    Same as `attr.asdict`, except that collections types are always retained
    and dict is always used as *dict_factory*.

    .. versionadded:: 21.3.0
    T)�instr8r9r:�retain_collection_types)�_asdict)r;r8r9r:r#r#r%r�s�r)r8r9cCst|||dd�S)z�
    Same as `attr.astuple`, except that collections types are always retained
    and `tuple` is always used as the *tuple_factory*.

    .. versionadded:: 21.3.0
    T)r;r8r9r<)�_astuple)r;r8r9r#r#r%r�s�r)N)�__doc__�	functoolsr�r�_funcsrr=rr>�_makerrr	r
r�
exceptionsrr.�mutablerr7r#r#r#r%�<module>sd���-