/snap/core24/1643/usr/lib/python3.12/__pycache__
NameSizeModeActions
abc.cpython-312.pyc80550644editdlrm
aifc.cpython-312.pyc428630644editdlrm
antigravity.cpython-312.pyc10030644editdlrm
argparse.cpython-312.pyc1016820644editdlrm
ast.cpython-312.pyc1002790644editdlrm
base64.cpython-312.pyc244080644editdlrm
bdb.cpython-312.pyc373590644editdlrm
bisect.cpython-312.pyc36410644editdlrm
bz2.cpython-312.pyc151330644editdlrm
calendar.cpython-312.pyc396210644editdlrm
cgi.cpython-312.pyc402280644editdlrm
cgitb.cpython-312.pyc173320644editdlrm
chunk.cpython-312.pyc73100644editdlrm
cmd.cpython-312.pyc186190644editdlrm
code.cpython-312.pyc130510644editdlrm
codecs.cpython-312.pyc422740644editdlrm
codeop.cpython-312.pyc69160644editdlrm
colorsys.cpython-312.pyc46420644editdlrm
compileall.cpython-312.pyc204970644editdlrm
configparser.cpython-312.pyc635820644editdlrm
contextlib.cpython-312.pyc303760644editdlrm
contextvars.cpython-312.pyc2610644editdlrm
copy.cpython-312.pyc98000644editdlrm
copyreg.cpython-312.pyc74140644editdlrm
cProfile.cpython-312.pyc85930644editdlrm
crypt.cpython-312.pyc53610644editdlrm
csv.cpython-312.pyc177880644editdlrm
dataclasses.cpython-312.pyc446780644editdlrm
datetime.cpython-312.pyc4090644editdlrm
decimal.cpython-312.pyc4060644editdlrm
difflib.cpython-312.pyc754990644editdlrm
dis.cpython-312.pyc345600644editdlrm
doctest.cpython-312.pyc1056860644editdlrm
enum.cpython-312.pyc807080644editdlrm
filecmp.cpython-312.pyc146610644editdlrm
fileinput.cpython-312.pyc202800644editdlrm
fnmatch.cpython-312.pyc64950644editdlrm
fractions.cpython-312.pyc366670644editdlrm
ftplib.cpython-312.pyc426360644editdlrm
functools.cpython-312.pyc405060644editdlrm
genericpath.cpython-312.pyc68220644editdlrm
getopt.cpython-312.pyc83630644editdlrm
getpass.cpython-312.pyc68500644editdlrm
gettext.cpython-312.pyc221510644editdlrm
glob.cpython-312.pyc98410644editdlrm
graphlib.cpython-312.pyc103270644editdlrm
gzip.cpython-312.pyc320150644editdlrm
hashlib.cpython-312.pyc80870644editdlrm
heapq.cpython-312.pyc179560644editdlrm
hmac.cpython-312.pyc106980644editdlrm
imaplib.cpython-312.pyc628890644editdlrm
imghdr.cpython-312.pyc69440644editdlrm
inspect.cpython-312.pyc1334460644editdlrm
io.cpython-312.pyc41390644editdlrm
ipaddress.cpython-312.pyc907620644editdlrm
keyword.cpython-312.pyc10410644editdlrm
linecache.cpython-312.pyc64010644editdlrm
locale.cpython-312.pyc595360644editdlrm
lzma.cpython-312.pyc158550644editdlrm
mailbox.cpython-312.pyc1116180644editdlrm
mailcap.cpython-312.pyc111550644editdlrm
mimetypes.cpython-312.pyc241850644editdlrm
modulefinder.cpython-312.pyc279440644editdlrm
netrc.cpython-312.pyc89030644editdlrm
nntplib.cpython-312.pyc449390644editdlrm
ntpath.cpython-312.pyc260330644editdlrm
nturl2path.cpython-312.pyc30340644editdlrm
numbers.cpython-312.pyc139670644editdlrm
opcode.cpython-312.pyc147160644editdlrm
operator.cpython-312.pyc173640644editdlrm
optparse.cpython-312.pyc675460644editdlrm
os.cpython-312.pyc434740644editdlrm
pathlib.cpython-312.pyc620980644editdlrm
pdb.cpython-312.pyc849190644editdlrm
pickle.cpython-312.pyc761760644editdlrm
pickletools.cpython-312.pyc811280644editdlrm
pipes.cpython-312.pyc109140644editdlrm
pkgutil.cpython-312.pyc199590644editdlrm
platform.cpython-312.pyc416000644editdlrm
plistlib.cpython-312.pyc412860644editdlrm
poplib.cpython-312.pyc184460644editdlrm
posixpath.cpython-312.pyc182360644editdlrm
pprint.cpython-312.pyc294740644editdlrm
profile.cpython-312.pyc225400644editdlrm
pstats.cpython-312.pyc379220644editdlrm
pty.cpython-312.pyc73630644editdlrm
pyclbr.cpython-312.pyc148870644editdlrm
pydoc.cpython-312.pyc1429550644editdlrm
py_compile.cpython-312.pyc100780644editdlrm
queue.cpython-312.pyc147320644editdlrm
quopri.cpython-312.pyc93230644editdlrm
random.cpython-312.pyc331530644editdlrm
reprlib.cpython-312.pyc99090644editdlrm
rlcompleter.cpython-312.pyc82820644editdlrm
runpy.cpython-312.pyc143850644editdlrm
sched.cpython-312.pyc77350644editdlrm
secrets.cpython-312.pyc25560644editdlrm
selectors.cpython-312.pyc261280644editdlrm
shelve.cpython-312.pyc129130644editdlrm
shlex.cpython-312.pyc141620644editdlrm
shutil.cpython-312.pyc681130644editdlrm
signal.cpython-312.pyc44480644editdlrm
site.cpython-312.pyc290630644editdlrm
sitecustomize.cpython-312.pyc3000644editdlrm
smtplib.cpython-312.pyc482210644editdlrm
sndhdr.cpython-312.pyc107120644editdlrm
socket.cpython-312.pyc418170644editdlrm
socketserver.cpython-312.pyc342580644editdlrm
sre_compile.cpython-312.pyc6250644editdlrm
sre_constants.cpython-312.pyc6280644editdlrm
sre_parse.cpython-312.pyc6210644editdlrm
ssl.cpython-312.pyc630110644editdlrm
stat.cpython-312.pyc52310644editdlrm
statistics.cpython-312.pyc554230644editdlrm
string.cpython-312.pyc114820644editdlrm
stringprep.cpython-312.pyc251600644editdlrm
struct.cpython-312.pyc3250644editdlrm
subprocess.cpython-312.pyc791870644editdlrm
sunau.cpython-312.pyc254230644editdlrm
symtable.cpython-312.pyc187810644editdlrm
sysconfig.cpython-312.pyc300010644editdlrm
tabnanny.cpython-312.pyc121560644editdlrm
tarfile.cpython-312.pyc1233880644editdlrm
telnetlib.cpython-312.pyc284230644editdlrm
tempfile.cpython-312.pyc473390644editdlrm
textwrap.cpython-312.pyc182930644editdlrm
this.cpython-312.pyc14080644editdlrm
threading.cpython-312.pyc653460644editdlrm
timeit.cpython-312.pyc148640644editdlrm
token.cpython-312.pyc35570644editdlrm
tokenize.cpython-312.pyc247750644editdlrm
trace.cpython-312.pyc330240644editdlrm
traceback.cpython-312.pyc515230644editdlrm
tracemalloc.cpython-312.pyc269070644editdlrm
tty.cpython-312.pyc26680644editdlrm
turtle.cpython-312.pyc1846320644editdlrm
types.cpython-312.pyc149390644editdlrm
typing.cpython-312.pyc1418600644editdlrm
uu.cpython-312.pyc78160644editdlrm
uuid.cpython-312.pyc330070644editdlrm
warnings.cpython-312.pyc237920644editdlrm
wave.cpython-312.pyc320840644editdlrm
weakref.cpython-312.pyc313480644editdlrm
webbrowser.cpython-312.pyc263530644editdlrm
xdrlib.cpython-312.pyc118410644editdlrm
zipapp.cpython-312.pyc99770644editdlrm
zipimport.cpython-312.pyc244750644editdlrm
_aix_support.cpython-312.pyc47590644editdlrm
_collections_abc.cpython-312.pyc459120644editdlrm
_compat_pickle.cpython-312.pyc72210644editdlrm
_compression.cpython-312.pyc74970644editdlrm
_distutils_system_mod.cpython-312.pyc78180644editdlrm
_markupbase.cpython-312.pyc122790644editdlrm
_osx_support.cpython-312.pyc177310644editdlrm
_pydatetime.cpython-312.pyc941930644editdlrm
_pydecimal.cpython-312.pyc2278070644editdlrm
_pyio.cpython-312.pyc1102690644editdlrm
_pylong.cpython-312.pyc99830644editdlrm
_py_abc.cpython-312.pyc70540644editdlrm
_sitebuiltins.cpython-312.pyc47600644editdlrm
_strptime.cpython-312.pyc241160644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-312.pyc586510644editdlrm
_sysconfigdata__x86_64-linux-gnu.cpython-312.pyc586450644editdlrm
_threading_local.cpython-312.pyc82950644editdlrm
_weakrefset.cpython-312.pyc117510644editdlrm
__future__.cpython-312.pyc47040644editdlrm
__hello__.cpython-312.pyc8700644editdlrm
Edit: /snap/core24/1643/usr/lib/python3.12/__pycache__/contextlib.cpython-312.pyc (30376B)
Цik"dZddlZddlZddlZddlZddlmZddlmZddl m Z m Z gdZ GddejZGd d ejZGd d eZGd deZGddZGddeeeZGddeeeZdZdZGddeZGddeZGddeZGddeZGdd eZGd!d"eZGd#d$ZGd%d&eeZGd'd(eeZ Gd)d*eeZ!Gd+d,eZ"y)-z4Utilities for with-statement contexts. See PEP 343.N)dequewraps) MethodType GenericAlias)asynccontextmanagercontextmanagerclosing nullcontextAbstractContextManagerAbstractAsyncContextManagerAsyncExitStackContextDecorator ExitStackredirect_stdoutredirect_stderrsuppressaclosingchdircZeZdZdZeeZdZejdZ edZ y)r z,An abstract base class for context managers.c|Sz0Return `self` upon entering the runtime context.selfs !/usr/lib/python3.12/contextlib.py __enter__z AbstractContextManager.__enter__s cyz9Raise any exception triggered within the runtime context.Nrrexc_type exc_value tracebacks r__exit__zAbstractContextManager.__exit__srcL|turtj|ddStS)Nrr%)r _collections_abc_check_methodsNotImplementedclsCs r__subclasshook__z'AbstractContextManager.__subclasshook__ s& ( (#221k:N NrN) __name__ __module__ __qualname____doc__ classmethodr__class_getitem__rabcabstractmethodr%r-rrrr r sC6#L1 rr cZeZdZdZeeZdZejdZ edZ y)r z9An abstract base class for asynchronous context managers.cK|Swrrrs r __aenter__z&AbstractAsyncContextManager.__aenter__-s  c Kywr rr!s r __aexit__z%AbstractAsyncContextManager.__aexit__1s cL|turtj|ddStS)Nr8r;)r r'r(r)r*s rr-z,AbstractAsyncContextManager.__subclasshook__6s- - -#221l3>@ @rN) r.r/r0r1r2rr3r8r4r5r;r-rrrr r 'sCC#L1 rr ceZdZdZdZdZy)rzJA base class or mixin that enables context managers to work as decorators.c|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. rrs r _recreate_cmzContextDecorator._recreate_cmAs  rc2tfd}|S)Nc`j5|i|cdddS#1swYyxYwNr@argskwdsfuncrs rinnerz(ContextDecorator.__call__..innerNs1""$ +T*T* + + +s$-rrrHrIs`` r__call__zContextDecorator.__call__Ms t +  + rNr.r/r0r1r@rKrrrrr>sP rrceZdZdZdZdZy)AsyncContextDecoratorzPA base class or mixin that enables async context managers to work as decorators.c|S)z-Return a recreated instance of self. rrs rr@z"AsyncContextDecorator._recreate_cmXs  rc2tfd}|S)NcKj4d{|i|d{cdddd{S7%77 #1d{7swYyxYwwrCrDrEs rrIz-AsyncContextDecorator.__call__..inner^sV((* 1 1!40400 1 1 10 1 1 1 1sPA>A AAA AAAAAA A AArrJs`` rrKzAsyncContextDecorator.__call__]s t 1  1 rNrLrrrrNrNUsV rrNceZdZdZdZdZy)_GeneratorContextManagerBasezBShared functionality for @contextmanager and @asynccontextmanager.c||i||_|||c|_|_|_t |dd}|t |j }||_y)Nr1)genrHrFrGgetattrtyper1)rrHrFrGdocs r__init__z%_GeneratorContextManagerBase.__init__hsR&&*.d' 49didIt, ;t*$$C rcd|j|j|j|jSrC) __class__rHrFrGrs rr@z)_GeneratorContextManagerBase._recreate_cmvs#~~diiDII>>rN)r.r/r0r1rYr@rrrrSrSesL?rrSceZdZdZdZdZy)_GeneratorContextManagerz%Helper for @contextmanager decorator.cl|`|`|` t|jS#t $r t ddwxYwNzgenerator didn't yield)rFrGrHnextrU StopIteration RuntimeErrorrs rrz"_GeneratorContextManager.__enter__sD Ity$) C> ! C78d B Cs3cB|" t|j td||} |jj | td#|jjwxYw#t$rYywxYw#t$r}||ucYd}~Sd}~wt$r@}||ur ||_Yd}~yt|tr|j|ur ||_Yd}~yd}~wt$r}||ur||_Yd}~yd}~wwxYw#|jjwxYw)Ngenerator didn't stopFz#generator didn't stop after throw()) r`rUrbcloserathrow __traceback__ isinstance __cause__ BaseExceptionrtypvaluer$excs rr%z!_GeneratorContextManager.__exit__s ; %TXX%&'>??}# u%F !"#HIIWHHNN$ !  ! (%'' %<(1C% um4 .*3E'  e#$-!  siA5 AB DA25 BB C? BC? C?" C2%CC C?) C::C?DN)r.r/r0r1rr%rrrr]r]}s 0C7!rr]ceZdZdZdZdZy)_AsyncGeneratorContextManagerz*Helper for @asynccontextmanager decorator.cK|`|`|` t|jd{S7#t $r t ddwxYwwr_)rFrGrHanextrUStopAsyncIterationrbrs rr8z(_AsyncGeneratorContextManager.__aenter__sM Ity$) Ctxx( ((! C78d B Cs#A)')A)?AcK|* t|jd{ td||} |jj |d{ td7I#|jjd{7wxYw#t$rYywxYw7I#t$r}||ucYd}~Sd}~wt$rF}||ur ||_Yd}~yt|ttfr|j|ur ||_Yd}~yd}~wt$r}||ur||_Yd}~yd}~wwxYw#|jjd{7wxYww)NrdFz$generator didn't stop after athrow()) rrrUrbaclosersathrowrgrhrarirjrks rr;z'_AsyncGeneratorContextManager.__aexit__s@ ; ,DHHo%%,&'>??}# hhooe,,,F ("#IJJe&((//+++ &  -% (%'' %<(1C% u}6H&IJ .*3E'  e#$-! hhoo'''sEBA(B A* EB#B!B# D'(B*BB  BE BEBE!B## D$,B5/D$0E5 D$ D E+D<ED D$ DED$$E'E EE  EN)r.r/r0r1r8r;rrrrprps 5C7(rrpc.tfd}|S)a@contextmanager decorator. Typical usage: @contextmanager def some_generator(): try: yield finally: This makes this: with some_generator() as : equivalent to this: try: = finally: ct||SrC)r]rFrGrHs rhelperzcontextmanager..helper+s'dD99rrrHrzs` rr r s 6 4[:: Mrc.tfd}|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: ct||SrC)rprys rrzz#asynccontextmanager..helperLs,T4>>rrr{s` rrr1s 6 4[?? Mrc"eZdZdZdZdZdZy)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() c||_yrCthingrrs rrYzclosing.__init__c  rc|jSrCrrs rrzclosing.__enter__es zzrc8|jjyrC)rrerexc_infos rr%zclosing.__exit__gs rNr.r/r0r1rYrr%rrrr r Rs rr c"eZdZdZdZdZdZy)raAsync context manager for safely finalizing an asynchronously cleaned-up resource such as an async generator, calling its ``aclose()`` method. Code like this: async with aclosing(.fetch()) as agen: is equivalent to this: agen = .fetch() try: finally: await agen.aclose() c||_yrCrrs rrYzaclosing.__init__}rrc"K|jSwrCrrs rr8zaclosing.__aenter__szz cTK|jjd{y7wrC)rrurs rr;zaclosing.__aexit__sjj!!!s (&(N)r.r/r0r1rYr8r;rrrrrks""rrc"eZdZdZdZdZdZy)_RedirectStreamNc ||_g|_yrC) _new_target _old_targets)r new_targets rrYz_RedirectStream.__init__s%rc|jjtt|jt t|j|j |j SrC)rappendrVsys_streamsetattrrrs rrz_RedirectStream.__enter__sC   dll!;<T\\4#3#34rcjtt|j|jj yrC)rrrrpop)rexctypeexcinstexctbs rr%z_RedirectStream.__exit__s!T\\4#4#4#8#8#:;r)r.r/r0rrYrr%rrrrrsG  ._exit_wrappers d #d #rrrrFrGrs``` r_create_cb_wrapperz!_BaseExitStack._create_cb_wrappers $rc"t|_yrC)r_exit_callbacksrs rrYz_BaseExitStack.__init__s $wrcft|}|j|_t|_|S)z@Preserve the context stack by transferring it to a new instance.)rWrr)r new_stacks rpop_allz_BaseExitStack.pop_alls-DJL $($8$8 !$wrct|} |j}|j|||S#t$r|j |Y|SwxYw)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). )rWr% _push_cm_exitAttributeError_push_exit_callbackrexit_cb_type exit_methods rpushz_BaseExitStack.pushsZ: 2"++K   t[ 1  +  $ $T *  +s -A  A ct|} |j}|j}||}|j|||S#t$r(t d|j d|j ddwxYw)zEnters the supplied context manager. If successful, also pushes its __exit__ method as a callback and returns the result of the __enter__ method. '.z6' object does not support the context manager protocolN)rWrr%r TypeErrorr/r0rrrr+_enter_exitresults r enter_contextz_BaseExitStack.enter_contexts2h S]]FLLE 2u%  Sa/q1A1A0BCGHINR S Ss A1A2cb|j|g|i|}||_|j||S)z\Registers an arbitrary callback and arguments. Cannot suppress exceptions. )r __wrapped__rrrrFrGrs rrz_BaseExitStack.callbacks= 0//H4H4H %- !   /rcL|j||}|j|dy)z;Helper to correctly register callbacks to __exit__ methods.TN)rrrrrrs rrz_BaseExitStack._push_cm_exits$11"g>    5rc>|jj||fyrC)rr)rris_syncs rrz"_BaseExitStack._push_exit_callback$s ##Wh$78rN)T)r.r/r0r1 staticmethodrrrYrrrrrrrrrrrsN8'' '(& 6 9rrc"eZdZdZdZdZdZy)raContext 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. c|SrCrrs rrzExitStack.__enter__4s rc |ddu}tjd fd}d}d}|jr:|jj\}}|sJ ||rd}d}d}|jr:|r |dj} |d|xr|S#tj}||d|dd}|}YUxYw#t $r  |d_wxYw)NrcL |j}|||ury|ur ||_y|}#rC __context__new_excold_exc exc_context frame_excs r_fix_exception_contextz2ExitStack.__exit__.._fix_exception_context=B%11 &+*@)+#*G &rFTNNNrrrrrrj) r exc_details received_excrsuppressed_exc pending_raisercbnew_exc_details fixed_ctxrs @rr%zExitStack.__exit__7s"1~T1 LLN1%  *  ""..224KGRN7 .{#%)N$)M"4K""  (N66 !!n$.. ."%,,.&q'9;q>J $ - ! -6 A* s B 2B: )B7:Cc*|jdddyz%Immediately unwind the context stack.N)r%rs rrezExitStack.closehs dD$'rN)r.r/r0r1rr%rerrrrr)s//b(rrcZeZdZdZedZedZdZdZdZ dZ dZ d Z d Z y ) raAsync 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. ct||SrCrrs r_create_async_exit_wrapperz)AsyncExitStack._create_async_exit_wrapper{rrcfd}|S)Nc2Kid{y7wrCrrs rrz>AsyncExitStack._create_async_cb_wrapper.._exit_wrappersD)D) ) )s rrs``` r_create_async_cb_wrapperz'AsyncExitStack._create_async_cb_wrappers *rcKt|} |j}|j}||d{}|j|||S#t$r(t d|j d|j ddwxYw7Lw)zEnters the supplied async context manager. If successful, also pushes its __aexit__ method as a callback and returns the result of the __aenter__ method. rrzC' object does not support the asynchronous context manager protocolN)rWr8r;rrr/r0_push_async_cm_exitrs renter_async_contextz"AsyncExitStack.enter_async_contexts 2h '^^FMME bz!   U+  'a/q1A1A0BCTU"& ' '"s% BA BA?B 1A<<Bct|} |j}|j|||S#t$r|j |dY|SwxYw)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)rWr;rrrrs rpush_async_exitzAsyncExitStack.push_async_exits\: 8",,K  $ $T; 7  2  $ $T5 1  2s -A  A cd|j|g|i|}||_|j|d|S)zfRegisters an arbitrary coroutine function and arguments. Cannot suppress exceptions. F)rrrrs rpush_async_callbackz"AsyncExitStack.push_async_callbacks? 655hNNN %- !   6rcFK|jdddd{y7wr)r;rs rruzAsyncExitStack.aclosesnnT4...s !!cL|j||}|j|dy)zLHelper to correctly register coroutine function to __aexit__ method.FN)rrrs rrz"AsyncExitStack._push_async_cm_exits&77GD    6rcK|SwrCrrs rr8zAsyncExitStack.__aenter__s  r9c K|ddu}tjd fd}d}d}|jrH|jj\}} |r||}n ||d{}|rd}d}d}|jrH|r |dj} |d|xr|S76#tj} || d|dd}| }YWxYw#t $r  |d_wxYww)NrrcL |j}|||ury|ur ||_y|}#rCrrs rrz8AsyncExitStack.__aexit__.._fix_exception_contextrrFTrr) rrrrrrrr cb_suppressrrrs @rr;zAsyncExitStack.__aexit__s"1~T1 LLN1%  *  ""..224KGR ."$k"2K(*K(8"8K%)N$)M"4K""$  (N66 !!n$..+#9  ."%,,.&q'9;q>J $ - ! -6 A* sNAC$B%B& B2 C$?C$C C$B)C C$ C!!C$N)r.r/r0r1rrrrrrrurr8r;rrrrrnsR '' $$ /7 3/rrc0eZdZdZddZdZdZdZdZy) 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 Nc||_yrC enter_result)rrs rrYznullcontext.__init__s (rc|jSrCr rs rrznullcontext.__enter__s   rcyrCrrexcinfos rr%znullcontext.__exit__ rrc"K|jSwrCr rs rr8znullcontext.__aenter__ s   rc KywrCrrs rr;znullcontext.__aexit__s  r<rC) r.r/r0r1rYrr%r8r;rrrr r s )! ! rr c"eZdZdZdZdZdZy)rzHNon thread-safe context manager to change the current working directory.c ||_g|_yrC)path_old_cwd)rrs rrYzchdir.__init__s  rc|jjtjtj|j yrC)rrosgetcwdrrrs rrzchdir.__enter__s* RYY[) rc^tj|jjyrC)rrrrrs rr%zchdir.__exit__s ""$%rNrrrrrrsR&rr)#r1r4rrr' collectionsr functoolsrtypesrr__all__ABCr r objectrrNrSr]rpr rr rrrrrrrrr rrrrr#s9: * SWW,#''.v. F  ??0G! G!RG( G(TBB$2"*"4<,<$ o  o $%$NQ9Q9jA( 6A(JH/^%@H/V (*E 6 & " &r