U
    ˆj	  ã                "   @   sn  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 Z2d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.d/d0g"Z3e4ed1œd2d3„Z5e5e6ƒZ7d4S )5z
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)Zauto_attribsc                   @   s   e Zd ZdS )ÚAttrsInstanceN)Ú__name__Ú
__module__Ú__qualname__© r)   r)   ú1/tmp/pip-unpacked-wheel-msrlmo3l/attr/__init__.pyr%   %   s   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   t t dœ‡ fdd„}|S )zp
    Create a metadata proxy for packaging information that uses *mod_name* in
    its warnings and errors.
    )Únamer1   c                    sR   | dkr dˆ › d| › �}t |ƒ‚ddlm} |dƒ}| dkrJt |d ¡S |d S )	N)Ú__version__Ú__version_info__zmodule z has no attribute r   )Úmetadatar   r4   Úversion)ÚAttributeErrorÚimportlib.metadatar5   r$   Z_from_version_string)r2   Úmsgr5   Úmeta©r0   r)   r*   Ú__getattr__W   s    z"_make_getattr.<locals>.__getattr__)Ústr)r0   r<   r)   r;   r*   Ú_make_getattrQ   s    r>   N)8Ú__doc__Ú	functoolsr   Útypingr   r   r   Ú r   r   r	   r
   r   Z_cmpr   Ú_configr   r   Z_funcsr   r   r   r   r   Ú_maker   r   r   r   r   r   r   r   r   r   r   r   Z	_next_genr    r!   r"   r#   Z_version_infor$   r/   r-   r.   r,   Z	dataclassr%   r+   Ú__all__r=   r>   r&   r<   r)   r)   r)   r*   Ú<module>   sf   8
Þ&