File: //opt/cppython/lib/python3.8/test/__pycache__/test_coroutines.cpython-38.pyc
U
.D�g� � @ s, d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm Z d dl
mZ G dd� d�ZG dd� d�Z
dd � Zd
d� Ze jdd
� �ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�Ze jG dd� dej��Zedk�r(e�� dS )� N)�support��assert_python_okc @ s e Zd Zdd� Zdd� ZdS )�AsyncYieldFromc C s
|| _ d S �N��obj)�selfr � r
�3/opt/cppython/lib/python3.8/test/test_coroutines.py�__init__ s zAsyncYieldFrom.__init__c c s | j E d H d S r r �r r
r
r � __await__ s zAsyncYieldFrom.__await__N��__name__�
__module__�__qualname__r r r
r
r
r r
s r c @ s e Zd Zdd� Zdd� ZdS )�
AsyncYieldc C s
|| _ d S r ��value)r r r
r
r r s zAsyncYield.__init__c c s | j V d S r r r
r
r
r r s zAsyncYield.__await__Nr r
r
r
r r s r c
C s| | j tjtjhkst�g }d }z|�| �d �� W q tk
rp } z |jrT|jd nd }W Y �qtW 5 d }~X Y qX q||fS �Nr ) � __class__�types�
GeneratorType�
CoroutineType�AssertionError�append�send�
StopIteration�args)�coro�buffer�result�exr
r
r � run_async s r$ c
C s� | j tjkst�| �� }g }d }d}z4|d r>|�t|�� n|�|�d �� |d7 }W q$ tk
r� } z |j rz|j d nd }W Y �q�W 5 d }~X Y q$X q$||fS )Nr � � )
r r r r r r �nextr r r )r �awr! r"