/opt/alt/python39/lib64/python3.9/__pycache__
NameSizeModeActions
abc.cpython-39.opt-1.pyc57880644editdlrm
abc.cpython-39.opt-2.pyc32290644editdlrm
abc.cpython-39.pyc57880644editdlrm
aifc.cpython-39.opt-1.pyc252790644editdlrm
aifc.cpython-39.opt-2.pyc200720644editdlrm
aifc.cpython-39.pyc252790644editdlrm
antigravity.cpython-39.opt-1.pyc8320644editdlrm
antigravity.cpython-39.opt-2.pyc6880644editdlrm
antigravity.cpython-39.pyc8320644editdlrm
argparse.cpython-39.opt-1.pyc635560644editdlrm
argparse.cpython-39.opt-2.pyc541920644editdlrm
argparse.cpython-39.pyc636670644editdlrm
ast.cpython-39.opt-1.pyc523450644editdlrm
ast.cpython-39.opt-2.pyc438000644editdlrm
ast.cpython-39.pyc523960644editdlrm
asynchat.cpython-39.opt-1.pyc68350644editdlrm
asynchat.cpython-39.opt-2.pyc54600644editdlrm
asynchat.cpython-39.pyc68350644editdlrm
asyncore.cpython-39.opt-1.pyc160490644editdlrm
asyncore.cpython-39.opt-2.pyc148450644editdlrm
asyncore.cpython-39.pyc160490644editdlrm
base64.cpython-39.opt-1.pyc163360644editdlrm
base64.cpython-39.opt-2.pyc108160644editdlrm
base64.cpython-39.pyc164680644editdlrm
bdb.cpython-39.opt-1.pyc245530644editdlrm
bdb.cpython-39.opt-2.pyc155160644editdlrm
bdb.cpython-39.pyc245530644editdlrm
binhex.cpython-39.opt-1.pyc129780644editdlrm
binhex.cpython-39.opt-2.pyc124440644editdlrm
binhex.cpython-39.pyc129780644editdlrm
bisect.cpython-39.opt-1.pyc23630644editdlrm
bisect.cpython-39.opt-2.pyc10510644editdlrm
bisect.cpython-39.pyc23630644editdlrm
bz2.cpython-39.opt-1.pyc115580644editdlrm
bz2.cpython-39.opt-2.pyc65420644editdlrm
bz2.cpython-39.pyc115580644editdlrm
calendar.cpython-39.opt-1.pyc270440644editdlrm
calendar.cpython-39.opt-2.pyc224520644editdlrm
calendar.cpython-39.pyc270440644editdlrm
cgi.cpython-39.opt-1.pyc264950644editdlrm
cgi.cpython-39.opt-2.pyc180690644editdlrm
cgi.cpython-39.pyc264950644editdlrm
cgitb.cpython-39.opt-1.pyc101990644editdlrm
cgitb.cpython-39.opt-2.pyc86000644editdlrm
cgitb.cpython-39.pyc101990644editdlrm
chunk.cpython-39.opt-1.pyc48540644editdlrm
chunk.cpython-39.opt-2.pyc27100644editdlrm
chunk.cpython-39.pyc48540644editdlrm
cmd.cpython-39.opt-1.pyc126890644editdlrm
cmd.cpython-39.opt-2.pyc72640644editdlrm
cmd.cpython-39.pyc126890644editdlrm
code.cpython-39.opt-1.pyc99290644editdlrm
code.cpython-39.opt-2.pyc46580644editdlrm
code.cpython-39.pyc99290644editdlrm
codecs.cpython-39.opt-1.pyc339010644editdlrm
codecs.cpython-39.opt-2.pyc183290644editdlrm
codecs.cpython-39.pyc339010644editdlrm
codeop.cpython-39.opt-1.pyc64710644editdlrm
codeop.cpython-39.opt-2.pyc24110644editdlrm
codeop.cpython-39.pyc64710644editdlrm
colorsys.cpython-39.opt-1.pyc32730644editdlrm
colorsys.cpython-39.opt-2.pyc26670644editdlrm
colorsys.cpython-39.pyc32730644editdlrm
compileall.cpython-39.opt-1.pyc126020644editdlrm
compileall.cpython-39.opt-2.pyc93430644editdlrm
compileall.cpython-39.pyc126020644editdlrm
configparser.cpython-39.opt-1.pyc458820644editdlrm
configparser.cpython-39.opt-2.pyc307420644editdlrm
configparser.cpython-39.pyc458820644editdlrm
contextlib.cpython-39.opt-1.pyc195410644editdlrm
contextlib.cpython-39.opt-2.pyc139560644editdlrm
contextlib.cpython-39.pyc195510644editdlrm
contextvars.cpython-39.opt-1.pyc2580644editdlrm
contextvars.cpython-39.opt-2.pyc2580644editdlrm
contextvars.cpython-39.pyc2580644editdlrm
copy.cpython-39.opt-1.pyc69760644editdlrm
copy.cpython-39.opt-2.pyc46730644editdlrm
copy.cpython-39.pyc69760644editdlrm
copyreg.cpython-39.opt-1.pyc44240644editdlrm
copyreg.cpython-39.opt-2.pyc36220644editdlrm
copyreg.cpython-39.pyc44430644editdlrm
cProfile.cpython-39.opt-1.pyc51290644editdlrm
cProfile.cpython-39.opt-2.pyc46680644editdlrm
cProfile.cpython-39.pyc51290644editdlrm
crypt.cpython-39.opt-1.pyc35260644editdlrm
crypt.cpython-39.opt-2.pyc28640644editdlrm
crypt.cpython-39.pyc35260644editdlrm
csv.cpython-39.opt-1.pyc118620644editdlrm
csv.cpython-39.opt-2.pyc98210644editdlrm
csv.cpython-39.pyc118620644editdlrm
dataclasses.cpython-39.opt-1.pyc232300644editdlrm
dataclasses.cpython-39.opt-2.pyc197910644editdlrm
dataclasses.cpython-39.pyc232300644editdlrm
datetime.cpython-39.opt-1.pyc569870644editdlrm
datetime.cpython-39.opt-2.pyc485430644editdlrm
datetime.cpython-39.pyc581280644editdlrm
decimal.cpython-39.opt-1.pyc3720644editdlrm
decimal.cpython-39.opt-2.pyc3720644editdlrm
decimal.cpython-39.pyc3720644editdlrm
difflib.cpython-39.opt-1.pyc585710644editdlrm
difflib.cpython-39.opt-2.pyc250370644editdlrm
difflib.cpython-39.pyc585930644editdlrm
dis.cpython-39.opt-1.pyc158330644editdlrm
dis.cpython-39.opt-2.pyc120260644editdlrm
dis.cpython-39.pyc158330644editdlrm
doctest.cpython-39.opt-1.pyc758450644editdlrm
doctest.cpython-39.opt-2.pyc405390644editdlrm
doctest.cpython-39.pyc760520644editdlrm
enum.cpython-39.opt-1.pyc260330644editdlrm
enum.cpython-39.opt-2.pyc211110644editdlrm
enum.cpython-39.pyc260330644editdlrm
filecmp.cpython-39.opt-1.pyc86350644editdlrm
filecmp.cpython-39.opt-2.pyc60970644editdlrm
filecmp.cpython-39.pyc86350644editdlrm
fileinput.cpython-39.opt-1.pyc138030644editdlrm
fileinput.cpython-39.opt-2.pyc81950644editdlrm
fileinput.cpython-39.pyc138030644editdlrm
fnmatch.cpython-39.opt-1.pyc38830644editdlrm
fnmatch.cpython-39.opt-2.pyc26750644editdlrm
fnmatch.cpython-39.pyc39550644editdlrm
formatter.cpython-39.opt-1.pyc175520644editdlrm
formatter.cpython-39.opt-2.pyc151120644editdlrm
formatter.cpython-39.pyc175520644editdlrm
fractions.cpython-39.opt-1.pyc180620644editdlrm
fractions.cpython-39.opt-2.pyc108620644editdlrm
fractions.cpython-39.pyc180620644editdlrm
ftplib.cpython-39.opt-1.pyc287070644editdlrm
ftplib.cpython-39.opt-2.pyc185630644editdlrm
ftplib.cpython-39.pyc287070644editdlrm
functools.cpython-39.opt-1.pyc287360644editdlrm
functools.cpython-39.opt-2.pyc220150644editdlrm
functools.cpython-39.pyc287360644editdlrm
genericpath.cpython-39.opt-1.pyc45540644editdlrm
genericpath.cpython-39.opt-2.pyc33710644editdlrm
genericpath.cpython-39.pyc45540644editdlrm
getopt.cpython-39.opt-1.pyc62550644editdlrm
getopt.cpython-39.opt-2.pyc37010644editdlrm
getopt.cpython-39.pyc62730644editdlrm
getpass.cpython-39.opt-1.pyc42130644editdlrm
getpass.cpython-39.opt-2.pyc30270644editdlrm
getpass.cpython-39.pyc42130644editdlrm
gettext.cpython-39.opt-1.pyc180860644editdlrm
gettext.cpython-39.opt-2.pyc173950644editdlrm
gettext.cpython-39.pyc180860644editdlrm
glob.cpython-39.opt-1.pyc45180644editdlrm
glob.cpython-39.opt-2.pyc36580644editdlrm
glob.cpython-39.pyc45570644editdlrm
graphlib.cpython-39.opt-1.pyc75350644editdlrm
graphlib.cpython-39.opt-2.pyc40990644editdlrm
graphlib.cpython-39.pyc75810644editdlrm
gzip.cpython-39.opt-1.pyc185070644editdlrm
gzip.cpython-39.opt-2.pyc146400644editdlrm
gzip.cpython-39.pyc185070644editdlrm
hashlib.cpython-39.opt-1.pyc67040644editdlrm
hashlib.cpython-39.opt-2.pyc61360644editdlrm
hashlib.cpython-39.pyc67040644editdlrm
heapq.cpython-39.opt-1.pyc140530644editdlrm
heapq.cpython-39.opt-2.pyc110370644editdlrm
heapq.cpython-39.pyc140530644editdlrm
hmac.cpython-39.opt-1.pyc68130644editdlrm
hmac.cpython-39.opt-2.pyc42960644editdlrm
hmac.cpython-39.pyc68130644editdlrm
imaplib.cpython-39.opt-1.pyc403980644editdlrm
imaplib.cpython-39.opt-2.pyc277150644editdlrm
imaplib.cpython-39.pyc425790644editdlrm
imghdr.cpython-39.opt-1.pyc41530644editdlrm
imghdr.cpython-39.opt-2.pyc38380644editdlrm
imghdr.cpython-39.pyc41530644editdlrm
imp.cpython-39.opt-1.pyc98640644editdlrm
imp.cpython-39.opt-2.pyc74990644editdlrm
imp.cpython-39.pyc98640644editdlrm
inspect.cpython-39.opt-1.pyc812430644editdlrm
inspect.cpython-39.opt-2.pyc561150644editdlrm
inspect.cpython-39.pyc814850644editdlrm
io.cpython-39.opt-1.pyc34210644editdlrm
io.cpython-39.opt-2.pyc19320644editdlrm
io.cpython-39.pyc34210644editdlrm
ipaddress.cpython-39.opt-1.pyc656950644editdlrm
ipaddress.cpython-39.opt-2.pyc397150644editdlrm
ipaddress.cpython-39.pyc656950644editdlrm
keyword.cpython-39.opt-1.pyc9290644editdlrm
keyword.cpython-39.opt-2.pyc5250644editdlrm
keyword.cpython-39.pyc9290644editdlrm
linecache.cpython-39.opt-1.pyc40410644editdlrm
linecache.cpython-39.opt-2.pyc28080644editdlrm
linecache.cpython-39.pyc40410644editdlrm
locale.cpython-39.opt-1.pyc347090644editdlrm
locale.cpython-39.opt-2.pyc300910644editdlrm
locale.cpython-39.pyc347090644editdlrm
lzma.cpython-39.opt-1.pyc121070644editdlrm
lzma.cpython-39.opt-2.pyc59090644editdlrm
lzma.cpython-39.pyc121070644editdlrm
mailbox.cpython-39.opt-1.pyc605590644editdlrm
mailbox.cpython-39.opt-2.pyc539550644editdlrm
mailbox.cpython-39.pyc606130644editdlrm
mailcap.cpython-39.opt-1.pyc72520644editdlrm
mailcap.cpython-39.opt-2.pyc56820644editdlrm
mailcap.cpython-39.pyc72520644editdlrm
mimetypes.cpython-39.opt-1.pyc160280644editdlrm
mimetypes.cpython-39.opt-2.pyc100130644editdlrm
mimetypes.cpython-39.pyc160280644editdlrm
modulefinder.cpython-39.opt-1.pyc160950644editdlrm
modulefinder.cpython-39.opt-2.pyc151860644editdlrm
modulefinder.cpython-39.pyc161410644editdlrm
netrc.cpython-39.opt-1.pyc37960644editdlrm
netrc.cpython-39.opt-2.pyc35580644editdlrm
netrc.cpython-39.pyc37960644editdlrm
nntplib.cpython-39.opt-1.pyc317760644editdlrm
nntplib.cpython-39.opt-2.pyc201760644editdlrm
nntplib.cpython-39.pyc317760644editdlrm
ntpath.cpython-39.opt-1.pyc148250644editdlrm
ntpath.cpython-39.opt-2.pyc127740644editdlrm
ntpath.cpython-39.pyc148250644editdlrm
nturl2path.cpython-39.opt-1.pyc17590644editdlrm
nturl2path.cpython-39.opt-2.pyc13400644editdlrm
nturl2path.cpython-39.pyc17590644editdlrm
numbers.cpython-39.opt-1.pyc123320644editdlrm
numbers.cpython-39.opt-2.pyc83750644editdlrm
numbers.cpython-39.pyc123320644editdlrm
opcode.cpython-39.opt-1.pyc52360644editdlrm
opcode.cpython-39.opt-2.pyc50950644editdlrm
opcode.cpython-39.pyc52360644editdlrm
operator.cpython-39.opt-1.pyc137970644editdlrm
operator.cpython-39.opt-2.pyc114080644editdlrm
operator.cpython-39.pyc137970644editdlrm
optparse.cpython-39.opt-1.pyc479010644editdlrm
optparse.cpython-39.opt-2.pyc355860644editdlrm
optparse.cpython-39.pyc479560644editdlrm
os.cpython-39.opt-1.pyc316430644editdlrm
os.cpython-39.opt-2.pyc194530644editdlrm
os.cpython-39.pyc316590644editdlrm
pathlib.cpython-39.opt-1.pyc435410644editdlrm
pathlib.cpython-39.opt-2.pyc346810644editdlrm
pathlib.cpython-39.pyc435410644editdlrm
pdb.cpython-39.opt-1.pyc475600644editdlrm
pdb.cpython-39.opt-2.pyc334890644editdlrm
pdb.cpython-39.pyc475990644editdlrm
pickle.cpython-39.opt-1.pyc470250644editdlrm
pickle.cpython-39.opt-2.pyc411550644editdlrm
pickle.cpython-39.pyc471110644editdlrm
pickletools.cpython-39.opt-1.pyc663060644editdlrm
pickletools.cpython-39.opt-2.pyc572130644editdlrm
pickletools.cpython-39.pyc671200644editdlrm
pipes.cpython-39.opt-1.pyc78080644editdlrm
pipes.cpython-39.opt-2.pyc49410644editdlrm
pipes.cpython-39.pyc78080644editdlrm
pkgutil.cpython-39.opt-1.pyc185790644editdlrm
pkgutil.cpython-39.opt-2.pyc118800644editdlrm
pkgutil.cpython-39.pyc185790644editdlrm
platform.cpython-39.opt-1.pyc264290644editdlrm
platform.cpython-39.opt-2.pyc183610644editdlrm
platform.cpython-39.pyc264290644editdlrm
plistlib.cpython-39.opt-1.pyc235090644editdlrm
plistlib.cpython-39.opt-2.pyc211500644editdlrm
plistlib.cpython-39.pyc235600644editdlrm
poplib.cpython-39.opt-1.pyc136700644editdlrm
poplib.cpython-39.opt-2.pyc87400644editdlrm
poplib.cpython-39.pyc136700644editdlrm
posixpath.cpython-39.opt-1.pyc106220644editdlrm
posixpath.cpython-39.opt-2.pyc89070644editdlrm
posixpath.cpython-39.pyc106220644editdlrm
pprint.cpython-39.opt-1.pyc168100644editdlrm
pprint.cpython-39.opt-2.pyc146530644editdlrm
pprint.cpython-39.pyc168430644editdlrm
profile.cpython-39.opt-1.pyc142360644editdlrm
profile.cpython-39.opt-2.pyc112580644editdlrm
profile.cpython-39.pyc144240644editdlrm
pstats.cpython-39.opt-1.pyc237650644editdlrm
pstats.cpython-39.opt-2.pyc208560644editdlrm
pstats.cpython-39.pyc237650644editdlrm
pty.cpython-39.opt-1.pyc39690644editdlrm
pty.cpython-39.opt-2.pyc31240644editdlrm
pty.cpython-39.pyc39690644editdlrm
pyclbr.cpython-39.opt-1.pyc104620644editdlrm
pyclbr.cpython-39.opt-2.pyc68610644editdlrm
pyclbr.cpython-39.pyc104620644editdlrm
pydoc.cpython-39.opt-1.pyc854410644editdlrm
pydoc.cpython-39.opt-2.pyc755590644editdlrm
pydoc.cpython-39.pyc854730644editdlrm
py_compile.cpython-39.opt-1.pyc74090644editdlrm
py_compile.cpython-39.opt-2.pyc36710644editdlrm
py_compile.cpython-39.pyc74090644editdlrm
queue.cpython-39.opt-1.pyc108890644editdlrm
queue.cpython-39.opt-2.pyc65390644editdlrm
queue.cpython-39.pyc108890644editdlrm
quopri.cpython-39.opt-1.pyc56160644editdlrm
quopri.cpython-39.opt-2.pyc45800644editdlrm
quopri.cpython-39.pyc57600644editdlrm
random.cpython-39.opt-1.pyc220560644editdlrm
random.cpython-39.opt-2.pyc146090644editdlrm
random.cpython-39.pyc220560644editdlrm
re.cpython-39.opt-1.pyc143750644editdlrm
re.cpython-39.opt-2.pyc60370644editdlrm
re.cpython-39.pyc143750644editdlrm
reprlib.cpython-39.opt-1.pyc53200644editdlrm
reprlib.cpython-39.opt-2.pyc51640644editdlrm
reprlib.cpython-39.pyc53200644editdlrm
rlcompleter.cpython-39.opt-1.pyc58190644editdlrm
rlcompleter.cpython-39.opt-2.pyc31560644editdlrm
rlcompleter.cpython-39.pyc58190644editdlrm
runpy.cpython-39.opt-1.pyc93980644editdlrm
runpy.cpython-39.opt-2.pyc69560644editdlrm
runpy.cpython-39.pyc93980644editdlrm
sched.cpython-39.opt-1.pyc66460644editdlrm
sched.cpython-39.opt-2.pyc36180644editdlrm
sched.cpython-39.pyc66460644editdlrm
secrets.cpython-39.opt-1.pyc21930644editdlrm
secrets.cpython-39.opt-2.pyc11350644editdlrm
secrets.cpython-39.pyc21930644editdlrm
selectors.cpython-39.opt-1.pyc172580644editdlrm
selectors.cpython-39.opt-2.pyc131490644editdlrm
selectors.cpython-39.pyc172580644editdlrm
shelve.cpython-39.opt-1.pyc95570644editdlrm
shelve.cpython-39.opt-2.pyc54060644editdlrm
shelve.cpython-39.pyc95570644editdlrm
shlex.cpython-39.opt-1.pyc77470644editdlrm
shlex.cpython-39.opt-2.pyc71890644editdlrm
shlex.cpython-39.pyc77470644editdlrm
shutil.cpython-39.opt-1.pyc385100644editdlrm
shutil.cpython-39.opt-2.pyc264420644editdlrm
shutil.cpython-39.pyc385100644editdlrm
signal.cpython-39.opt-1.pyc30190644editdlrm
signal.cpython-39.opt-2.pyc27950644editdlrm
signal.cpython-39.pyc30190644editdlrm
site.cpython-39.opt-1.pyc170230644editdlrm
site.cpython-39.opt-2.pyc114870644editdlrm
site.cpython-39.pyc170230644editdlrm
smtpd.cpython-39.opt-1.pyc265370644editdlrm
smtpd.cpython-39.opt-2.pyc239170644editdlrm
smtpd.cpython-39.pyc265370644editdlrm
smtplib.cpython-39.opt-1.pyc358980644editdlrm
smtplib.cpython-39.opt-2.pyc195360644editdlrm
smtplib.cpython-39.pyc359430644editdlrm
sndhdr.cpython-39.opt-1.pyc70060644editdlrm
sndhdr.cpython-39.opt-2.pyc57310644editdlrm
sndhdr.cpython-39.pyc70060644editdlrm
socket.cpython-39.opt-1.pyc289890644editdlrm
socket.cpython-39.opt-2.pyc204500644editdlrm
socket.cpython-39.pyc290130644editdlrm
socketserver.cpython-39.opt-1.pyc255280644editdlrm
socketserver.cpython-39.opt-2.pyc148120644editdlrm
socketserver.cpython-39.pyc255280644editdlrm
sre_compile.cpython-39.opt-1.pyc149720644editdlrm
sre_compile.cpython-39.opt-2.pyc145580644editdlrm
sre_compile.cpython-39.pyc151670644editdlrm
sre_constants.cpython-39.opt-1.pyc63490644editdlrm
sre_constants.cpython-39.opt-2.pyc59240644editdlrm
sre_constants.cpython-39.pyc63490644editdlrm
sre_parse.cpython-39.opt-1.pyc217850644editdlrm
sre_parse.cpython-39.opt-2.pyc217370644editdlrm
sre_parse.cpython-39.pyc218220644editdlrm
ssl.cpython-39.opt-1.pyc450700644editdlrm
ssl.cpython-39.opt-2.pyc340860644editdlrm
ssl.cpython-39.pyc450700644editdlrm
stat.cpython-39.opt-1.pyc43850644editdlrm
stat.cpython-39.opt-2.pyc36020644editdlrm
stat.cpython-39.pyc43850644editdlrm
statistics.cpython-39.opt-1.pyc317970644editdlrm
statistics.cpython-39.opt-2.pyc159240644editdlrm
statistics.cpython-39.pyc319910644editdlrm
string.cpython-39.opt-1.pyc71780644editdlrm
string.cpython-39.opt-2.pyc60720644editdlrm
string.cpython-39.pyc71780644editdlrm
stringprep.cpython-39.opt-1.pyc99590644editdlrm
stringprep.cpython-39.opt-2.pyc97410644editdlrm
stringprep.cpython-39.pyc99990644editdlrm
struct.cpython-39.opt-1.pyc3190644editdlrm
struct.cpython-39.opt-2.pyc3190644editdlrm
struct.cpython-39.pyc3190644editdlrm
subprocess.cpython-39.opt-1.pyc443230644editdlrm
subprocess.cpython-39.opt-2.pyc322850644editdlrm
subprocess.cpython-39.pyc443990644editdlrm
sunau.cpython-39.opt-1.pyc168300644editdlrm
sunau.cpython-39.opt-2.pyc122400644editdlrm
sunau.cpython-39.pyc168300644editdlrm
symbol.cpython-39.opt-1.pyc25920644editdlrm
symbol.cpython-39.opt-2.pyc25160644editdlrm
symbol.cpython-39.pyc25920644editdlrm
symtable.cpython-39.opt-1.pyc111010644editdlrm
symtable.cpython-39.opt-2.pyc103720644editdlrm
symtable.cpython-39.pyc111790644editdlrm
sysconfig.cpython-39.opt-1.pyc160800644editdlrm
sysconfig.cpython-39.opt-2.pyc137020644editdlrm
sysconfig.cpython-39.pyc160800644editdlrm
tabnanny.cpython-39.opt-1.pyc70780644editdlrm
tabnanny.cpython-39.opt-2.pyc61450644editdlrm
tabnanny.cpython-39.pyc70780644editdlrm
tarfile.cpython-39.opt-1.pyc728220644editdlrm
tarfile.cpython-39.opt-2.pyc575640644editdlrm
tarfile.cpython-39.pyc728370644editdlrm
telnetlib.cpython-39.opt-1.pyc183440644editdlrm
telnetlib.cpython-39.opt-2.pyc108420644editdlrm
telnetlib.cpython-39.pyc183440644editdlrm
tempfile.cpython-39.opt-1.pyc236690644editdlrm
tempfile.cpython-39.opt-2.pyc171430644editdlrm
tempfile.cpython-39.pyc236690644editdlrm
textwrap.cpython-39.opt-1.pyc134760644editdlrm
textwrap.cpython-39.opt-2.pyc62670644editdlrm
textwrap.cpython-39.pyc135340644editdlrm
this.cpython-39.opt-1.pyc12720644editdlrm
this.cpython-39.opt-2.pyc12720644editdlrm
this.cpython-39.pyc12720644editdlrm
threading.cpython-39.opt-1.pyc417290644editdlrm
threading.cpython-39.opt-2.pyc245420644editdlrm
threading.cpython-39.pyc421940644editdlrm
timeit.cpython-39.opt-1.pyc117690644editdlrm
timeit.cpython-39.opt-2.pyc59150644editdlrm
timeit.cpython-39.pyc117690644editdlrm
token.cpython-39.opt-1.pyc25090644editdlrm
token.cpython-39.opt-2.pyc24760644editdlrm
token.cpython-39.pyc25090644editdlrm
tokenize.cpython-39.opt-1.pyc171500644editdlrm
tokenize.cpython-39.opt-2.pyc133860644editdlrm
tokenize.cpython-39.pyc171780644editdlrm
trace.cpython-39.opt-1.pyc197720644editdlrm
trace.cpython-39.opt-2.pyc167570644editdlrm
trace.cpython-39.pyc197720644editdlrm
traceback.cpython-39.opt-1.pyc204530644editdlrm
traceback.cpython-39.opt-2.pyc115000644editdlrm
traceback.cpython-39.pyc204530644editdlrm
tracemalloc.cpython-39.opt-1.pyc179480644editdlrm
tracemalloc.cpython-39.opt-2.pyc165350644editdlrm
tracemalloc.cpython-39.pyc179480644editdlrm
tty.cpython-39.opt-1.pyc10910644editdlrm
tty.cpython-39.opt-2.pyc9820644editdlrm
tty.cpython-39.pyc10910644editdlrm
types.cpython-39.opt-1.pyc92490644editdlrm
types.cpython-39.opt-2.pyc80270644editdlrm
types.cpython-39.pyc92490644editdlrm
typing.cpython-39.opt-1.pyc718180644editdlrm
typing.cpython-39.opt-2.pyc505700644editdlrm
typing.cpython-39.pyc719480644editdlrm
uu.cpython-39.opt-1.pyc38600644editdlrm
uu.cpython-39.opt-2.pyc36160644editdlrm
uu.cpython-39.pyc38600644editdlrm
uuid.cpython-39.opt-1.pyc224100644editdlrm
uuid.cpython-39.opt-2.pyc146970644editdlrm
uuid.cpython-39.pyc225230644editdlrm
warnings.cpython-39.opt-1.pyc131790644editdlrm
warnings.cpython-39.opt-2.pyc109040644editdlrm
warnings.cpython-39.pyc136180644editdlrm
wave.cpython-39.opt-1.pyc178570644editdlrm
wave.cpython-39.opt-2.pyc118650644editdlrm
wave.cpython-39.pyc178860644editdlrm
weakref.cpython-39.opt-1.pyc202840644editdlrm
weakref.cpython-39.opt-2.pyc169990644editdlrm
weakref.cpython-39.pyc202980644editdlrm
webbrowser.cpython-39.opt-1.pyc171300644editdlrm
webbrowser.cpython-39.opt-2.pyc147200644editdlrm
webbrowser.cpython-39.pyc171470644editdlrm
xdrlib.cpython-39.opt-1.pyc82560644editdlrm
xdrlib.cpython-39.opt-2.pyc77710644editdlrm
xdrlib.cpython-39.pyc82560644editdlrm
zipapp.cpython-39.opt-1.pyc59980644editdlrm
zipapp.cpython-39.opt-2.pyc48220644editdlrm
zipapp.cpython-39.pyc59980644editdlrm
zipfile.cpython-39.opt-1.pyc595630644editdlrm
zipfile.cpython-39.opt-2.pyc505750644editdlrm
zipfile.cpython-39.pyc595840644editdlrm
zipimport.cpython-39.opt-1.pyc171720644editdlrm
zipimport.cpython-39.opt-2.pyc136540644editdlrm
zipimport.cpython-39.pyc172500644editdlrm
_aix_support.cpython-39.opt-1.pyc30590644editdlrm
_aix_support.cpython-39.opt-2.pyc17040644editdlrm
_aix_support.cpython-39.pyc30590644editdlrm
_bootlocale.cpython-39.opt-1.pyc12300644editdlrm
_bootlocale.cpython-39.opt-2.pyc10050644editdlrm
_bootlocale.cpython-39.pyc12400644editdlrm
_bootsubprocess.cpython-39.opt-1.pyc22580644editdlrm
_bootsubprocess.cpython-39.opt-2.pyc20290644editdlrm
_bootsubprocess.cpython-39.pyc22580644editdlrm
_collections_abc.cpython-39.opt-1.pyc317440644editdlrm
_collections_abc.cpython-39.opt-2.pyc262540644editdlrm
_collections_abc.cpython-39.pyc317440644editdlrm
_compat_pickle.cpython-39.opt-1.pyc54480644editdlrm
_compat_pickle.cpython-39.opt-2.pyc54480644editdlrm
_compat_pickle.cpython-39.pyc55010644editdlrm
_compression.cpython-39.opt-1.pyc42110644editdlrm
_compression.cpython-39.opt-2.pyc39970644editdlrm
_compression.cpython-39.pyc42110644editdlrm
_markupbase.cpython-39.opt-1.pyc76390644editdlrm
_markupbase.cpython-39.opt-2.pyc72610644editdlrm
_markupbase.cpython-39.pyc77900644editdlrm
_osx_support.cpython-39.opt-1.pyc115950644editdlrm
_osx_support.cpython-39.opt-2.pyc89050644editdlrm
_osx_support.cpython-39.pyc115950644editdlrm
_pydecimal.cpython-39.opt-1.pyc1606260644editdlrm
_pydecimal.cpython-39.opt-2.pyc790090644editdlrm
_pydecimal.cpython-39.pyc1606260644editdlrm
_pyio.cpython-39.opt-1.pyc743800644editdlrm
_pyio.cpython-39.opt-2.pyc515830644editdlrm
_pyio.cpython-39.pyc744000644editdlrm
_py_abc.cpython-39.opt-1.pyc46470644editdlrm
_py_abc.cpython-39.opt-2.pyc34340644editdlrm
_py_abc.cpython-39.pyc46690644editdlrm
_sitebuiltins.cpython-39.opt-1.pyc35140644editdlrm
_sitebuiltins.cpython-39.opt-2.pyc29900644editdlrm
_sitebuiltins.cpython-39.pyc35140644editdlrm
_strptime.cpython-39.opt-1.pyc160280644editdlrm
_strptime.cpython-39.opt-2.pyc123000644editdlrm
_strptime.cpython-39.pyc160280644editdlrm
_sysconfigdata_d_linux_x86_64-linux-gnu.cpython-39.opt-1.pyc269610644editdlrm
_sysconfigdata_d_linux_x86_64-linux-gnu.cpython-39.opt-2.pyc269610644editdlrm
_sysconfigdata_d_linux_x86_64-linux-gnu.cpython-39.pyc269610644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-39.opt-1.pyc270070644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-39.opt-2.pyc270070644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-39.pyc270070644editdlrm
_threading_local.cpython-39.opt-1.pyc65190644editdlrm
_threading_local.cpython-39.opt-2.pyc31990644editdlrm
_threading_local.cpython-39.pyc65190644editdlrm
_weakrefset.cpython-39.opt-1.pyc77370644editdlrm
_weakrefset.cpython-39.opt-2.pyc77370644editdlrm
_weakrefset.cpython-39.pyc77370644editdlrm
__future__.cpython-39.opt-1.pyc41390644editdlrm
__future__.cpython-39.opt-2.pyc21670644editdlrm
__future__.cpython-39.pyc41390644editdlrm
__phello__.foo.cpython-39.opt-1.pyc1420644editdlrm
__phello__.foo.cpython-39.opt-2.pyc1420644editdlrm
__phello__.foo.cpython-39.pyc1420644editdlrm
Edit: /opt/alt/python39/lib64/python3.9/__pycache__/shutil.cpython-39.pyc (38510B)
a XC?h&@sndZddlZddlZddlZddlZddlZddlZzddlZ[dZWne y\dZYn0zddl Z [ dZ Wne ydZ Yn0zddl Z [ dZ Wne ydZ Yn0zddlmZWne ydZYn0zddlmZWne ydZYn0ejdkZdZZejdkr,ddlZner:ddlZerDd nd Zeed o^ejd aeoneed ZdZgdZGdddeZGdddeZ GdddeZ!GdddeZ"GdddeZ#Gddde$Z%Gddde$Z&ddZ'd d!Z(efd"d#Z)dd$d%Z*d&d'Z+d(d)Z,d*d+Z-dd,d-d.Z.dd,d/d0Z/eed1rbdd,d2d3Z0nd4d3Z0dd,d5d6Z1dd,d7d8Z2dd,d9d:Z3d;d<Z4dd=d>Z5dde3ddfd?d@Z6eej7dArdBdCZ8dDdEZ9ndFdCZ8dGdEZ9dHdIZ:dJdKZ;ejhej?ko.ej@ejAvo.ejejBvZCddLdMZDeCeD_EdNdOZFe3fdPdQZGdRdSZHdTdUZIdVdWZJdXdYZKdd[d\ZLdd]d^ZMd_eLd`gdafiZNereLdbgdcfeNdd<eMgdefeNdf<e reLdggdhfeNdi<e reLdjgdkfeNdl<dmdnZOddpdqZPdrdsZQddtduZRdvdwZSdxdyZTddzd{ZUd|d}ZVd~dZWddZXddddZYdgeYgdafdgeXgdefdZZerddgeYgdcfeZdd<e rddgeYgdhfeZdi<e rddgeYgdkfeZdl<ddZ[dddddZ\eedre]de^ddZ_de_j`_de_ja_de_jb_ddZcn$er8e]de^ddZ_ddZcdddZddddZeddZfejgejhBdfddZidS)zUtility functions for copying and archiving files and directory trees. XXX The functions here don't copy the resource fork or other metadata on Mac. NTF)getpwnam)getgrnamntposixiisendfileZlinux _fcopyfilez%.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC) copyfileobjcopyfilecopymodecopystatcopycopy2copytreemovermtreeErrorSpecialFileError ExecError make_archiveget_archive_formatsregister_archive_formatunregister_archive_formatget_unpack_formatsregister_unpack_formatunregister_unpack_formatunpack_archiveignore_patternschownwhichget_terminal_size SameFileErrorc@s eZdZdS)rN)__name__ __module__ __qualname__r$r$+/opt/alt/python39/lib64/python3.9/shutil.pyrEsrc@seZdZdZdS)r z5Raised when source and destination are the same file.Nr!r"r#__doc__r$r$r$r%r Hsr c@seZdZdZdS)rz|Raised when trying to do a kind of operation (e.g. copying) which is not supported on a special file (e.g. a named pipe)Nr&r$r$r$r%rKsrc@seZdZdZdS)rz+Raised when a command could not be executedNr&r$r$r$r%rOsrc@seZdZdZdS) ReadErrorz%Raised when an archive cannot be readNr&r$r$r$r%r(Rsr(c@seZdZdZdS) RegistryErrorzVRaised when a registry operation with the archiving and unpacking registries failsNr&r$r$r$r%r)Usr)c@seZdZdZdS)_GiveupOnFastCopyzuRaised as a signal to fallback on using raw read()/write() file copy when fast-copy functions fail to do so. Nr&r$r$r$r%r*Ysr*c Csz|}|}Wn,ty@}zt|WYd}~n d}~00zt|||WnVty}z>|j|_|j|_|j t j t j hvrt|n|dWYd}~n d}~00dS)zhCopy a regular file content or metadata by using high-performance fcopyfile(3) syscall (macOS). N) fileno Exceptionr*rrOSErrornamefilename filename2errnoEINVALENOTSUP)fsrcfdstflagsinfdoutfderrr$r$r%_fastcopy_fcopyfile^s  r:c CsFz|}|}Wn,ty@}zt|WYd}~n d}~00ztt|jd}Wntynd}Yn0tj dkrt |d}d}zt ||||}Wnty(}zr|j |_ |j |_|jtjkrdat||jtjkr|d|dkrt|dtjdkrt||WYd}~qd}~00|dkr8qB||7}qdS)zCopy data from one regular mmap-like fd to another by using high-performance sendfile(2) syscall. This should work on Linux >= 2.6.33 only. Niili@rF)r+r,r*maxosfstatst_sizer-sysmaxsizeminrr.r/r0r1ZENOTSOCK_USE_CP_SENDFILEZENOSPClseekSEEK_CUR)r4r5r7r8r9Z blocksizeoffsetZsentr$r$r%_fastcopy_sendfilers8         rFc Cs|j}|j}tt|j}||}|s*qtq||krj|d|}||Wdqr1s^0Yq||qWdn1s0YdS)zreadinto()/memoryview() based variant of copyfileobj(). *fsrc* must support readinto() method and both files must be open in binary mode. N)readintowrite memoryview bytearray)r4r5lengthZ fsrc_readinto fdst_writeZmvnZsmvr$r$r%_copyfileobj_readintos*rNcCs0|st}|j}|j}||}|s"q,||qdS)z=copy data from file-like object fsrc to file-like object fdstN) COPY_BUFSIZEreadrH)r4r5rKZ fsrc_readrLZbufr$r$r%rsrcCst|tjrHttjdrHztj|t|WStyFYdS0ttjdrzztj||WStyxYdS0tj tj |tj tj |kS)NsamestatFsamefile) isinstancer<DirEntryhasattrpathrQstatr-rRnormcaseabspathsrcdstr$r$r% _samefiles   r]cCst|tjr|St|SN)rSr<rTrWfnr$r$r%_statsracCs t|tjr|Stj|Sr^)rSr<rT is_symlinkrVislinkr_r$r$r%_islinksrdfollow_symlinksc Cs^td||t||r(td||d}t||gD]h\}}z t|}Wnty^Yq80t |j rt |t j r~|jn|}td|tr8|dkr8|j}q8|st|rt t ||nt|dx}zt|d}tr4z2t||tj|WWdWWdSty0Yn0ntrz.t|||WWdWWdSty|Yn0nDtr|dkrt||t|t|WdWWdSt ||Wdn1s0YWnHt!y8} z.t j"|s"t#d|| nWYd} ~ n d} ~ 00Wdn1sP0Y|S) zCopy data from src to dst in the most efficient way possible. If follow_symlinks is not set and src is a symbolic link, a new symlink will be created instead of copying the file it points to. zshutil.copyfilez{!r} and {!r} are the same filerz`%s` is a named piperbwbNzDirectory does not exist: )$r?auditr]r format enumeraterar-rWS_ISFIFOst_moderSr<rTrVr_WINDOWSr>rdsymlinkreadlinkopen_HAS_FCOPYFILEr:rZ_COPYFILE_DATAr*rBrFrNrArOrIsADirectoryErrorexistsFileNotFoundError) r[r\rf file_sizeir`str4r5er$r$r%r sP       $ $".8r cCsptd|||sFt|rFtj|rFttdr@tjtj}}qRdSn t tj }}||}||t |j dS)zCopy mode bits from src to dst. If follow_symlinks is not set, symlinks aren't followed if and only if both `src` and `dst` are symlinks. If `lchmod` isn't available (e.g. Linux) this method does nothing. zshutil.copymodelchmodN)r?rirdr<rVrcrUlstatrzrachmodrWS_IMODErm)r[r\rfZ stat_funcZ chmod_funcrxr$r$r%r *s  r listxattrc Csztj||d}Wn>tyP}z&|jtjtjtjfvr:WYd}~dSd}~00|D]l}z&tj|||d}tj||||dWqVty}z(|jtj tjtjtjfvrWYd}~qVd}~00qVdS)zCopy extended filesystem attributes from `src` to `dst`. Overwrite existing attributes. If `follow_symlinks` is false, symlinks won't be followed. reN) r<r~r-r1r3ZENODATAr2getxattrsetxattrZEPERM)r[r\rfnamesryr.valuer$r$r% _copyxattr@s rcOsdSr^r$)argskwargsr$r$r%rXsc s`td||ddddd|p6t|o4tj| }|rJfdd}n fdd}t|tjrp|j|d }n|d ||d }t |j }|d ||j |j f|dt |||d z|d |||d WntyYn0t|d r\z|d||j|d WnXtyZ}z>dD]*}tt|r|jtt|krqFqWYd}~n d}~00dS)aCopy file metadata Copy the permission bits, last access time, last modification time, and flags from `src` to `dst`. On Linux, copystat() also copies the "extended attributes" where possible. The file contents, owner, and group are unaffected. `src` and `dst` are path-like objects or path names given as strings. If the optional flag `follow_symlinks` is not set, symlinks aren't followed if and only if both `src` and `dst` are symlinks. zshutil.copystatN)nsrfcWsdSr^r$)rrfrr$r$r%_nopiszcopystat.._nopcs tt|Sr^)getattrr<r.rr$r%lookuppszcopystat..lookupcstt|}|tjvr|SSr^)rr<supports_follow_symlinks)r.r`rr$r%rus  rerWutimer|st_flagsZchflags)Z EOPNOTSUPPr3)r?rirdr<rVrcrSrTrWr}rm st_atime_ns st_mtime_nsrNotImplementedErrorrUrr-r1r) r[r\rfZfollowrrxmodewhyr9r$rr%r [s4       r cCsBtj|r"tj|tj|}t|||dt|||d|S)a3Copy data and mode bits ("cp src dst"). Return the file's destination. The destination may be a directory. If follow_symlinks is false, symlinks won't be followed. This resembles GNU's "cp -P src dst". If source and destination are the same file, a SameFileError will be raised. re)r<rVisdirjoinbasenamer r r[r\rfr$r$r%r s r cCsBtj|r"tj|tj|}t|||dt|||d|S)a0Copy data and metadata. Return the file's destination. Metadata is copied with copystat(). Please see the copystat function for more information. The destination may be a directory. If follow_symlinks is false, symlinks won't be followed. This resembles GNU's "cp -P src dst". re)r<rVrrrr r rr$r$r%r s r csfdd}|S)zFunction that can be used as copytree() ignore parameter. Patterns is a sequence of glob-style patterns that are used to exclude filescs(g}D]}|t||qt|Sr^)extendfnmatchfilterset)rVr ignored_namespatternpatternsr$r%_ignore_patternssz)ignore_patterns.._ignore_patternsr$)rrr$rr%rs rc CsD|dur$|t|dd|D}nt}tj||dg} |tupJ|tu} |D]} | j|vrbqPtj|| j} tj|| j} | r| n| }z| }|rtjdkr| j dd}|j t j krd}|r8t | }|rt|| t|| | dnBtj|s |r WqP| r,t|| ||||dn ||| n*| rXt|| ||||dn ||| WqPty}z| |jdWYd}~qPd}~0ty}z | | | t|fWYd}~qPd}~00qPzt||WnLty0}z2t|d ddur| ||t|fWYd}~n d}~00| r@t| |S) NcSsg|] }|jqSr$r).0xr$r$r% z_copytree..)exist_okrFre) dirs_exist_okrZwinerror)r<fspathrmakedirsr r r.rVrrbrWst_reparse_tagIO_REPARSE_TAG_MOUNT_POINTrpror rtis_dirrrrrr-appendstrr)entriesr[r\symlinksignore copy_functionignore_dangling_symlinksrrerrorsZ use_srcentryZsrcentryZsrcnameZdstnameZsrcobjrbr{linktor9rr$r$r% _copytrees^            $,*rc CsXtd||t|}t|}Wdn1s60Yt||||||||dS)a'Recursively copy a directory tree and return the destination directory. If exception(s) occur, an Error is raised with a list of reasons. If the optional symlinks flag is true, symbolic links in the source tree result in symbolic links in the destination tree; if it is false, the contents of the files pointed to by symbolic links are copied. If the file pointed by the symlink doesn't exist, an exception will be added in the list of errors raised in an Error exception at the end of the copy process. You can set the optional ignore_dangling_symlinks flag to true if you want to silence this exception. Notice that this has no effect on platforms that don't support os.symlink. The optional ignore argument is a callable. If given, it is called with the `src` parameter, which is the directory being visited by copytree(), and `names` which is the list of `src` contents, as returned by os.listdir(): callable(src, names) -> ignored_names Since copytree() is called recursively, the callable will be called once for each directory that is copied. It returns a list of names relative to the `src` directory that should not be copied. The optional copy_function argument is a callable that will be used to copy each file. It will be called with the source path and the destination path as arguments. By default, copy2() is used, but any function that supports the same signature (like copy()) can be used. If dirs_exist_ok is false (the default) and `dst` already exists, a `FileExistsError` is raised. If `dirs_exist_ok` is true, the copying operation will continue if it encounters existing directories, and files within the `dst` tree will be overwritten by corresponding files from the `src` tree. zshutil.copytreeN)rr[r\rrrrr)r?rir<scandirlistr) r[r\rrrrrZitrrr$r$r%r s( & rst_file_attributescCsNz4|jdd}t|jo2|jtj@o0|jtjk WStyHYdS0dSNFre)rWS_ISDIRrmrFILE_ATTRIBUTE_REPARSE_POINTrrr-)entryrxr$r$r% _rmtree_isdirAs     rcCsJz0t|}t|jp.|jtj@o.|jtjkWSt yDYdS0dS)NF) r<r{rWS_ISLNKrmrrrrr-)rVrxr$r$r%_rmtree_islinkJs     rcCs(z|jddWSty"YdS0dSr)rr-)rr$r$r%rSs cCs tj|Sr^)r<rVrc)rVr$r$r%rYsc Cs2z6t|}t|}Wdn1s*0YWn(ty^|tj|tg}Yn0|D]}|j}t|rz|rtdWn*ty|tjj |tYqdYn0t ||qdzt |Wqdty|tj |tYqd0qdzt |Wn&ty,|tj |tYn0dS)N%Cannot call rmtree on a symbolic link) r<rrr-r?exc_inforVrrbrc_rmtree_unsafeunlinkrmdir)rVonerror scandir_itrrfullnamer$r$r%r]s0 *       rc Cs`z6t|}t|}Wdn1s*0YWn>tyt}z&||_|tj|tWYd}~dSd}~00|D]}tj||j }z|j dd}Wntyd}YnP0|rz|j dd} t | j }Wn*ty|tj|tYqzYn0|rztj|j tj|d} d} Wn&tyN|tj|tYn0ztj| t| rt| ||z"t| d} tj|j |dWn&ty|tj|tYn0n6z tdWn(ty|tjj|tYn0W| st| n| st| 0qzztj|j |dWqztyX|tj|tYqz0qzdS)NFre)dir_fdTr)r<rrr-r/r?rrVrr.rrWrrmr{rqO_RDONLYrQr=_rmtree_safe_fdcloserrcr) topfdrVrrrr9rrrorig_stdirfdZ dirfd_closedr$r$r%r|s^ *         rc Cstd||rdd}n|dur*dd}trt|trDt|}zt|}Wn&tyx|tj|t YdS0zt |tj }d}Wn&ty|tj |t YdS0ztj |t|r"t|||zt|d}t|Wn&ty|tj|t Yn0n6z tdWn(tyV|tj j|t Yn0W|s~t|n|s|t|0nLzt|rtdWn*ty|tj j|t YdS0t||SdS) aRecursively delete a directory tree. If ignore_errors is set, errors are ignored; otherwise, if onerror is set, it is called to handle the error with arguments (func, path, exc_info) where func is platform and implementation dependent; path is the argument to that function that caused it to fail; and exc_info is a tuple returned by sys.exc_info(). If ignore_errors is false and onerror is None, an exception is raised. z shutil.rmtreecWsdSr^r$rr$r$r%rszrmtree..onerrorNcWsdSr^r$rr$r$r%rsFTr)r?ri_use_fd_functionsrSbytesr<fsdecoder{r,rrqrrVrQr=rrrr-rcrr)rV ignore_errorsrrfdZ fd_closedr$r$r%rsV            rcCs0t|}tjjtjjpd}tj||S)aHA basename() variant which first strips the trailing slash, if present. Thus we always get the last component of the path, even for directories. path: Union[PathLike, str] e.g. >>> os.path.basename('/bar/foo') 'foo' >>> os.path.basename('/bar/foo/') '' >>> _basename('/bar/foo/') 'foo' )r<rrVsepaltseprrstrip)rVrr$r$r% _basenames rc CsRtd|||}tj|rbt||r8t||dStj|t|}tj |rbt d|zt||Wnt yLtj |rt |}t||t|ntj|r4t||rt d||ft|s t|tjst|rtjdkrtd||ft|||ddt|n|||t|Yn0|S) a+Recursively move a file or directory to another location. This is similar to the Unix "mv" command. Return the file or directory's destination. If the destination is a directory or a symlink to a directory, the source is moved inside the directory. The destination path must not already exist. If the destination already exists but is not a directory, it may be overwritten depending on os.rename() semantics. If the destination is on our current filesystem, then rename() is used. Otherwise, src is copied to the destination and then removed. Symlinks are recreated under the new name if os.rename() fails because of cross filesystem renames. The optional `copy_function` argument is a callable that will be used to copy the source or it will be delegated to `copytree`. By default, copy2() is used, but any function that supports the same signature (like copy()) can be used. A lot more could be done here... A look at a mv.c shows a lot of the issues this implementation glosses over. z shutil.moveNz$Destination path '%s' already existsz.Cannot move a directory '%s' into itself '%s'.darwinzKCannot move the non-empty directory '%s': Lacking write permission to '%s'.T)rr)r?rir<rVrr]renamerrrtrr-rcrpror _destinsrc _is_immutableaccessW_OKlistdirplatformPermissionErrorrr)r[r\rZreal_dstrr$r$r%rsL              rcCsVtj|}tj|}|tjjs2|tjj7}|tjjsL|tjj7}||Sr^)r<rVrYendswithr startswithrZr$r$r%rQs    rcCs(t|}tjtjg}t|do&|j|vS)Nr)rarW UF_IMMUTABLE SF_IMMUTABLErUr)r[rxZimmutable_statesr$r$r%rZs rcCsLtdus|durdSz t|}Wnty6d}Yn0|durH|dSdS)z"Returns a gid, given a group name.N)rKeyErrorr.resultr$r$r%_get_gid_s   rcCsLtdus|durdSz t|}Wnty6d}Yn0|durH|dSdS)z"Returns an uid, given a user name.Nr)rrrr$r$r%_get_uidks   rgzipcs(|durd}nDtr |dkr d}n2tr2|dkr2d}n trD|dkrDd}ntd|d dl} |rfd |nd} |d | } tj| } | rtj | s|dur| d | |st | |dur| d t t fdd} |s$| | d|}z|j|| dW|n |0| S)aCreate a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", or None. 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_name' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", or ".xz"). Returns the output filename. NrrZgzbzip2bz2xzzCbad value for 'compress', or compression format not supported : {0}r..tar creating %szCreating tar archivecs,dur|_|_dur(|_|_|Sr^)gidZgnameuiduname)Ztarinforgroupownerrr$r% _set_uid_gidsz#_make_tarball.._set_uid_gidzw|%sr)_ZLIB_SUPPORTED_BZ2_SUPPORTED_LZMA_SUPPORTED ValueErrorrjtarfiler<rVdirnamertinforrrrqaddr) base_namebase_dircompressverbosedry_runrrloggerZtar_compressionrZ compress_extZ archive_name archive_dirrtarr$rr% _make_tarballws>         r c Csddl}|d}tj|}|rNtj|sN|dur@|d||sNt||durd|d|||s|j|d|jd}tj |} | tj kr| | | |dur|d| t |D]\} } } t | D]:} tj tj| | } | | | |dur|d| q| D]L} tj tj| | } tj| r| | | |dur|d| qqWdn1sv0Y|S) zCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Returns the name of the output zip file. rN.ziprz#creating '%s' and adding '%s' to itw)Z compressionz adding '%s')zipfiler<rVrrtrrZipFileZ ZIP_DEFLATEDnormpathcurdirrHwalksortedrisfile)rrrrr rZ zip_filenamer ZzfrVdirpathZdirnames filenamesr.r$r$r% _make_zipfilesF           2rr )rNzuncompressed tar file)rrzgzip'ed tar-fileZgztarzZIP filezip)rrzbzip2'ed tar-fileZbztar)rrzxz'ed tar-fileZxztarcCsddtD}||S)zReturns a list of supported formats for archiving and unarchiving. Each element of the returned sequence is a tuple (name, description) cSsg|]\}}||dfqS)rr$)rr.registryr$r$r%rrz'get_archive_formats..)_ARCHIVE_FORMATSitemssortZformatsr$r$r%rs rrcCst|dur g}t|s td|t|ttfs6td|D]&}t|ttfrXt|dkr:tdq:|||ft|<dS)auRegisters an archive format. name is the name of the format. function is the callable that will be used to create archives. If provided, extra_args is a sequence of (name, value) tuples that will be passed as arguments to the callable. description can be provided to describe the format, and will be returned by the get_archive_formats() function. NzThe %s object is not callablez!extra_args needs to be a sequencerz+extra_args elements are : (arg_name, value))callable TypeErrorrStuplerlenr)r.function extra_args descriptionZelementr$r$r%rs   rcCs t|=dSr^)rrr$r$r%rsrc  CsBtd||||t} |durP|dur6|d|tj|}|sPt||dur^tj}||d} z t |} Wn t yt d|dYn0| d} | dD]\} }|| | <q|dkr|| d <|| d <z@| ||fi| }W|dur>|dur|d | t| n,|dur<|dur2|d | t| 0|S) aCreate an archive file (eg. zip or tar). 'base_name' is the name of the file to create, minus any format-specific extension; 'format' is the archive format: one of "zip", "tar", "gztar", "bztar", or "xztar". Or any other registered format. 'root_dir' is a directory that will be the root directory of the archive; ie. we typically chdir into 'root_dir' before creating the archive. 'base_dir' is the directory where we start archiving from; ie. 'base_dir' will be the common prefix of all files and directories in the archive. 'root_dir' and 'base_dir' both default to the current directory. Returns the name of the archive file. 'owner' and 'group' are used when creating a tar archive. By default, uses the current owner and group. zshutil.make_archiveNzchanging into '%s')rr zunknown archive format '%s'rrrrzchanging back to '%s') r?rir<getcwddebugrVrYchdirrrrr)rrjZroot_dirrrrrrr Zsave_cwdr format_infofuncargvalr/r$r$r%rs@              rcCsddtD}||S)zReturns a list of supported formats for unpacking. Each element of the returned sequence is a tuple (name, extensions, description) cSs"g|]\}}||d|dfqS)rr$)rr.rr$r$r%rUrz&get_unpack_formats..)_UNPACK_FORMATSrrrr$r$r%rOs rc Csji}tD]\}}|dD] }|||<qq |D]$}||vr0d}t||||fq0t|sftddS)z+Checks what gets registered as an unpacker.rz!%s is already registered for "%s"z*The registered function must be a callableN)r/rr)rr ) extensionsr#r$Zexisting_extensionsr.rext extensionmsgr$r$r%_check_unpack_optionsZs   r4cCs,|dur g}t|||||||ft|<dS)aMRegisters an unpack format. `name` is the name of the format. `extensions` is a list of extensions corresponding to the format. `function` is the callable that will be used to unpack archives. The callable will receive archives to unpack. If it's unable to handle an archive, it needs to raise a ReadError exception. If provided, `extra_args` is a sequence of (name, value) tuples that will be passed as arguments to the callable. description can be provided to describe the format, and will be returned by the get_unpack_formats() function. N)r4r/)r.r0r#r$r%r$r$r%rls rcCs t|=dS)z*Removes the pack format from the registry.N)r/rr$r$r%rsrcCs&tj|}tj|s"t|dS)z1Ensure that the parent directory of `path` existsN)r<rVrrr)rVrr$r$r%_ensure_directorys  r5c Csddl}||std|||}z|D]}|j}|ds2d|vrPq2tjj |g| dR}|spq2t || ds2| |dD}t |d}t||Wdn1s0YWdq21s0Yq2W|n |0dS)z+Unpack zip `filename` to `extract_dir` rNz%s is not a zip file/z..rrh)rZ is_zipfiler(rZinfolistr/rr<rVrsplitr5rrqrr) r/ extract_dirrrrr.Z targetpathsourcetargetr$r$r%_unpack_zipfiles(     Jr<rcCsbddl}z||}Wn |jy6td|Yn0z|j||dW|n |0dS)zAUnpack tar/tar.gz/tar.bz2/tar.xz `filename` to `extract_dir` rNz/%s is not a compressed or uncompressed tar filer)rrqZTarErrorr(Z extractallr)r/r9rrZtarobjr$r$r%_unpack_tarfiles r=rr )r rz.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzcCs:tD],\}}|dD]}||r|SqqdS)Nr)r/rr)r/r.rr2r$r$r%_find_unpack_formats   r>cCstd||||dur t}t|}t|}|durBi}nd|i}|durz t|}Wn"tytd|dYn0|d}|||fit |d|nPt |}|durt d|t|d}t t|d|B}|||fi|dS)a]Unpack an archive. `filename` is the name of the archive. `extract_dir` is the name of the target directory, where the archive is unpacked. If not provided, the current working directory is used. `format` is the archive format: one of "zip", "tar", "gztar", "bztar", or "xztar". Or any other registered format. If not provided, unpack_archive will use the filename extension and see if an unpacker was registered for that extension. In case none is found, a ValueError is raised. If `filter` is given, it is passed to the underlying extraction function. zshutil.unpack_archiveNrzUnknown unpack format '{0}'r&rzUnknown archive format '{0}') r?rir<r'rr/rrrjdictr>r()r/r9rjrZ filter_kwargsr*r+rr$r$r%rs*      rstatvfs disk_usageZusageztotal used freezTotal space in byteszUsed space in byteszFree space in bytescCs@t|}|j|j}|j|j}|j|j|j}t|||S)zReturn disk usage statistics about the given path. Returned value is a named tuple with attributes 'total', 'used' and 'free', which are the amount of total, used and free space, in bytes. )r<r@f_bavailf_frsizef_blocksf_bfree_ntuple_diskusage)rVrxfreetotalusedr$r$r%rA s    cCs"t|\}}||}t|||S)zReturn disk usage statistics about the given path. Returned values is a named tuple with attributes 'total', 'used' and 'free', which are the amount of total, used and free space, in bytes. )rZ _getdiskusagerF)rVrHrGrIr$r$r%rAscCstd||||dur(|dur(td|}|}|dur>d}n(t|trft|}|durftd||durtd}n(t|tst |}|durtd|t |||dS)zChange owner user and group of the given path. user and group can be the uid/gid or the user/group names, and in that case, they are converted to their respective uid/gid. z shutil.chownNzuser and/or group must be setzno such user: {!r}zno such group: {!r}) r?rirrSrr LookupErrorrjintrr<r)rVuserrZ_userZ_groupr$r$r%r%s$  rPc Cszttjd}Wnttfy,d}Yn0zttjd}WnttfyZd}Yn0|dksl|dkrzttj}Wn"t tt fyt |}Yn0|dkr|j }|dkr|j }t ||fS)aGet the size of the terminal window. For each of the two dimensions, the environment variable, COLUMNS and LINES respectively, is checked. If the variable is defined and the value is a positive integer, it is used. When COLUMNS or LINES is not defined, which is the common case, the terminal connected to sys.__stdout__ is queried by invoking os.get_terminal_size. If the terminal size cannot be successfully queried, either because the system doesn't support querying, or because we are not connected to a terminal, the value given in fallback parameter is used. Fallback defaults to (80, 24) which is the default size used by many terminal emulators. The value returned is a named tuple of type os.terminal_size. ZCOLUMNSrZLINES)rLr<environrrrr? __stdout__r+AttributeErrorr- terminal_sizecolumnslines)ZfallbackrUrVsizer$r$r%rEs$  rcCs&tj|o$t||o$tj| Sr^)r<rVrtrr)r`rr$r$r% _access_checkvs rXc stjrt|rSdStt}|durrtjdd}|durrztd}Wnt t fyptj }Yn0|szdS|rt |}| t tj}nt|}| tj}tjdkrRtj}|rt |}||vr|d|tdpt}dd| tjD}|rd d|D}tfd d |Dr>g}nfd d|D}ng}t}|D]X} tj| } | |vrb|| |D],} tj| | } t| |r| SqqbdS) a3Given a command, mode, and a PATH string, return the path which conforms to the given mode on the PATH, or None if there is no such file. `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result of os.environ.get("PATH"), or can be overridden with a custom search path. NPATHCS_PATHZwin32rZPATHEXTcSsg|] }|r|qSr$r$rr1r$r$r%rrzwhich..cSsg|]}t|qSr$)r<fsencoder[r$r$r%rrc3s |]}|VqdSr^)lowerrr[cmdr$r% rzwhich..csg|] }|qSr$r$r[r^r$r%rr)r<rVrrXrSrrQgetconfstrrSrdefpathr\r8pathseprr?rrinsertgetenv_WIN_DEFAULT_PATHEXTanyrrXrr) r_rrVZ use_bytesrZpathext_sourceZpathextfilesseendirZnormdirZthefiler.r$r^r%r{sV              r)r)F)FN)rrrNNN)rrN)Nr)NNrrNNN)Nr)NN)NN)rN)jr'r<r?rWr collectionsr1zlibr ImportErrorrrZlzmarpwdrZgrprr.rnrrrOrUrrrBrrrg__all__r-rr rrr(r,r)r*r:rFrNrr]rardr r rr r r rrr stat_resultrrrrrqrrsupports_dir_fdr supports_fdrrrZavoids_symlink_attacksrrrrrrr rrrrrrrr4rrr5r<r=r/r>rr namedtuplerFrHrIrGrArrrXF_OKX_OKrr$r$r$r%s>             @  @ B A 0 8   B B    A -   8       1       1