shell bypass 403
o
^b�6 � @ s� d Z dZddlZddlZddlZddlZddlmZ ddlm Z ddlm
Z
ddlmZ ejZej
Z
ejZejZejd ZG d d
� d
�ZeZdd� Zd
d� Zdd� Zdd� Zdd� Zdd� Zdd�dd�ZzddlZW n
eyu Y dS w ej ZZdS )z.A Future class similar to the one in PEP 3148.)�Future�wrap_future�isfuture� N� )�base_futures)�events)�
exceptions)�format_helpersc @ s� e Zd ZdZeZdZdZdZdZ dZ
dZdZdZ
dd�dd�ZejZdd� Zd d
� Zdd� Zed
d� �Zejdd� �Zdd� Zdd� Zd+dd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd �d!d"�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 sD |du r
t �� | _n|| _g | _| j�� r t�t�d��| _ dS 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 �8/usr/local/python-3.10/lib/python3.10/asyncio/futures.py�__init__G s
��zFuture.__init__c C s d� | jjd�| �� ��S )Nz<{} {}>� )�format� __class__�__name__�join�
_repr_info�r r r r �__repr__Y s
�zFuture.__repr__c C sF | j sd S | j}| jj� d�|| d�}| jr| j|d<