
    [h                     b    d dl m Z  ddlmZ  G d de           Zd Zd Z G d d	e          Zd
S )    )greenlet   )TestCasec                   .    e Zd ZdZd Zd Zd Zd ZeZdS )genletNc                 "    || _         || _        d S N)argskwds)selfr
   r   s      l/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/greenlet/tests/test_generator.py__init__zgenlet.__init__   s    				    c                 <    | j         \  } || j        i | j         d S r	   )fnr
   r   )r   r   s     r   runz
genlet.run   s*    g
DI######r   c                     | S r	    )r   s    r   __iter__zgenlet.__iter__   s    r   c                 p    t          j                    | _        |                                 }| r|S t          r	   )r   
getcurrentparentswitchStopIteration)r   results     r   __next__zgenlet.__next__   s2    )++ 	Mr   )	__name__
__module____qualname__r   r   r   r   r   nextr   r   r   r   r      sV        F  $ $ $     DDDr   r   c                     t          j                    }t          |t                    s-|t	          d          |j        }t          |t                    -|j                            |            d S )Nzyield outside a genlet)r   r   
isinstancer   RuntimeErrorr   r   )valuegs     r   Yieldr&      sm    AF## 97888H F##  HOOEr   c                 2      G  fddt                     }|S )Nc                       e Zd Z fZdS )generator.<locals>.GeneratorN)r   r   r   r   )funcs   r   	Generatorr)   (   s        Wr   r+   )r   )r*   r+   s   ` r   	generatorr,   '   s=          F   r   c                       e Zd Zd ZdS )GeneratorTestsc                     g fd}t          |          }t          d          D ]%} |d          D ]}                    |           &|                     dg dz             d S )Nc                 t    t          |           D ]&}                    |           t          |           'd S r	   )rangeappendr&   )niseens     r   r%   z(GeneratorTests.test_generator.<locals>.g3   s>    1XX  Aa r         )
r   r   r   r      r8   r6   r6      r9   )r,   r1   r2   assertEqual)r   r%   _jr5   s       @r   test_generatorzGeneratorTests.test_generator0   s    	 	 	 	 	 aLLq 	 	AQqTT  Aq#A#A#AABBBBBr   N)r   r   r   r=   r   r   r   r.   r.   /   s(        C C C C Cr   r.   N)r    r   r   r&   r,   r.   r   r   r   <module>r?      s                   X   0    C C C C CX C C C C Cr   