U
    ›‰`P  ã                   @   s  U d Z ddlmZ ddlmZ ded< G dd„ dƒZddlmZ d	Ze	ed
< eZ
eed< ee	e	f ed< G dd„ deƒZdZe G dd„ deƒZddlmZ edefƒZedƒZG dd„ dƒZG dd„ deƒZG dd„ deƒZG dd„ dedZd%e	dœd d!„Zd"d#„ Zd$S )&zw
The module for testing variable annotations.
Empty lines above are for good reason (testing for correct line numbers)
é    )ÚOptional©Úwrapsé   é   c                   @   s"   e Zd ZU dZdZed  ed< dS )ÚCé   NÚy)Ú__name__Ú
__module__Ú__qualname__Úxr	   r   Ú__annotations__© r   r   ú%/usr/lib/python3.8/test/ann_module.pyr      s   
 r   )ÚTupler   r   r	   Úfc                   @   s"   e Zd ZU ded< eZeed< dS )ÚMé{   Z123ÚoN)r
   r   r   r   Úobjectr   Útyper   r   r   r   r      s   
r   Tc                   @   s&   e Zd ZU dZeed< dZeed< dS )ÚDÚhiÚjZbyeÚkN)r
   r   r   r   Ústrr   r   r   r   r   r   r      s   
 r   )Ú	new_classÚHÚJc                   @   s"   e Zd ZU dZeed< dd„ ZdS )ÚFr   Úzc                 C   s   d S ©Nr   )Úselfr   r   r   r   Ú__init__$   s    z
F.__init__N)r
   r   r   r!   Úintr   r$   r   r   r   r   r    "   s   
r    c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚYc                    s   t t| ƒ d¡ d S )Nr   )Úsuperr    r$   )r#   ©Ú	__class__r   r   r$   (   s    z
Y.__init__)r
   r   r   r$   Ú__classcell__r   r   r(   r   r&   '   s   r&   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚMetac                    s   t ƒ  | |||¡S r"   )r'   Ú__new__)ÚmetaÚnameÚbasesÚ	namespacer(   r   r   r,   ,   s    zMeta.__new__)r
   r   r   r,   r*   r   r   r(   r   r+   +   s   r+   c                   @   s&   e Zd ZU dZeed< dZeed< dS )ÚSZ	somethingr   zsomething elser	   N)r
   r   r   r   r   r   r	   r   r   r   r   r1   /   s   
r1   )Ú	metaclassé
   )r   c                 C   s   t t dœdd„}|ƒ  d S )N)r	   c                 S   s   d}d S )NZyesr   )r	   r   r   r   r   Úbar4   s    zfoo.<locals>.bar)ZListr   )r   r4   r   r   r   Úfoo3   s    r5   c                    s   t ˆ ƒ‡ fdd„ƒ}|S )Nc                     s
   ˆ | |ŽS r"   r   )ÚargsÚkwargs©Úfuncr   r   Úwrapper9   s    zdec.<locals>.wrapperr   )r9   r:   r   r8   r   Údec8   s    r;   N)r3   )Ú__doc__Útypingr   Ú	functoolsr   r   r   r   r   r%   r	   r   r   r   ZparsÚboolr   Útypesr   Zh_classZj_classr    r&   r+   r1   r5   r;   r   r   r   r   Ú<module>   s(     