选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
a ´i0`ã@sZdZddlZddlZddlZddlmZddlmZddlm Z m Z gd¢Z Gdd„dej ƒZ Gd d „d ej ƒZGd d „d eƒZGd d„dƒZGdd„dee eƒZGdd„deeƒZdd„Zdd„ZGdd„de ƒZGdd„de ƒZGdd„deƒZGdd„deƒZGdd „d e ƒZGd!d"„d"ƒZGd#d$„d$ee ƒZGd%d&„d&eeƒZGd'd(„d(e ƒZdS))z4Utilities for with-statement contexts. See PEP 343.éN)Údeque©Úwraps)Ú MethodTypeÚ GenericAlias) ÚasynccontextmanagerÚcontextmanagerÚclosingÚ nullcontextÚAbstractContextManagerÚAbstractAsyncContextManagerÚAsyncExitStackÚContextDecoratorÚ ExitStackÚredirect_stdoutÚredirect_stderrÚsuppressc@s:eZdZdZeeƒZdd„Zej dd„ƒZ edd„ƒZ dS) r z,An abstract base class for context managers.cCs|S©z0Return `self` upon entering the runtime context.©©Úselfrrú"/usr/lib64/python3.9/contextlib.pyÚ __enter__sz AbstractContextManager.__enter__cCsdS©z9Raise any exception triggered within the runtime context.Nr©rÚexc_typeÚ exc_valueÚ tracebackrrrÚ__exit__szAbstractContextManager.__exit__cCs|turt |dd¡StS)Nrr)r Ú_collections_abcÚ_check_methodsÚNotImplemented©ÚclsÚCrrrÚ__subclasshook__sz'AbstractContextManager.__subclasshook__N) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú classmethodrÚ__class_getitem__rÚabcÚabstractmethodrr%rrrrr s r c@s:eZdZdZeeƒZdd„Zej dd„ƒZ edd„ƒZ dS) r z9An abstract base class for asynchronous context managers.cÃs|SrrrrrrÚ __aenter__+sz&AbstractAsyncContextManager.__aenter__cÃsdSrrrrrrÚ __aexit__/sz%AbstractAsyncContextManager.__aexit__cCs|turt |dd¡StS)Nr.r/)r rr r!r"rrrr%4s ÿz,AbstractAsyncContextManager.__subclasshook__N) r&r'r(r)r*rr+r.r,r-r/r%rrrrr %s r c@s eZdZdZdd„Zdd„ZdS)rzJA base class or mixin that enables context managers to work as decorators.cCs|S)a6Return a recreated instance of self. Allows an otherwise one-shot context manager like _GeneratorContextManager to support use as a decorator via implicit recreation. This is a private interface just for _GeneratorContextManager. See issue #11647 for details. rrrrrÚ _recreate_cm?s zContextDecorator._recreate_cmcstˆƒ‡‡fdd„ƒ}|S)Ncs:ˆ ¡�ˆ|i|¤ŽWdƒS1s,0YdS©N)r0©ÚargsÚkwds©ÚfuncrrrÚinnerLs z(ContextDecorator.__call__..innerr)rr6r7rr5rÚ__call__KszContextDecorator.__call__N)r&r'r(r)r0r8rrrrr<s rc@s eZdZdZdd„Zdd„ZdS)Ú_GeneratorContextManagerBasezBShared functionality for @contextmanager and @asynccontextmanager.cCsN||i|¤Ž|_||||_|_|_t|ddƒ}|durDt|ƒj}||_dS)Nr))Úgenr6r3r4ÚgetattrÚtyper))rr6r3r4ÚdocrrrÚ__init__Vs   z%_GeneratorContextManagerBase.__init__cCs| |j|j|j¡Sr1)Ú __class__r6r3r4rrrrr0dsz)_GeneratorContextManagerBase._recreate_cmN)r&r'r(r)r>r0rrrrr9Ssr9c@s eZdZdZdd„Zdd„ZdS)Ú_GeneratorContextManagerz%Helper for @contextmanager decorator.cCs:|`|`|`z t|jƒWSty4tdƒd‚Yn0dS©Nzgenerator didn't yield)r3r4r6Únextr:Ú StopIterationÚ RuntimeErrorrrrrrrs    z"_GeneratorContextManager.__enter__c Cs |dur6zt|jƒWnty*YdS0tdƒ‚næ|durD|ƒ}z|j |||¡Wnºty„}z||uWYd}~Sd}~0tyà}zF||ur¨WYd}~dSt|tƒrÊ|j|urÊWYd}~dS‚WYd}~nz|j ¡IdHWnty0YdS0tdƒ‚�nò|durL|ƒ}z|j |||¡IdHWnÀty’}z||uWYd}~Sd}~0t�yô}zJ||ur¸WYd}~dSt|ttfƒrÞ|j|urÞWYd}~dS‚WYd}~n): try: yield finally: This makes this: with some_generator() as : equivalent to this: try: = finally: cs tˆ||ƒSr1)r@r2©r6rrÚhelperszcontextmanager..helperr©r6rSrrRrrêsrcstˆƒ‡fdd„ƒ}|S)aý@asynccontextmanager decorator. Typical usage: @asynccontextmanager async def some_async_generator(): try: yield finally: This makes this: async with some_async_generator() as : equivalent to this: try: = finally: cs tˆ||ƒSr1)rNr2rRrrrS&sz#asynccontextmanager..helperrrTrrRrr src@s(eZdZdZdd„Zdd„Zdd„ZdS) r a2Context to automatically close something at the end of a block. Code like this: with closing(.open()) as f: is equivalent to this: f = .open() try: finally: f.close() cCs ||_dSr1©Úthing)rrVrrrr>=szclosing.__init__cCs|jSr1rUrrrrr?szclosing.__enter__cGs|j ¡dSr1)rVÚclose)rÚexc_inforrrrAszclosing.__exit__N©r&r'r(r)r>rrrrrrr ,sr c@s(eZdZdZdd„Zdd„Zdd„ZdS)Ú_RedirectStreamNcCs||_g|_dSr1)Ú _new_targetÚ _old_targets)rÚ new_targetrrrr>Isz_RedirectStream.__init__cCs*|j tt|jƒ¡tt|j|jƒ|jSr1)r\Úappendr;ÚsysÚ_streamÚsetattrr[rrrrrNsz_RedirectStream.__enter__cCstt|j|j ¡ƒdSr1)rar_r`r\Úpop©rÚexctypeÚexcinstÚexctbrrrrSsz_RedirectStream.__exit__)r&r'r(r`r>rrrrrrrZEsrZc@seZdZdZdZdS)raAContext manager for temporarily redirecting stdout to another file. # How to send help() to stderr with redirect_stdout(sys.stderr): help(dir) # How to write help() to a file with open('help.txt', 'w') as f: with redirect_stdout(f): help(pow) ÚstdoutN©r&r'r(r)r`rrrrrWs rc@seZdZdZdZdS)rzCContext manager for temporarily redirecting stderr to another file.ÚstderrNrhrrrrrgsrc@s(eZdZdZdd„Zdd„Zdd„ZdS) ra?Context manager to suppress specified exceptions After the exception is suppressed, execution proceeds with the next statement following the with statement. with suppress(FileNotFoundError): os.remove(somefile) # Execution still resumes here if the file was already removed cGs ||_dSr1)Ú _exceptions)rÚ exceptionsrrrr>xszsuppress.__init__cCsdSr1rrrrrr{szsuppress.__enter__cCs|duot||jƒSr1)Ú issubclassrjrcrrrr~s zsuppress.__exit__NrYrrrrrms rc@sbeZdZdZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z ddd„Z dS)Ú_BaseExitStackz.A base class for ExitStack and AsyncExitStack.cCs t||ƒSr1©r©ÚcmÚcm_exitrrrÚ_create_exit_wrapperŽsz#_BaseExitStack._create_exit_wrappercs‡‡‡fdd„}|S)Ncsˆˆiˆ¤ŽdSr1r©rrMÚtb©r3Úcallbackr4rrÚ _exit_wrapper”sz8_BaseExitStack._create_cb_wrapper.._exit_wrapperr©rvr3r4rwrrurÚ_create_cb_wrapper’sz!_BaseExitStack._create_cb_wrappercCs tƒ|_dSr1)rÚ_exit_callbacksrrrrr>˜sz_BaseExitStack.__init__cCst|ƒƒ}|j|_tƒ|_|S)z@Preserve the context stack by transferring it to a new instance.)r<rzr)rÚ new_stackrrrÚpop_all›s z_BaseExitStack.pop_allcCs@t|ƒ}z |j}Wnty.| |¡Yn0| ||¡|S)aRegisters a callback with the standard __exit__ method signature. Can suppress exceptions the same way __exit__ method can. Also accepts any object with an __exit__ method (registering a call to the method instead of the object itself). )r<rÚAttributeErrorÚ_push_exit_callbackÚ _push_cm_exit©rÚexitÚ_cb_typeÚ exit_methodrrrÚpush¢s    z_BaseExitStack.pushcCs(t|ƒ}|j}| |¡}| ||¡|S)z«Enters the supplied context manager. If successful, also pushes its __exit__ method as a callback and returns the result of the __enter__ method. )r<rrr©rrpÚ_cm_typeÚ_exitÚresultrrrÚ enter_context¶s   z_BaseExitStack.enter_contextcOs,|j|g|¢Ri|¤Ž}||_| |¡|S)z\Registers an arbitrary callback and arguments. Cannot suppress exceptions. )ryÚ __wrapped__r~©rrvr3r4rwrrrrvÄs z_BaseExitStack.callbackcCs| ||¡}| |d¡dS)z;Helper to correctly register callbacks to __exit__ methods.TN)rrr~©rrprqrwrrrrÑs z_BaseExitStack._push_cm_exitTcCs|j ||f¡dSr1)rzr^)rrvÚis_syncrrrr~Ösz"_BaseExitStack._push_exit_callbackN)T)r&r'r(r)Ú staticmethodrrryr>r|r„r‰rvrr~rrrrrm‹s   rmc@s(eZdZdZdd„Zdd„Zdd„ZdS) ra‹Context manager for dynamic management of a stack of exit callbacks. For example: with ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in filenames] # All opened files will automatically be closed at the end of # the with statement, even if attempts to open files later # in the list raise an exception. cCs|Sr1rrrrrræszExitStack.__enter__c sÌ|ddu}t ¡d‰‡fdd„}d}d}|jrŠ|j ¡\}}z||ŽrVd}d}d}Wq,t ¡}||d|dƒd}|}Yq,0q,|rÄz|dj} |d‚WntyÂ| |d_‚Yn0|oÊ|S)Nrécs4|j}|dus||urdS|ˆur$q*|}q||_dSr1©Ú __context__©Únew_excÚold_excÚ exc_context©Ú frame_excrrÚ_fix_exception_contextïsz2ExitStack.__exit__.._fix_exception_contextFT©NNN©r_rXrzrbr‘rI) rÚ exc_detailsÚ received_excr˜Úsuppressed_excÚ pending_raiser�ÚcbÚnew_exc_detailsÚ fixed_ctxrr–rrés2        zExitStack.__exit__cCs| ddd¡dS©z%Immediately unwind the context stack.N)rrrrrrWszExitStack.closeN)r&r'r(r)rrrWrrrrrÛs 1rc@s`eZdZdZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dS)r a×Async context manager for dynamic management of a stack of exit callbacks. For example: async with AsyncExitStack() as stack: connections = [await stack.enter_async_context(get_connection()) for i in range(5)] # All opened connections will automatically be released at the # end of the async with statement, even if attempts to open a # connection later in the list raise an exception. cCs t||ƒSr1rnrorrrÚ_create_async_exit_wrapper-sz)AsyncExitStack._create_async_exit_wrappercs‡‡‡fdd„}|S)Nc“sˆˆiˆ¤ŽIdHdSr1rrsrurrrw3sz>AsyncExitStack._create_async_cb_wrapper.._exit_wrapperrrxrrurÚ_create_async_cb_wrapper1sz'AsyncExitStack._create_async_cb_wrappercÃs.t|ƒ}|j}| |¡IdH}| ||¡|S)z³Enters the supplied async context manager. If successful, also pushes its __aexit__ method as a callback and returns the result of the __aenter__ method. N)r<r/r.Ú_push_async_cm_exitr…rrrÚenter_async_context7s  z"AsyncExitStack.enter_async_contextcCsBt|ƒ}z |j}Wnty0| |d¡Yn0| ||¡|S)a#Registers a coroutine function with the standard __aexit__ method signature. Can suppress exceptions the same way __aexit__ method can. Also accepts any object with an __aexit__ method (registering a call to the method instead of the object itself). F)r<r/r}r~r¥r€rrrÚpush_async_exitCs   zAsyncExitStack.push_async_exitcOs.|j|g|¢Ri|¤Ž}||_| |d¡|S)zfRegisters an arbitrary coroutine function and arguments. Cannot suppress exceptions. F)r¤rŠr~r‹rrrÚpush_async_callbackUs z"AsyncExitStack.push_async_callbackcÃs| ddd¡IdHdSr¢)r/rrrrÚaclosebszAsyncExitStack.aclosecCs| ||¡}| |d¡dS)zLHelper to correctly register coroutine function to __aexit__ method.FN)r£r~rŒrrrr¥fs z"AsyncExitStack._push_async_cm_exitcÃs|Sr1rrrrrr.lszAsyncExitStack.__aenter__c ‡sä|ddu}t ¡d‰‡fdd„}d}d}|jr¢|j ¡\}}z0|rP||Ž}n||ŽIdH}|rnd}d}d}Wq,t ¡} || d|dƒd}| }Yq,0q,|rÜz|dj} |d‚WntyÚ| |d_‚Yn0|oâ|S)Nrr�cs4|j}|dus||urdS|ˆur$q*|}q||_dSr1r�r’r–rrr˜usz8AsyncExitStack.__aexit__.._fix_exception_contextFTr™rš) rr›rœr˜r�ržr�rŸÚ cb_suppressr r¡rr–rr/os8         zAsyncExitStack.__aexit__N)r&r'r(r)rŽr£r¤r¦r§r¨r©r¥r.r/rrrrr s     r c@s*eZdZdZd dd„Zdd„Zdd„ZdS) r aOContext manager that does no additional processing. Used as a stand-in for a normal context manager, when a particular block of code is only sometimes used with a normal context manager: cm = optional_cm if condition else nullcontext() with cm: # Perform operation, using optional_cm if condition is True NcCs ||_dSr1©Ú enter_result)rr¬rrrr>°sznullcontext.__init__cCs|jSr1r«rrrrr³sznullcontext.__enter__cGsdSr1r)rÚexcinforrrr¶sznullcontext.__exit__)NrYrrrrr ¥s r )r)r,r_rÚ collectionsrÚ functoolsrÚtypesrrÚ__all__ÚABCr r Úobjectrr9r@rNrrr rZrrrrmrr r rrrrÚs>   ýA ÿ>!!PE