o
    @a                     @   s  G d d de ZG dd de ZG dd de ZG dd de ZG dd	 d	e ZG d
d de ZG dd de ZG dd de ZG dd de Z	G dd de Z
G dd de ZG dd de ZG dd deedZG dd deedZG dd deedZG dd  d eedZG d!d" d"eedZG d#d$ d$eedZG d%d& d&eedZG d'd( d(eedZG d)d* d*ee	dZG d+d, d,ee
dZG d-d. d.eedZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZd7S )8c                   @      e Zd Zdd ZdS )FunMetac                 C   s   t t|d |d f S )N       )Funtupleclsitem r
   0/usr/lib/python3/dist-packages/pythran/typing.py__getitem__   s   zFunMeta.__getitem__N__name__
__module____qualname__r   r
   r
   r
   r   r          r   c                   @   r   )DictMetac                 C      t |S N)Dictr   r
   r
   r   r   	      zDictMeta.__getitem__Nr   r
   r
   r
   r   r      r   r   c                   @   r   )	UnionMetac                 C   r   r   )Unionr   r
   r
   r   r      r   zUnionMeta.__getitem__Nr   r
   r
   r
   r   r      r   r   c                   @   r   )SetMetac                 C   r   r   )Setr   r
   r
   r   r      r   zSetMeta.__getitem__Nr   r
   r
   r
   r   r      r   r   c                   @   r   )ListMetac                 C   r   r   )Listr   r
   r
   r   r      r   zListMeta.__getitem__Nr   r
   r
   r
   r   r      r   r   c                   @   r   )IterableMetac                 C   r   r   )Iterabler   r
   r
   r   r   !   r   zIterableMeta.__getitem__Nr   r
   r
   r
   r   r      r   r   c                   @   r   )GeneratorMetac                 C   r   r   )	Generatorr   r
   r
   r   r   '   r   zGeneratorMeta.__getitem__Nr   r
   r
   r
   r   r   %   r   r   c                   @   r   )	TupleMetac                 C   r   r   )Tupler   r
   r
   r   r   -   r   zTupleMeta.__getitem__Nr   r
   r
   r
   r   r!   +   r   r!   c                   @   r   )OptionalMetac                 C   r   r   )Optionalr   r
   r
   r   r   3   r   zOptionalMeta.__getitem__Nr   r
   r
   r
   r   r#   1   r   r#   c                   @   r   )NDArrayMetac                 C   r   r   )NDArrayr   r
   r
   r   r   9   r   zNDArrayMeta.__getitem__Nr   r
   r
   r
   r   r%   7   r   r%   c                   @   r   )PointerMetac                 C   r   r   )Pointerr   r
   r
   r   r   ?   r   zPointerMeta.__getitem__Nr   r
   r
   r
   r   r'   =   r   r'   c                   @   s   e Zd Zdd Zdd ZdS )Typec              	   C   s,   t | | jtfdt|tr|iS |fiS )N__args__)type__new__r   object
isinstancer   )r   argsr
   r
   r   r,   E   s   zType.__new__c                 O   s   d S r   r
   )selfr/   kwargsr
   r
   r   __init__M   s   zType.__init__N)r   r   r   r,   r2   r
   r
   r
   r   r)   C   s    r)   c                   @      e Zd ZdS )r   Nr   r   r   r
   r
   r
   r   r   Q       r   )	metaclassc                   @   r3   )r   Nr4   r
   r
   r
   r   r   U   r5   r   c                   @   r3   )r   Nr4   r
   r
   r
   r   r   Y   r5   r   c                   @   r3   )r   Nr4   r
   r
   r
   r   r   ]   r5   r   c                   @   r3   )r   Nr4   r
   r
   r
   r   r   a   r5   r   c                   @   r3   )r   Nr4   r
   r
   r
   r   r   e   r5   r   c                   @   r3   )r    Nr4   r
   r
   r
   r   r    i   r5   r    c                   @   r3   )r"   Nr4   r
   r
   r
   r   r"   m   r5   r"   c                   @   r3   )r$   Nr4   r
   r
   r
   r   r$   q   r5   r$   c                   @   r3   )r&   Nr4   r
   r
   r
   r   r&   u   r5   r&   c                   @   r3   )r(   Nr4   r
   r
   r
   r   r(   y   r5   r(   c                   @   r   )TypeVarc                 C   s
   || _ d S r   )r   )r0   namer
   r
   r   r2      s   
zTypeVar.__init__N)r   r   r   r2   r
   r
   r
   r   r7   }   r   r7   c                   @   r3   )SizedNr4   r
   r
   r
   r   r9      r5   r9   c                   @   r3   )AnyNr4   r
   r
   r
   r   r:      r5   r:   c                   @   r3   )FileNr4   r
   r
   r
   r   r;      r5   r;   N)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-   r7   r9   r:   r;   r
   r
   r
   r   <module>   s6    