U
    j7g'                  !   @   sb  d Z ddlmZ ddl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 ddlmZmZ dd	lmZ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# 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Z/G dd deZ0ddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0g!Z1e2ed1d2d3Z3e3e4Z5d4S )5z
Classes Without Boilerplate
    )partial)Callable   )
converters
exceptionsfilterssetters
validators)	cmp_using)Protocol)get_run_validatorsset_run_validators)asdictassocastupleevolvehasresolve_types)
NOTHING	Attribute	ConverterFactoryattribattrsfieldsfields_dict
make_classvalidate)definefieldfrozenmutable)VersionInfoT)Zauto_attribsc                   @   s   e Zd ZdS )AttrsInstanceN)__name__
__module____qualname__ r'   r'   1/tmp/pip-unpacked-wheel-jjqst275/attr/__init__.pyr#   $   s   r#   r   r   r   r   r   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   t t d fdd}|S )zp
    Create a metadata proxy for packaging information that uses *mod_name* in
    its warnings and errors.
    )namer.   c                    sx   | dkr d  d|  }t |zddlm} W n  tk
rP   ddlm} Y nX |d}| dkrpt|d S |d S )	N)__version____version_info__zmodule z has no attribute r   )metadatar   r1   version)AttributeErrorimportlib.metadatar2   ImportErrorZimportlib_metadatar"   Z_from_version_string)r/   msgr2   metar-   r'   r(   __getattr__S   s    z"_make_getattr.<locals>.__getattr__)str)r-   r:   r'   r9   r(   _make_getattrM   s    r<   N)6__doc__	functoolsr   typingr    r   r   r   r   r	   Z_cmpr
   _compatr   _configr   r   Z_funcsr   r   r   r   r   r   _maker   r   r   r   r   r   r   r   r   r   Z	_next_genr   r   r    r!   Z_version_infor"   r,   r*   r+   r)   Z	dataclassr#   __all__r;   r<   r$   r:   r'   r'   r'   r(   <module>   sd    0%