o ?Ogk7@s dZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddlm Z ddlm Z e j Z e jZe jZe jZejdZGd d d ZeZd d Zd dZddZddZddZddZddddZzddlZWn eyzYdSwejZZdS))Future wrap_futureisfutureN) GenericAlias) base_futures)events) exceptions)format_helpersc@seZdZ eZdZdZdZdZdZ dZ dZ dZ ddddZ ejZddZdd ZeeZed d Zejd d Zd dZddZd(ddZddZddZddZddZddZ ddddZ!d d!Z"d"d#Z#d$d%Z$d&d'Z%e%Z&dS))rNFloopcCsF |dur t|_n||_g|_|jr!ttd|_ dSdS)Nr) r_get_event_loop_loop _callbacksZ get_debugr extract_stacksys _getframe_source_tracebackselfr r6/opt/alt/python310/lib64/python3.10/asyncio/futures.py__init__Hs   zFuture.__init__cCsd|jjd|S)Nz<{} {}> )format __class____name__join _repr_inforrrr__repr__Zs  zFuture.__repr__cCsF|jsdS|j}|jjd||d}|jr|j|d<|j|dS)Nz exception was never retrieved)message exceptionfutureZsource_traceback)_Future__log_traceback _exceptionrrrrZcall_exception_handler)rexccontextrrr__del__^s  zFuture.__del__cCs|jSN)r$rrrr_log_tracebackpszFuture._log_tracebackcCs|rtdd|_dS)Nz'_log_traceback can only be set to FalseF) ValueErrorr$)rvalrrrr*ts cCs |j}|dur td|S)Nz!Future object is not initialized.)r RuntimeErrorrrrrget_loopzs zFuture.get_loopcCs4 |jdur t}nt|j}|j|_d|_|Sr))_cancel_messager CancelledError_cancelled_exc __context__rr&rrr_make_cancelled_errors   zFuture._make_cancelled_errorcCs. d|_|jtkr dSt|_||_|dS)NFT)r$_state_PENDING _CANCELLEDr/_Future__schedule_callbacks)rmsgrrrcancels z Future.cancelcCsJ |jdd}|s dSg|jdd<|D] \}}|jj|||dqdSNr')rr call_soon)rZ callbackscallbackctxrrrZ__schedule_callbackss zFuture.__schedule_callbackscCs |jtkSr))r5r7rrrr cancelleds zFuture.cancelledcCs |jtkSr))r5r6rrrrdones z Future.donecCsP |jtkr |}||jtkrtdd|_|jdur%|j|j |j S)NzResult is not ready.F) r5r7r4 _FINISHEDr InvalidStateErrorr$r%with_traceback _exception_tb_resultr3rrrresults    z Future.resultcCs8 |jtkr |}||jtkrtdd|_|jS)NzException is not set.F)r5r7r4rBr rCr$r%r3rrrr"s   zFuture.exceptionr<cCsF |jtkr|jj|||ddS|durt}|j||fdSr;)r5r6rr= contextvarsZ copy_contextrappend)rfnr'rrradd_done_callbacks  zFuture.add_done_callbackcs> fdd|jD}t|jt|}|r||jdd<|S)Ncs g|] \}}|kr||fqSrr).0fr?rJrr s z/Future.remove_done_callback..)rlen)rrJZfiltered_callbacksZ removed_countrrNrremove_done_callbacks zFuture.remove_done_callbackcCs: |jtkrt|jd|||_t|_|dS)N: )r5r6r rCrFrBr8)rrGrrr set_results   zFuture.set_resultcCsl |jtkrt|jd|t|tr|}t|tur#td||_|j |_ t |_| d|_ dS)NrRzPStopIteration interacts badly with generators and cannot be raised into a FutureT)r5r6r rC isinstancetype StopIteration TypeErrorr% __traceback__rErBr8r$)rr"rrr set_exceptions    zFuture.set_exceptionccs.|s d|_|V|std|S)NTzawait wasn't used with future)rA_asyncio_future_blockingr-rGrrrr __await__szFuture.__await__r))'r __module__ __qualname__r6r5rFr%rrr/r1rZr$rrZ_future_repr_inforr r( classmethodr__class_getitem__propertyr*setterr.r4r:r8r@rArGr"rKrQrSrYr[__iter__rrrrrsD     rcCs&z|j}W|StyY|jSwr))r.AttributeErrorr)futr.rrr _get_loop)s recCs |rdS||dSr))r@rS)rdrGrrr_set_result_unless_cancelled5srfcCsTt|}|tjjurtj|jS|tjjurtj|jS|tjjur(tj|jS|Sr))rU concurrentfuturesr0r args TimeoutErrorrC)r&Z exc_classrrr_convert_future_exc<s      rkcCsV |r ||sdS|}|dur |t|dS|}||dSr))r@r:Zset_running_or_notify_cancelr"rYrkrGrS)rgsourcer"rGrrr_set_concurrent_future_stateHsrmcCsZ |rdS|r|dS|}|dur"|t|dS|}||dSr))r@r:r"rYrkrGrS)rldestr"rGrrr_copy_future_stateWs rocs tsttjjstdtsttjjstdtr'tndtr1tndddfdd}fdd}||dS) Nz(A future is required for source argumentz-A future is required for destination argumentcSs$t|r t||dSt||dSr))rrorm)r#otherrrr _set_state{sz!_chain_future.._set_statecs8|rdus urdSjdSdSr))r@r:call_soon_threadsafe) destination) dest_looprl source_looprr_call_check_cancels  z)_chain_future.._call_check_cancelcsXrdurrdSdusur|dSr#dS|dSr))r@Z is_closedrr)rl)rqrtrsrurr_call_set_statesz&_chain_future.._call_set_state)rrTrgrhrrWrerK)rlrsrvrwr)rqrtrsrlrur _chain_futureks    rxr cCs4 t|r|S|durt}|}t|||Sr))rrr Z create_futurerx)r#r Z new_futurerrrrs r)__all__Zconcurrent.futuresrgrHZloggingrtypesrrrr r rr6r7rBDEBUGZ STACK_DEBUGrZ _PyFuturererfrkrmrorxrZ_asyncio ImportErrorZ_CFuturerrrrsB         ,