U
    {h                     @   s   d dl mZ zd dlmZ W n ek
r8   dd ZY nX G dd dZe Zeddd	d
dddddddg
ZG dd dZG dd dZ	e	 Z
dd ZG dd dZedZedZedZdd ZdS )     )
namedtuple)MappingProxyTypec                 C   s   | S N )xr   r   >/tmp/pip-unpacked-wheel-fhl22ezh/Cython/Utility/Dataclasses.py<lambda>       r   c                   @   s   e Zd ZdS )_MISSING_TYPEN)__name__
__module____qualname__r   r   r   r   r
      s   r
   _DataclassParamsinitrepreqorderZunsafe_hashfrozenZ
match_argskw_onlyslotsZweakref_slotc                   @   s    e Zd ZdZdd Zdd ZdS )Field)nametypedefaultdefault_factoryr   hashr   comparemetadatar   _field_typec	           	      C   sZ   d | _ d | _|| _|| _|| _|| _|| _|| _|d kr@ti nt|| _	|| _
d | _d S r   )r   r   r   r   r   r   r   r   r   r   r   r   )	selfr   r   r   r   r   r   r   r   r   r   r   __init__%   s    
zField.__init__c                 C   s0   d | j| j| j| j| j| j| j| j| j	| j

S )NzField(name={!r},type={!r},default={!r},default_factory={!r},init={!r},repr={!r},hash={!r},compare={!r},metadata={!r},kwonly={!r},))formatr   r   r   r   r   r   r   r   r   r   r   r   r   r   __repr__7   s          zField.__repr__N)r   r   r   	__slots__r    r#   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )_HAS_DEFAULT_FACTORY_CLASSc                 C   s   dS )Nz	<factory>r   r"   r   r   r   r#   L   s    z#_HAS_DEFAULT_FACTORY_CLASS.__repr__N)r   r   r   r#   r   r   r   r   r%   K   s   r%   c                  O   s   t dd S )NzfStandard library 'dataclasses' moduleis unavailable, likely due to the version of Python you're using.)NotImplementedError)argskwdsr   r   r   	dataclassP   s    r)   c                   @   s   e Zd Zdd Zdd ZdS )_FIELD_BASEc                 C   s
   || _ d S r   r   )r   r   r   r   r   r    V   s    z_FIELD_BASE.__init__c                 C   s   | j S r   r+   r"   r   r   r   r#   X   s    z_FIELD_BASE.__repr__N)r   r   r   r    r#   r   r   r   r   r*   U   s   r*   _FIELD_FIELD_CLASSVAR_FIELD_INITVARc            
   	   O   s   | dt}| dt}| dd}| dd}| dd }| dd}| dd }| d	d }	|rxtd
t|  |tk	r|tk	rtd| rtdt||||||||	S )Nr   r   r   Tr   r   r   r   r   z/field received unexpected keyword arguments: %sz/cannot specify both default and default_factoryz.'field' does not take any positional arguments)popMISSING
ValueErrorlistkeysr   )
ignorer(   r   r   r   r   r   r   r   r   r   r   r   field^   s.    
    r5   N)collectionsr   typesr   ImportErrorr
   r0   r   r   r%   Z_HAS_DEFAULT_FACTORYr)   r*   r,   r-   r.   r5   r   r   r   r   <module>	   s.      4