§
£ÏVHϽûCã ó8 — d Z dZddlZddlZddlZddlZddlmZ ddl m
Z
ddl mZ ddl mZ dd l m
Z
e
j Ze
j Ze
j Ze
j Zej dz
Z G d
„ d¦ « ZeZd„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zddœd„Z ddlZej xZZdS # e$ r Y dS w xY w)z.A Future class similar to the one in PEP 3148.)ÚFutureÚwrap_futureÚisfutureé N)ÚGenericAliasé )Úbase_futures)Úevents)Ú
exceptions)Úformat_helpersc óô — e Zd ZdZeZdZdZdZdZ dZ
dZdZdZ
ddœd„Zd„ Zd„ Z ee¦ « Zed„ ¦ « Zej d „ ¦ « Zd
„ Zd„ Zdd„Zd
„ Zd„ Zd„ Zd„ Zd„ Zddœd„Zd„ Z d„ Z!d„ Z"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 óä — |€t j ¦ « | _ n|| _ g | _ | j ¦ « r-t j t j 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Ú
_callbacksÚ get_debugr Ú
extract_stackÚsysÚ _getframeÚ_source_traceback©Úselfr s ú