<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    >t`                 @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddddddd	dd	dd	d	ddd	ddddd
ddZeZeedddZedddddddd	ddddddZdS )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               sV   	
fdd fdd}| dkrJ|S || S d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                s0   t | |	 d
dS )NT)	maybe_clsr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zcollect_by_mror   r   r   )r	   )clsr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r    ?/opt/alt/python37/lib/python3.7/site-packages/attr/_next_gen.pydo_it5   s*    zdefine.<locals>.do_itc                s   dt jfk}dkr$dkr$t jx,| jD ]"}|jtkr,|rFtdt jP q,W  dk	rd|  S y
| dS  tk
r   | dS X dS )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   ZNO_OPvalidate	__bases____setattr__r   
ValueErrorr   )r   Zhad_on_setattrZbase_cls)r   r    r   r   r   r   wrapM   s     


zdefine.<locals>.wrapNr   )r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r%   r   )r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   define   s
    ',%r&   )r   r   )default	validatorr   r   r   metadata	converterfactoryr   r   r   r   c             C   s    t | |||||||||	|
|dS )zx
    Identical to `attr.ib`, except keyword-only and with some arguments
    removed.

    .. versionadded:: 20.1.0
    )r'   r(   r   r   r   r)   r*   r+   r   r   r   r   )r   )r'   r(   r   r   r   r)   r*   r+   r   r   r   r   r   r   r   field|   s    r,   )N)__doc__	functoolsr   Zattr.exceptionsr    r   _maker   r   r   r	   r&   Zmutabler   r,   r   r   r   r   <module>   sJ   V