o
    2³c   ã                   @   sJ   d dl Z d dlmZ G dd„ deƒZdd„ Zdd„ ZG d	d
„ d
e jƒZdS )é    N)Úgreenletc                   @   s0   e Zd Zdd„ Zdd„ Zdd„ Zdd„ ZeZd	S )
Úgenletc                 O   s   || _ || _d S ©N)ÚargsÚkwds)Úselfr   r   © r   úS/var/www/html/gps/gps/lib/python3.10/site-packages/greenlet/tests/test_generator.pyÚ__init__   s   
zgenlet.__init__c                 C   s   | j \}|| ji | j¤Ž d S r   )Úfnr   r   )r   r   r   r   r	   Úrun   s   z
genlet.runc                 C   s   | S r   r   )r   r   r   r	   Ú__iter__   s   zgenlet.__iter__c                 C   s   t  ¡ | _|  ¡ }| r|S t‚r   )r   Ú
getcurrentÚparentÚswitchÚStopIteration)r   Úresultr   r   r	   Ú__next__   s
   
zgenlet.__next__N)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   Únextr   r   r   r	   r      s    	r   c                 C   sB   t  ¡ }t|tƒs|d u rtdƒ‚|j}t|tƒr	|j | ¡ d S )Nzyield outside a genlet)r   r   Ú
isinstancer   ÚRuntimeErrorr   r   )ÚvalueÚgr   r   r	   ÚYield   s   

ýr   c                    s   G ‡ fdd„dt ƒ}|S )Nc                       s   e Zd Z” fZdS )zgenerator.<locals>.generatorN)r   r   r   r   r   ©Úfuncr   r	   Ú	generator(   s    
r   )r   )r   r   r   r   r	   r   '   s   r   c                   @   s   e Zd Zdd„ ZdS )ÚGeneratorTestsc                    sV   g ‰ ‡ fdd„}t |ƒ}tdƒD ]}|dƒD ]}ˆ  |¡ qq|  ˆ dg d¢ ¡ d S )Nc                    s$   t | ƒD ]}ˆ  |¡ t|ƒ qd S r   )ÚrangeÚappendr   )ÚnÚi©Úseenr   r	   r   3   s   

þz(GeneratorTests.test_generator.<locals>.gé   é   )
r   r   é   r)   é   r*   r'   r'   é   r+   )r   r!   r"   ÚassertEqual)r   r   ÚkÚjr   r%   r	   Útest_generator0   s   ÿzGeneratorTests.test_generatorN)r   r   r   r/   r   r   r   r	   r    /   s    r    )Úunittestr   r   r   r   ÚTestCaser    r   r   r   r	   Ú<module>   s    	