o
    诪g	                     @   s0  d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZ ddlmZmZmZmZmZ dd	lmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ dd
l%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+ e Z,Z-e Z.Z/eeddZ0G dd deZ1eej Z2g dZ3de4defddZ5e5e6Z7dS )z
Classes Without Boilerplate
    )partial)CallableLiteralProtocol   )
converters
exceptionsfilterssetters
validators)	cmp_using)get_run_validatorsset_run_validators)asdictassocastuplehasresolve_types)NOTHING	Attribute	ConverterFactory_Nothingattribattrsevolvefieldsfields_dict
make_classvalidate)definefieldfrozenmutable)VersionInfoT)auto_attribsc                   @   s   e Zd ZdS )AttrsInstanceN)__name__
__module____qualname__ r*   r*   I/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/attr/__init__.pyr&   %   s    r&   )"r   r   r&   r   r   NothingTyper   r   r   attrr   
attributesr   r   r   r    r   r   r!   r   r   r	   r"   r   r   ibr   r#   r   sr   r
   r   r   mod_namereturnc                    s   dt dt f fdd}|S )zp
    Create a metadata proxy for packaging information that uses *mod_name* in
    its warnings and errors.
    namer2   c                    sR   | dvrd  d|  }t |ddlm} |d}| dkr%t|d S |d S )	N)__version____version_info__zmodule z has no attribute r   )metadatar   r5   version)AttributeErrorimportlib.metadatar6   r$   _from_version_string)r3   msgr6   metar1   r*   r+   __getattr__W   s   z"_make_getattr.<locals>.__getattr__)str)r1   r>   r*   r=   r+   _make_getattrQ   s   r@   N)8__doc__	functoolsr   typingr   r   r    r   r   r	   r
   r   _cmpr   _configr   r   _funcsr   r   r   r   r   _maker   r   r   r   r   r   r   r   r   r   r   r   	_next_genr    r!   r"   r#   _version_infor$   r0   r.   r/   r-   	dataclassr&   r,   __all__r?   r@   r'   r>   r*   r*   r*   r+   <module>   s$   8
&