File: //lib64/python3.9/asyncio/__pycache__/futures.cpython-39.opt-1.pyc
a
    �DOg�6  �                   @   s  d Z dZddlZddlZddlZddlZddlmZ ddl	m
Z
 ddl	mZ ddl	mZ dd	l	m
Z
 e
jZe
jZe
jZe
jZejd ZG d
d� d�ZeZdd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd�dd�ZzddlZW n ey�   Y n0 ej ZZdS )z.A Future class similar to the one in PEP 3148.)�Future�wrap_future�isfuture�    N)�GenericAlias�   )�base_futures)�events)�
exceptions)�format_helpersc                   @   s�   e Zd ZdZeZdZdZdZdZ	dZ
dZdZdZ
dd�dd�ZejZdd� Zd	d
� Zee�Zedd� �Zejd
d� �Zdd� Zdd� Zd)dd�Zdd� Zdd� Zdd� Zdd� Z dd� Z!dd�dd �Z"d!d"� Z#d#d$� Z$d%d&� Z%d'd(� Z&e&Z'dS )*r   a,  This class is *almost* compatible with concurrent.futures.Future.
    Differences:
    - This class is not thread-safe.
    - result() and exception() do not take a timeout argument and
      raise an exception when the future isn't done yet.
    - Callbacks registered with add_done_callback() are always called
      via the event loop's call_soon().
    - This class is not compatible with the wait() and as_completed()
      methods in the concurrent.futures package.
    (In Python 3.4 or later we may be able to unify the implementations.)
    NF��loopc                C   s@   |du rt �� | _n|| _g | _| j�� r<t�t�d��| _	dS )z�Initialize the future.
        The optional event_loop argument allows explicitly setting the event
        loop object used by the future. If it's not provided, the future uses
        the default event loop.
        Nr   )
r   �get_event_loop�_loop�
_callbacksZ	get_debugr
   �
extract_stack�sys�	_getframe�_source_traceback��selfr   � r   �'/usr/lib64/python3.9/asyncio/futures.py�__init__H   s    
�zFuture.__init__c                 C   s   d� | jjd�| �� ��S )Nz<{} {}>� )�format�	__class__�__name__�join�
_repr_info�r   r   r   r   �__repr__Z   s    
�zFuture.__repr__c                 C   sF   | j s
d S | j}| jj� d�|| d�}| jr6| j|d<