X7ROOT File Manager
Current Path:
/lib64/python2.7
lib64
/
python2.7
/
??
..
??
BaseHTTPServer.py
(22.21 KB)
??
BaseHTTPServer.pyc
(21.21 KB)
??
BaseHTTPServer.pyo
(21.21 KB)
??
Bastion.py
(5.61 KB)
??
Bastion.pyc
(6.5 KB)
??
Bastion.pyo
(6.5 KB)
??
CGIHTTPServer.py
(12.78 KB)
??
CGIHTTPServer.pyc
(10.76 KB)
??
CGIHTTPServer.pyo
(10.76 KB)
??
ConfigParser.py
(27.1 KB)
??
ConfigParser.pyc
(24.62 KB)
??
ConfigParser.pyo
(24.62 KB)
??
Cookie.py
(25.92 KB)
??
Cookie.pyc
(22.13 KB)
??
Cookie.pyo
(22.13 KB)
??
Demo
??
Doc
??
DocXMLRPCServer.py
(10.52 KB)
??
DocXMLRPCServer.pyc
(9.96 KB)
??
DocXMLRPCServer.pyo
(9.85 KB)
??
HTMLParser.py
(16.77 KB)
??
HTMLParser.pyc
(13.41 KB)
??
HTMLParser.pyo
(13.11 KB)
??
MimeWriter.py
(6.33 KB)
??
MimeWriter.pyc
(7.19 KB)
??
MimeWriter.pyo
(7.19 KB)
??
Queue.py
(8.38 KB)
??
Queue.pyc
(9.2 KB)
??
Queue.pyo
(9.2 KB)
??
SimpleHTTPServer.py
(7.81 KB)
??
SimpleHTTPServer.pyc
(7.82 KB)
??
SimpleHTTPServer.pyo
(7.82 KB)
??
SimpleXMLRPCServer.py
(25.21 KB)
??
SimpleXMLRPCServer.pyc
(22.33 KB)
??
SimpleXMLRPCServer.pyo
(22.33 KB)
??
SocketServer.py
(23.39 KB)
??
SocketServer.pyc
(23.52 KB)
??
SocketServer.pyo
(23.52 KB)
??
StringIO.py
(10.41 KB)
??
StringIO.pyc
(11.21 KB)
??
StringIO.pyo
(11.21 KB)
??
Tools
??
UserDict.py
(6.89 KB)
??
UserDict.pyc
(9.48 KB)
??
UserDict.pyo
(9.48 KB)
??
UserList.py
(3.56 KB)
??
UserList.pyc
(6.42 KB)
??
UserList.pyo
(6.42 KB)
??
UserString.py
(9.46 KB)
??
UserString.pyc
(14.52 KB)
??
UserString.pyo
(14.52 KB)
??
_LWPCookieJar.py
(6.4 KB)
??
_LWPCookieJar.pyc
(5.31 KB)
??
_LWPCookieJar.pyo
(5.31 KB)
??
_MozillaCookieJar.py
(5.66 KB)
??
_MozillaCookieJar.pyc
(4.36 KB)
??
_MozillaCookieJar.pyo
(4.32 KB)
??
__future__.py
(4.28 KB)
??
__future__.pyc
(4.12 KB)
??
__future__.pyo
(4.12 KB)
??
__phello__.foo.py
(64 B)
??
__phello__.foo.pyc
(125 B)
??
__phello__.foo.pyo
(125 B)
??
_abcoll.py
(18.18 KB)
??
_abcoll.pyc
(25.08 KB)
??
_abcoll.pyo
(25.08 KB)
??
_osx_support.py
(18.65 KB)
??
_osx_support.pyc
(11.48 KB)
??
_osx_support.pyo
(11.48 KB)
??
_pyio.py
(68 KB)
??
_pyio.pyc
(63.18 KB)
??
_pyio.pyo
(63.18 KB)
??
_strptime.py
(20.24 KB)
??
_strptime.pyc
(14.82 KB)
??
_strptime.pyo
(14.82 KB)
??
_sysconfigdata.py
(19.27 KB)
??
_sysconfigdata.pyc
(22.43 KB)
??
_sysconfigdata.pyo
(22.43 KB)
??
_threading_local.py
(7.09 KB)
??
_threading_local.pyc
(6.22 KB)
??
_threading_local.pyo
(6.22 KB)
??
_weakrefset.py
(5.77 KB)
??
_weakrefset.pyc
(9.45 KB)
??
_weakrefset.pyo
(9.45 KB)
??
abc.py
(6.98 KB)
??
abc.pyc
(6 KB)
??
abc.pyo
(5.94 KB)
??
aifc.py
(33.77 KB)
??
aifc.pyc
(29.75 KB)
??
aifc.pyo
(29.75 KB)
??
antigravity.py
(60 B)
??
antigravity.pyc
(203 B)
??
antigravity.pyo
(203 B)
??
anydbm.py
(2.6 KB)
??
anydbm.pyc
(2.73 KB)
??
anydbm.pyo
(2.73 KB)
??
argparse.py
(87.14 KB)
??
argparse.pyc
(62.86 KB)
??
argparse.pyo
(62.7 KB)
??
ast.py
(11.53 KB)
??
ast.pyc
(12.63 KB)
??
ast.pyo
(12.63 KB)
??
asynchat.py
(11.31 KB)
??
asynchat.pyc
(8.6 KB)
??
asynchat.pyo
(8.6 KB)
??
asyncore.py
(20.45 KB)
??
asyncore.pyc
(18.45 KB)
??
asyncore.pyo
(18.45 KB)
??
atexit.py
(1.67 KB)
??
atexit.pyc
(2.15 KB)
??
atexit.pyo
(2.15 KB)
??
audiodev.py
(7.42 KB)
??
audiodev.pyc
(8.27 KB)
??
audiodev.pyo
(8.27 KB)
??
base64.py
(11.53 KB)
??
base64.pyc
(11.03 KB)
??
base64.pyo
(11.03 KB)
??
bdb.py
(21.21 KB)
??
bdb.pyc
(18.65 KB)
??
bdb.pyo
(18.65 KB)
??
binhex.py
(14.35 KB)
??
binhex.pyc
(15.1 KB)
??
binhex.pyo
(15.1 KB)
??
bisect.py
(2.53 KB)
??
bisect.pyc
(3 KB)
??
bisect.pyo
(3 KB)
??
bsddb
??
cProfile.py
(6.42 KB)
??
cProfile.pyc
(6.25 KB)
??
cProfile.pyo
(6.25 KB)
??
calendar.py
(22.84 KB)
??
calendar.pyc
(27.26 KB)
??
calendar.pyo
(27.26 KB)
??
cgi.py
(35.46 KB)
??
cgi.pyc
(32.58 KB)
??
cgi.pyo
(32.58 KB)
??
cgitb.py
(11.89 KB)
??
cgitb.pyc
(11.85 KB)
??
cgitb.pyo
(11.85 KB)
??
chunk.py
(5.29 KB)
??
chunk.pyc
(5.47 KB)
??
chunk.pyo
(5.47 KB)
??
cmd.py
(14.67 KB)
??
cmd.pyc
(13.71 KB)
??
cmd.pyo
(13.71 KB)
??
code.py
(9.95 KB)
??
code.pyc
(10.09 KB)
??
code.pyo
(10.09 KB)
??
codecs.py
(35.3 KB)
??
codecs.pyc
(35.96 KB)
??
codecs.pyo
(35.96 KB)
??
codeop.py
(5.86 KB)
??
codeop.pyc
(6.44 KB)
??
codeop.pyo
(6.44 KB)
??
collections.py
(27.15 KB)
??
collections.pyc
(25.55 KB)
??
collections.pyo
(25.5 KB)
??
colorsys.py
(3.6 KB)
??
colorsys.pyc
(3.9 KB)
??
colorsys.pyo
(3.9 KB)
??
commands.py
(2.49 KB)
??
commands.pyc
(2.41 KB)
??
commands.pyo
(2.41 KB)
??
compileall.py
(7.58 KB)
??
compileall.pyc
(6.85 KB)
??
compileall.pyo
(6.85 KB)
??
compiler
??
config
??
contextlib.py
(4.32 KB)
??
contextlib.pyc
(4.35 KB)
??
contextlib.pyo
(4.35 KB)
??
cookielib.py
(63.95 KB)
??
cookielib.pyc
(53.44 KB)
??
cookielib.pyo
(53.26 KB)
??
copy.py
(11.26 KB)
??
copy.pyc
(11.88 KB)
??
copy.pyo
(11.79 KB)
??
copy_reg.py
(6.81 KB)
??
copy_reg.pyc
(5.05 KB)
??
copy_reg.pyo
(5 KB)
??
crypt.py
(2.24 KB)
??
crypt.pyc
(2.89 KB)
??
crypt.pyo
(2.89 KB)
??
csv.py
(16.32 KB)
??
csv.pyc
(13.19 KB)
??
csv.pyo
(13.19 KB)
??
ctypes
??
curses
??
dbhash.py
(498 B)
??
dbhash.pyc
(718 B)
??
dbhash.pyo
(718 B)
??
decimal.py
(216.73 KB)
??
decimal.pyc
(168.12 KB)
??
decimal.pyo
(168.12 KB)
??
difflib.py
(80.4 KB)
??
difflib.pyc
(60.45 KB)
??
difflib.pyo
(60.4 KB)
??
dircache.py
(1.1 KB)
??
dircache.pyc
(1.54 KB)
??
dircache.pyo
(1.54 KB)
??
dis.py
(6.35 KB)
??
dis.pyc
(6.08 KB)
??
dis.pyo
(6.08 KB)
??
distutils
??
doctest.py
(102.63 KB)
??
doctest.pyc
(81.68 KB)
??
doctest.pyo
(81.4 KB)
??
dumbdbm.py
(8.93 KB)
??
dumbdbm.pyc
(6.59 KB)
??
dumbdbm.pyo
(6.59 KB)
??
dummy_thread.py
(4.31 KB)
??
dummy_thread.pyc
(5.27 KB)
??
dummy_thread.pyo
(5.27 KB)
??
dummy_threading.py
(2.74 KB)
??
dummy_threading.pyc
(1.25 KB)
??
dummy_threading.pyo
(1.25 KB)
??
email
??
encodings
??
ensurepip
??
filecmp.py
(9.36 KB)
??
filecmp.pyc
(9.4 KB)
??
filecmp.pyo
(9.4 KB)
??
fileinput.py
(13.42 KB)
??
fileinput.pyc
(14.16 KB)
??
fileinput.pyo
(14.16 KB)
??
fnmatch.py
(3.24 KB)
??
fnmatch.pyc
(3.53 KB)
??
fnmatch.pyo
(3.53 KB)
??
formatter.py
(14.56 KB)
??
formatter.pyc
(18.73 KB)
??
formatter.pyo
(18.73 KB)
??
fpformat.py
(4.62 KB)
??
fpformat.pyc
(4.59 KB)
??
fpformat.pyo
(4.59 KB)
??
fractions.py
(21.87 KB)
??
fractions.pyc
(19.25 KB)
??
fractions.pyo
(19.25 KB)
??
ftplib.py
(37.65 KB)
??
ftplib.pyc
(34.12 KB)
??
ftplib.pyo
(34.12 KB)
??
functools.py
(4.69 KB)
??
functools.pyc
(6.47 KB)
??
functools.pyo
(6.47 KB)
??
genericpath.py
(3.13 KB)
??
genericpath.pyc
(3.43 KB)
??
genericpath.pyo
(3.43 KB)
??
getopt.py
(7.15 KB)
??
getopt.pyc
(6.5 KB)
??
getopt.pyo
(6.45 KB)
??
getpass.py
(5.43 KB)
??
getpass.pyc
(4.63 KB)
??
getpass.pyo
(4.63 KB)
??
gettext.py
(22.13 KB)
??
gettext.pyc
(17.58 KB)
??
gettext.pyo
(17.58 KB)
??
glob.py
(3.04 KB)
??
glob.pyc
(2.87 KB)
??
glob.pyo
(2.87 KB)
??
gzip.py
(18.58 KB)
??
gzip.pyc
(14.88 KB)
??
gzip.pyo
(14.88 KB)
??
hashlib.py
(7.66 KB)
??
hashlib.pyc
(6.76 KB)
??
hashlib.pyo
(6.76 KB)
??
heapq.py
(17.87 KB)
??
heapq.pyc
(14.22 KB)
??
heapq.pyo
(14.22 KB)
??
hmac.py
(4.48 KB)
??
hmac.pyc
(4.44 KB)
??
hmac.pyo
(4.44 KB)
??
hotshot
??
htmlentitydefs.py
(17.63 KB)
??
htmlentitydefs.pyc
(6.22 KB)
??
htmlentitydefs.pyo
(6.22 KB)
??
htmllib.py
(12.57 KB)
??
htmllib.pyc
(19.83 KB)
??
htmllib.pyo
(19.83 KB)
??
httplib.py
(52.06 KB)
??
httplib.pyc
(37.82 KB)
??
httplib.pyo
(37.64 KB)
??
idlelib
??
ihooks.py
(18.54 KB)
??
ihooks.pyc
(20.87 KB)
??
ihooks.pyo
(20.87 KB)
??
imaplib.py
(47.23 KB)
??
imaplib.pyc
(43.96 KB)
??
imaplib.pyo
(41.32 KB)
??
imghdr.py
(3.46 KB)
??
imghdr.pyc
(4.72 KB)
??
imghdr.pyo
(4.72 KB)
??
importlib
??
imputil.py
(25.16 KB)
??
imputil.pyc
(15.26 KB)
??
imputil.pyo
(15.08 KB)
??
inspect.py
(42 KB)
??
inspect.pyc
(39.29 KB)
??
inspect.pyo
(39.29 KB)
??
io.py
(3.24 KB)
??
io.pyc
(3.5 KB)
??
io.pyo
(3.5 KB)
??
json
??
keyword.py
(1.95 KB)
??
keyword.pyc
(2.06 KB)
??
keyword.pyo
(2.06 KB)
??
lib-dynload
??
lib-tk
??
lib2to3
??
linecache.py
(3.93 KB)
??
linecache.pyc
(3.2 KB)
??
linecache.pyo
(3.2 KB)
??
locale.py
(100.42 KB)
??
locale.pyc
(55.28 KB)
??
locale.pyo
(55.28 KB)
??
logging
??
macpath.py
(6.14 KB)
??
macpath.pyc
(7.5 KB)
??
macpath.pyo
(7.5 KB)
??
macurl2path.py
(2.67 KB)
??
macurl2path.pyc
(2.19 KB)
??
macurl2path.pyo
(2.19 KB)
??
mailbox.py
(79.34 KB)
??
mailbox.pyc
(74.92 KB)
??
mailbox.pyo
(74.87 KB)
??
mailcap.py
(8.21 KB)
??
mailcap.pyc
(7.77 KB)
??
mailcap.pyo
(7.77 KB)
??
markupbase.py
(14.3 KB)
??
markupbase.pyc
(9.05 KB)
??
markupbase.pyo
(8.86 KB)
??
md5.py
(358 B)
??
md5.pyc
(378 B)
??
md5.pyo
(378 B)
??
mhlib.py
(32.65 KB)
??
mhlib.pyc
(32.99 KB)
??
mhlib.pyo
(32.99 KB)
??
mimetools.py
(7 KB)
??
mimetools.pyc
(8.01 KB)
??
mimetools.pyo
(8.01 KB)
??
mimetypes.py
(20.54 KB)
??
mimetypes.pyc
(18.06 KB)
??
mimetypes.pyo
(18.06 KB)
??
mimify.py
(14.67 KB)
??
mimify.pyc
(11.72 KB)
??
mimify.pyo
(11.72 KB)
??
modulefinder.py
(23.89 KB)
??
modulefinder.pyc
(18.68 KB)
??
modulefinder.pyo
(18.6 KB)
??
multifile.py
(4.71 KB)
??
multifile.pyc
(5.29 KB)
??
multifile.pyo
(5.25 KB)
??
multiprocessing
??
mutex.py
(1.83 KB)
??
mutex.pyc
(2.46 KB)
??
mutex.pyo
(2.46 KB)
??
netrc.py
(5.75 KB)
??
netrc.pyc
(4.6 KB)
??
netrc.pyo
(4.6 KB)
??
new.py
(610 B)
??
new.pyc
(862 B)
??
new.pyo
(862 B)
??
nntplib.py
(20.97 KB)
??
nntplib.pyc
(20.55 KB)
??
nntplib.pyo
(20.55 KB)
??
ntpath.py
(18.97 KB)
??
ntpath.pyc
(12.82 KB)
??
ntpath.pyo
(12.82 KB)
??
nturl2path.py
(2.36 KB)
??
nturl2path.pyc
(1.77 KB)
??
nturl2path.pyo
(1.77 KB)
??
numbers.py
(10.08 KB)
??
numbers.pyc
(13.68 KB)
??
numbers.pyo
(13.68 KB)
??
opcode.py
(5.35 KB)
??
opcode.pyc
(6 KB)
??
opcode.pyo
(6 KB)
??
optparse.py
(59.77 KB)
??
optparse.pyc
(52.63 KB)
??
optparse.pyo
(52.55 KB)
??
os.py
(25.3 KB)
??
os.pyc
(25.09 KB)
??
os.pyo
(25.09 KB)
??
os2emxpath.py
(4.53 KB)
??
os2emxpath.pyc
(4.42 KB)
??
os2emxpath.pyo
(4.42 KB)
??
pdb.doc
(7.73 KB)
??
pdb.py
(45.02 KB)
??
pdb.pyc
(42.65 KB)
??
pdb.pyo
(42.65 KB)
??
pickle.py
(44.42 KB)
??
pickle.pyc
(37.66 KB)
??
pickle.pyo
(37.46 KB)
??
pickletools.py
(72.78 KB)
??
pickletools.pyc
(55.7 KB)
??
pickletools.pyo
(54.85 KB)
??
pipes.py
(9.36 KB)
??
pipes.pyc
(9.09 KB)
??
pipes.pyo
(9.09 KB)
??
pkgutil.py
(19.77 KB)
??
pkgutil.pyc
(18.51 KB)
??
pkgutil.pyo
(18.51 KB)
??
plat-linux2
??
platform.py
(51.56 KB)
??
platform.pyc
(37.08 KB)
??
platform.pyo
(37.08 KB)
??
plistlib.py
(15.44 KB)
??
plistlib.pyc
(19.5 KB)
??
plistlib.pyo
(19.41 KB)
??
popen2.py
(8.22 KB)
??
popen2.pyc
(8.81 KB)
??
popen2.pyo
(8.77 KB)
??
poplib.py
(12.52 KB)
??
poplib.pyc
(13.03 KB)
??
poplib.pyo
(13.03 KB)
??
posixfile.py
(7.82 KB)
??
posixfile.pyc
(7.47 KB)
??
posixfile.pyo
(7.47 KB)
??
posixpath.py
(13.96 KB)
??
posixpath.pyc
(11.19 KB)
??
posixpath.pyo
(11.19 KB)
??
pprint.py
(11.5 KB)
??
pprint.pyc
(9.96 KB)
??
pprint.pyo
(9.78 KB)
??
profile.py
(22.25 KB)
??
profile.pyc
(16.07 KB)
??
profile.pyo
(15.83 KB)
??
pstats.py
(26.09 KB)
??
pstats.pyc
(24.43 KB)
??
pstats.pyo
(24.43 KB)
??
pty.py
(4.94 KB)
??
pty.pyc
(4.85 KB)
??
pty.pyo
(4.85 KB)
??
py_compile.py
(5.8 KB)
??
py_compile.pyc
(6.28 KB)
??
py_compile.pyo
(6.28 KB)
??
pyclbr.py
(13.07 KB)
??
pyclbr.pyc
(9.42 KB)
??
pyclbr.pyo
(9.42 KB)
??
pydoc.py
(93.5 KB)
??
pydoc.pyc
(90.18 KB)
??
pydoc.pyo
(90.12 KB)
??
pydoc_data
??
quopri.py
(6.8 KB)
??
quopri.pyc
(6.42 KB)
??
quopri.pyo
(6.42 KB)
??
random.py
(31.7 KB)
??
random.pyc
(25.1 KB)
??
random.pyo
(25.1 KB)
??
re.py
(13.11 KB)
??
re.pyc
(13.1 KB)
??
re.pyo
(13.1 KB)
??
repr.py
(4.2 KB)
??
repr.pyc
(5.26 KB)
??
repr.pyo
(5.26 KB)
??
rexec.py
(19.68 KB)
??
rexec.pyc
(23.25 KB)
??
rexec.pyo
(23.25 KB)
??
rfc822.py
(32.76 KB)
??
rfc822.pyc
(31.07 KB)
??
rfc822.pyo
(31.07 KB)
??
rlcompleter.py
(5.85 KB)
??
rlcompleter.pyc
(5.94 KB)
??
rlcompleter.pyo
(5.94 KB)
??
robotparser.py
(7.51 KB)
??
robotparser.pyc
(7.82 KB)
??
robotparser.pyo
(7.82 KB)
??
runpy.py
(10.82 KB)
??
runpy.pyc
(8.6 KB)
??
runpy.pyo
(8.6 KB)
??
sched.py
(4.97 KB)
??
sched.pyc
(4.88 KB)
??
sched.pyo
(4.88 KB)
??
sets.py
(18.6 KB)
??
sets.pyc
(16.5 KB)
??
sets.pyo
(16.5 KB)
??
sgmllib.py
(17.46 KB)
??
sgmllib.pyc
(15.07 KB)
??
sgmllib.pyo
(15.07 KB)
??
sha.py
(393 B)
??
sha.pyc
(421 B)
??
sha.pyo
(421 B)
??
shelve.py
(7.99 KB)
??
shelve.pyc
(10.02 KB)
??
shelve.pyo
(10.02 KB)
??
shlex.py
(10.9 KB)
??
shlex.pyc
(7.38 KB)
??
shlex.pyo
(7.38 KB)
??
shutil.py
(19.41 KB)
??
shutil.pyc
(18.81 KB)
??
shutil.pyo
(18.81 KB)
??
site-packages
??
site.py
(20.8 KB)
??
site.pyc
(20.3 KB)
??
site.pyo
(20.3 KB)
??
smtpd.py
(18.11 KB)
??
smtpd.pyc
(15.51 KB)
??
smtpd.pyo
(15.51 KB)
??
smtplib.py
(31.38 KB)
??
smtplib.pyc
(29.59 KB)
??
smtplib.pyo
(29.59 KB)
??
sndhdr.py
(5.83 KB)
??
sndhdr.pyc
(7.19 KB)
??
sndhdr.pyo
(7.19 KB)
??
socket.py
(20.13 KB)
??
socket.pyc
(15.77 KB)
??
socket.pyo
(15.69 KB)
??
sqlite3
??
sre.py
(384 B)
??
sre.pyc
(519 B)
??
sre.pyo
(519 B)
??
sre_compile.py
(19.36 KB)
??
sre_compile.pyc
(12.27 KB)
??
sre_compile.pyo
(12.11 KB)
??
sre_constants.py
(7.03 KB)
??
sre_constants.pyc
(6.05 KB)
??
sre_constants.pyo
(6.05 KB)
??
sre_parse.py
(29.98 KB)
??
sre_parse.pyc
(20.66 KB)
??
sre_parse.pyo
(20.66 KB)
??
ssl.py
(38.39 KB)
??
ssl.pyc
(31.95 KB)
??
ssl.pyo
(31.95 KB)
??
stat.py
(1.8 KB)
??
stat.pyc
(2.69 KB)
??
stat.pyo
(2.69 KB)
??
statvfs.py
(898 B)
??
statvfs.pyc
(620 B)
??
statvfs.pyo
(620 B)
??
string.py
(21.04 KB)
??
string.pyc
(19.98 KB)
??
string.pyo
(19.98 KB)
??
stringold.py
(12.16 KB)
??
stringold.pyc
(12.25 KB)
??
stringold.pyo
(12.25 KB)
??
stringprep.py
(13.21 KB)
??
stringprep.pyc
(14.15 KB)
??
stringprep.pyo
(14.08 KB)
??
struct.py
(82 B)
??
struct.pyc
(239 B)
??
struct.pyo
(239 B)
??
subprocess.py
(49.34 KB)
??
subprocess.pyc
(31.64 KB)
??
subprocess.pyo
(31.64 KB)
??
sunau.py
(16.82 KB)
??
sunau.pyc
(17.96 KB)
??
sunau.pyo
(17.96 KB)
??
sunaudio.py
(1.37 KB)
??
sunaudio.pyc
(1.94 KB)
??
sunaudio.pyo
(1.94 KB)
??
symbol.py
(2.01 KB)
??
symbol.pyc
(2.96 KB)
??
symbol.pyo
(2.96 KB)
??
symtable.py
(7.26 KB)
??
symtable.pyc
(11.51 KB)
??
symtable.pyo
(11.38 KB)
??
sysconfig.py
(22.32 KB)
??
sysconfig.pyc
(17.4 KB)
??
sysconfig.pyo
(17.4 KB)
??
tabnanny.py
(11.07 KB)
??
tabnanny.pyc
(8.05 KB)
??
tabnanny.pyo
(8.05 KB)
??
tarfile.py
(88.53 KB)
??
tarfile.pyc
(74.41 KB)
??
tarfile.pyo
(74.41 KB)
??
telnetlib.py
(26.4 KB)
??
telnetlib.pyc
(22.61 KB)
??
telnetlib.pyo
(22.61 KB)
??
tempfile.py
(19.09 KB)
??
tempfile.pyc
(19.87 KB)
??
tempfile.pyo
(19.87 KB)
??
test
??
textwrap.py
(16.88 KB)
??
textwrap.pyc
(11.81 KB)
??
textwrap.pyo
(11.72 KB)
??
this.py
(1002 B)
??
this.pyc
(1.19 KB)
??
this.pyo
(1.19 KB)
??
threading.py
(46.27 KB)
??
threading.pyc
(41.72 KB)
??
threading.pyo
(39.6 KB)
??
timeit.py
(12.49 KB)
??
timeit.pyc
(11.9 KB)
??
timeit.pyo
(11.9 KB)
??
toaiff.py
(3.07 KB)
??
toaiff.pyc
(3.03 KB)
??
toaiff.pyo
(3.03 KB)
??
token.py
(2.85 KB)
??
token.pyc
(3.73 KB)
??
token.pyo
(3.73 KB)
??
tokenize.py
(17.07 KB)
??
tokenize.pyc
(14.17 KB)
??
tokenize.pyo
(14.11 KB)
??
trace.py
(29.19 KB)
??
trace.pyc
(22.26 KB)
??
trace.pyo
(22.2 KB)
??
traceback.py
(11.02 KB)
??
traceback.pyc
(11.41 KB)
??
traceback.pyo
(11.41 KB)
??
tty.py
(879 B)
??
tty.pyc
(1.29 KB)
??
tty.pyo
(1.29 KB)
??
types.py
(2.04 KB)
??
types.pyc
(2.66 KB)
??
types.pyo
(2.66 KB)
??
unittest
??
urllib.py
(58.82 KB)
??
urllib.pyc
(50.04 KB)
??
urllib.pyo
(49.95 KB)
??
urllib2.py
(51.31 KB)
??
urllib2.pyc
(46.19 KB)
??
urllib2.pyo
(46.1 KB)
??
urlparse.py
(19.98 KB)
??
urlparse.pyc
(17.59 KB)
??
urlparse.pyo
(17.59 KB)
??
user.py
(1.59 KB)
??
user.pyc
(1.68 KB)
??
user.pyo
(1.68 KB)
??
uu.py
(6.54 KB)
??
uu.pyc
(4.29 KB)
??
uu.pyo
(4.29 KB)
??
uuid.py
(22.98 KB)
??
uuid.pyc
(22.82 KB)
??
uuid.pyo
(22.71 KB)
??
warnings.py
(14.48 KB)
??
warnings.pyc
(13.19 KB)
??
warnings.pyo
(12.42 KB)
??
wave.py
(18.15 KB)
??
wave.pyc
(19.54 KB)
??
wave.pyo
(19.4 KB)
??
weakref.py
(14.48 KB)
??
weakref.pyc
(16.06 KB)
??
weakref.pyo
(16.06 KB)
??
webbrowser.py
(22.19 KB)
??
webbrowser.pyc
(19.29 KB)
??
webbrowser.pyo
(19.24 KB)
??
whichdb.py
(3.3 KB)
??
whichdb.pyc
(2.19 KB)
??
whichdb.pyo
(2.19 KB)
??
wsgiref
??
wsgiref.egg-info
(187 B)
??
xdrlib.py
(5.93 KB)
??
xdrlib.pyc
(9.67 KB)
??
xdrlib.pyo
(9.67 KB)
??
xml
??
xmllib.py
(34.05 KB)
??
xmllib.pyc
(26.22 KB)
??
xmllib.pyo
(26.22 KB)
??
xmlrpclib.py
(50.91 KB)
??
xmlrpclib.pyc
(43.07 KB)
??
xmlrpclib.pyo
(42.89 KB)
??
zipfile.py
(58.08 KB)
??
zipfile.pyc
(41.15 KB)
??
zipfile.pyo
(41.15 KB)
Editing: sre_parse.py
# # Secret Labs' Regular Expression Engine # # convert re-style regular expression to sre pattern # # Copyright (c) 1998-2001 by Secret Labs AB. All rights reserved. # # See the sre.py file for information on usage and redistribution. # """Internal support module for sre""" # XXX: show string offset and offending character for all errors import sys from sre_constants import * SPECIAL_CHARS = ".\\[{()*+?^$|" REPEAT_CHARS = "*+?{" DIGITS = set("0123456789") OCTDIGITS = set("01234567") HEXDIGITS = set("0123456789abcdefABCDEF") ASCIILETTERS = set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") WHITESPACE = set(" \t\n\r\v\f") ESCAPES = { r"\a": (LITERAL, ord("\a")), r"\b": (LITERAL, ord("\b")), r"\f": (LITERAL, ord("\f")), r"\n": (LITERAL, ord("\n")), r"\r": (LITERAL, ord("\r")), r"\t": (LITERAL, ord("\t")), r"\v": (LITERAL, ord("\v")), r"\\": (LITERAL, ord("\\")) } CATEGORIES = { r"\A": (AT, AT_BEGINNING_STRING), # start of string r"\b": (AT, AT_BOUNDARY), r"\B": (AT, AT_NON_BOUNDARY), r"\d": (IN, [(CATEGORY, CATEGORY_DIGIT)]), r"\D": (IN, [(CATEGORY, CATEGORY_NOT_DIGIT)]), r"\s": (IN, [(CATEGORY, CATEGORY_SPACE)]), r"\S": (IN, [(CATEGORY, CATEGORY_NOT_SPACE)]), r"\w": (IN, [(CATEGORY, CATEGORY_WORD)]), r"\W": (IN, [(CATEGORY, CATEGORY_NOT_WORD)]), r"\Z": (AT, AT_END_STRING), # end of string } FLAGS = { # standard flags "i": SRE_FLAG_IGNORECASE, "L": SRE_FLAG_LOCALE, "m": SRE_FLAG_MULTILINE, "s": SRE_FLAG_DOTALL, "x": SRE_FLAG_VERBOSE, # extensions "t": SRE_FLAG_TEMPLATE, "u": SRE_FLAG_UNICODE, } class Pattern: # master pattern object. keeps track of global attributes def __init__(self): self.flags = 0 self.open = [] self.groups = 1 self.groupdict = {} self.lookbehind = 0 def opengroup(self, name=None): gid = self.groups self.groups = gid + 1 if name is not None: ogid = self.groupdict.get(name, None) if ogid is not None: raise error, ("redefinition of group name %s as group %d; " "was group %d" % (repr(name), gid, ogid)) self.groupdict[name] = gid self.open.append(gid) return gid def closegroup(self, gid): self.open.remove(gid) def checkgroup(self, gid): return gid < self.groups and gid not in self.open class SubPattern: # a subpattern, in intermediate form def __init__(self, pattern, data=None): self.pattern = pattern if data is None: data = [] self.data = data self.width = None def dump(self, level=0): seqtypes = (tuple, list) for op, av in self.data: print level*" " + op, if op == IN: # member sublanguage print for op, a in av: print (level+1)*" " + op, a elif op == BRANCH: print for i, a in enumerate(av[1]): if i: print level*" " + "or" a.dump(level+1) elif op == GROUPREF_EXISTS: condgroup, item_yes, item_no = av print condgroup item_yes.dump(level+1) if item_no: print level*" " + "else" item_no.dump(level+1) elif isinstance(av, seqtypes): nl = 0 for a in av: if isinstance(a, SubPattern): if not nl: print a.dump(level+1) nl = 1 else: print a, nl = 0 if not nl: print else: print av def __repr__(self): return repr(self.data) def __len__(self): return len(self.data) def __delitem__(self, index): del self.data[index] def __getitem__(self, index): if isinstance(index, slice): return SubPattern(self.pattern, self.data[index]) return self.data[index] def __setitem__(self, index, code): self.data[index] = code def insert(self, index, code): self.data.insert(index, code) def append(self, code): self.data.append(code) def getwidth(self): # determine the width (min, max) for this subpattern if self.width: return self.width lo = hi = 0 UNITCODES = (ANY, RANGE, IN, LITERAL, NOT_LITERAL, CATEGORY) REPEATCODES = (MIN_REPEAT, MAX_REPEAT) for op, av in self.data: if op is BRANCH: i = MAXREPEAT - 1 j = 0 for av in av[1]: l, h = av.getwidth() i = min(i, l) j = max(j, h) lo = lo + i hi = hi + j elif op is CALL: i, j = av.getwidth() lo = lo + i hi = hi + j elif op is SUBPATTERN: i, j = av[1].getwidth() lo = lo + i hi = hi + j elif op in REPEATCODES: i, j = av[2].getwidth() lo = lo + i * av[0] hi = hi + j * av[1] elif op in UNITCODES: lo = lo + 1 hi = hi + 1 elif op == SUCCESS: break self.width = min(lo, MAXREPEAT - 1), min(hi, MAXREPEAT) return self.width class Tokenizer: def __init__(self, string): self.string = string self.index = 0 self.__next() def __next(self): if self.index >= len(self.string): self.next = None return char = self.string[self.index] if char[0] == "\\": try: c = self.string[self.index + 1] except IndexError: raise error, "bogus escape (end of line)" char = char + c self.index = self.index + len(char) self.next = char def match(self, char, skip=1): if char == self.next: if skip: self.__next() return 1 return 0 def get(self): this = self.next self.__next() return this def tell(self): return self.index, self.next def seek(self, index): self.index, self.next = index def isident(char): return "a" <= char <= "z" or "A" <= char <= "Z" or char == "_" def isdigit(char): return "0" <= char <= "9" def isname(name): # check that group name is a valid string if not isident(name[0]): return False for char in name[1:]: if not isident(char) and not isdigit(char): return False return True def _class_escape(source, escape, nested): # handle escape code inside character class code = ESCAPES.get(escape) if code: return code code = CATEGORIES.get(escape) if code and code[0] == IN: return code try: c = escape[1:2] if c == "x": # hexadecimal escape (exactly two digits) while source.next in HEXDIGITS and len(escape) < 4: escape = escape + source.get() escape = escape[2:] if len(escape) != 2: raise error, "bogus escape: %s" % repr("\\" + escape) return LITERAL, int(escape, 16) & 0xff elif c in OCTDIGITS: # octal escape (up to three digits) while source.next in OCTDIGITS and len(escape) < 4: escape = escape + source.get() escape = escape[1:] return LITERAL, int(escape, 8) & 0xff elif c in DIGITS: raise error, "bogus escape: %s" % repr(escape) if len(escape) == 2: if sys.py3kwarning and c in ASCIILETTERS: import warnings if c in 'Uu': warnings.warn('bad escape %s; Unicode escapes are ' 'supported only since Python 3.3' % escape, FutureWarning, stacklevel=nested + 6) else: warnings.warnpy3k('bad escape %s' % escape, DeprecationWarning, stacklevel=nested + 6) return LITERAL, ord(escape[1]) except ValueError: pass raise error, "bogus escape: %s" % repr(escape) def _escape(source, escape, state, nested): # handle escape code in expression code = CATEGORIES.get(escape) if code: return code code = ESCAPES.get(escape) if code: return code try: c = escape[1:2] if c == "x": # hexadecimal escape while source.next in HEXDIGITS and len(escape) < 4: escape = escape + source.get() if len(escape) != 4: raise ValueError return LITERAL, int(escape[2:], 16) & 0xff elif c == "0": # octal escape while source.next in OCTDIGITS and len(escape) < 4: escape = escape + source.get() return LITERAL, int(escape[1:], 8) & 0xff elif c in DIGITS: # octal escape *or* decimal group reference (sigh) if source.next in DIGITS: escape = escape + source.get() if (escape[1] in OCTDIGITS and escape[2] in OCTDIGITS and source.next in OCTDIGITS): # got three octal digits; this is an octal escape escape = escape + source.get() return LITERAL, int(escape[1:], 8) & 0xff # not an octal escape, so this is a group reference group = int(escape[1:]) if group < state.groups: if not state.checkgroup(group): raise error, "cannot refer to open group" if state.lookbehind: import warnings warnings.warn('group references in lookbehind ' 'assertions are not supported', RuntimeWarning, stacklevel=nested + 6) return GROUPREF, group raise ValueError if len(escape) == 2: if sys.py3kwarning and c in ASCIILETTERS: import warnings if c in 'Uu': warnings.warn('bad escape %s; Unicode escapes are ' 'supported only since Python 3.3' % escape, FutureWarning, stacklevel=nested + 6) else: warnings.warnpy3k('bad escape %s' % escape, DeprecationWarning, stacklevel=nested + 6) return LITERAL, ord(escape[1]) except ValueError: pass raise error, "bogus escape: %s" % repr(escape) def _parse_sub(source, state, nested): # parse an alternation: a|b|c items = [] itemsappend = items.append sourcematch = source.match while 1: itemsappend(_parse(source, state, nested + 1)) if sourcematch("|"): continue if not nested: break if not source.next or sourcematch(")", 0): break else: raise error, "pattern not properly closed" if len(items) == 1: return items[0] subpattern = SubPattern(state) subpatternappend = subpattern.append # check if all items share a common prefix while 1: prefix = None for item in items: if not item: break if prefix is None: prefix = item[0] elif item[0] != prefix: break else: # all subitems start with a common "prefix". # move it out of the branch for item in items: del item[0] subpatternappend(prefix) continue # check next one break # check if the branch can be replaced by a character set for item in items: if len(item) != 1 or item[0][0] != LITERAL: break else: # we can store this as a character set instead of a # branch (the compiler may optimize this even more) set = [] setappend = set.append for item in items: setappend(item[0]) subpatternappend((IN, set)) return subpattern subpattern.append((BRANCH, (None, items))) return subpattern def _parse_sub_cond(source, state, condgroup, nested): item_yes = _parse(source, state, nested + 1) if source.match("|"): item_no = _parse(source, state, nested + 1) if source.match("|"): raise error, "conditional backref with more than two branches" else: item_no = None if source.next and not source.match(")", 0): raise error, "pattern not properly closed" subpattern = SubPattern(state) subpattern.append((GROUPREF_EXISTS, (condgroup, item_yes, item_no))) return subpattern _PATTERNENDERS = set("|)") _ASSERTCHARS = set("=!<") _LOOKBEHINDASSERTCHARS = set("=!") _REPEATCODES = set([MIN_REPEAT, MAX_REPEAT]) def _parse(source, state, nested): # parse a simple pattern subpattern = SubPattern(state) # precompute constants into local variables subpatternappend = subpattern.append sourceget = source.get sourcematch = source.match _len = len PATTERNENDERS = _PATTERNENDERS ASSERTCHARS = _ASSERTCHARS LOOKBEHINDASSERTCHARS = _LOOKBEHINDASSERTCHARS REPEATCODES = _REPEATCODES while 1: if source.next in PATTERNENDERS: break # end of subpattern this = sourceget() if this is None: break # end of pattern if state.flags & SRE_FLAG_VERBOSE: # skip whitespace and comments if this in WHITESPACE: continue if this == "#": while 1: this = sourceget() if this in (None, "\n"): break continue if this and this[0] not in SPECIAL_CHARS: subpatternappend((LITERAL, ord(this))) elif this == "[": # character set set = [] setappend = set.append ## if sourcematch(":"): ## pass # handle character classes if sourcematch("^"): setappend((NEGATE, None)) # check remaining characters start = set[:] while 1: this = sourceget() if this == "]" and set != start: break elif this and this[0] == "\\": code1 = _class_escape(source, this, nested + 1) elif this: code1 = LITERAL, ord(this) else: raise error, "unexpected end of regular expression" if sourcematch("-"): # potential range this = sourceget() if this == "]": if code1[0] is IN: code1 = code1[1][0] setappend(code1) setappend((LITERAL, ord("-"))) break elif this: if this[0] == "\\": code2 = _class_escape(source, this, nested + 1) else: code2 = LITERAL, ord(this) if code1[0] != LITERAL or code2[0] != LITERAL: raise error, "bad character range" lo = code1[1] hi = code2[1] if hi < lo: raise error, "bad character range" setappend((RANGE, (lo, hi))) else: raise error, "unexpected end of regular expression" else: if code1[0] is IN: code1 = code1[1][0] setappend(code1) # XXX: <fl> should move set optimization to compiler! if _len(set)==1 and set[0][0] is LITERAL: subpatternappend(set[0]) # optimization elif _len(set)==2 and set[0][0] is NEGATE and set[1][0] is LITERAL: subpatternappend((NOT_LITERAL, set[1][1])) # optimization else: # XXX: <fl> should add charmap optimization here subpatternappend((IN, set)) elif this and this[0] in REPEAT_CHARS: # repeat previous item if this == "?": min, max = 0, 1 elif this == "*": min, max = 0, MAXREPEAT elif this == "+": min, max = 1, MAXREPEAT elif this == "{": if source.next == "}": subpatternappend((LITERAL, ord(this))) continue here = source.tell() min, max = 0, MAXREPEAT lo = hi = "" while source.next in DIGITS: lo = lo + source.get() if sourcematch(","): while source.next in DIGITS: hi = hi + sourceget() else: hi = lo if not sourcematch("}"): subpatternappend((LITERAL, ord(this))) source.seek(here) continue if lo: min = int(lo) if min >= MAXREPEAT: raise OverflowError("the repetition number is too large") if hi: max = int(hi) if max >= MAXREPEAT: raise OverflowError("the repetition number is too large") if max < min: raise error("bad repeat interval") else: raise error, "not supported" # figure out which item to repeat if subpattern: item = subpattern[-1:] else: item = None if not item or (_len(item) == 1 and item[0][0] == AT): raise error, "nothing to repeat" if item[0][0] in REPEATCODES: raise error, "multiple repeat" if sourcematch("?"): subpattern[-1] = (MIN_REPEAT, (min, max, item)) else: subpattern[-1] = (MAX_REPEAT, (min, max, item)) elif this == ".": subpatternappend((ANY, None)) elif this == "(": group = 1 name = None condgroup = None if sourcematch("?"): group = 0 # options if sourcematch("P"): # python extensions if sourcematch("<"): # named group: skip forward to end of name name = "" while 1: char = sourceget() if char is None: raise error, "unterminated name" if char == ">": break name = name + char group = 1 if not name: raise error("missing group name") if not isname(name): raise error("bad character in group name %r" % name) elif sourcematch("="): # named backreference name = "" while 1: char = sourceget() if char is None: raise error, "unterminated name" if char == ")": break name = name + char if not name: raise error("missing group name") if not isname(name): raise error("bad character in backref group name " "%r" % name) gid = state.groupdict.get(name) if gid is None: msg = "unknown group name: {0!r}".format(name) raise error(msg) if state.lookbehind: import warnings warnings.warn('group references in lookbehind ' 'assertions are not supported', RuntimeWarning, stacklevel=nested + 6) subpatternappend((GROUPREF, gid)) continue else: char = sourceget() if char is None: raise error, "unexpected end of pattern" raise error, "unknown specifier: ?P%s" % char elif sourcematch(":"): # non-capturing group group = 2 elif sourcematch("#"): # comment while 1: if source.next is None or source.next == ")": break sourceget() if not sourcematch(")"): raise error, "unbalanced parenthesis" continue elif source.next in ASSERTCHARS: # lookahead assertions char = sourceget() dir = 1 if char == "<": if source.next not in LOOKBEHINDASSERTCHARS: raise error, "syntax error" dir = -1 # lookbehind char = sourceget() state.lookbehind += 1 p = _parse_sub(source, state, nested + 1) if dir < 0: state.lookbehind -= 1 if not sourcematch(")"): raise error, "unbalanced parenthesis" if char == "=": subpatternappend((ASSERT, (dir, p))) else: subpatternappend((ASSERT_NOT, (dir, p))) continue elif sourcematch("("): # conditional backreference group condname = "" while 1: char = sourceget() if char is None: raise error, "unterminated name" if char == ")": break condname = condname + char group = 2 if not condname: raise error("missing group name") if isname(condname): condgroup = state.groupdict.get(condname) if condgroup is None: msg = "unknown group name: {0!r}".format(condname) raise error(msg) else: try: condgroup = int(condname) except ValueError: raise error, "bad character in group name" if state.lookbehind: import warnings warnings.warn('group references in lookbehind ' 'assertions are not supported', RuntimeWarning, stacklevel=nested + 6) else: # flags if not source.next in FLAGS: raise error, "unexpected end of pattern" while source.next in FLAGS: state.flags = state.flags | FLAGS[sourceget()] if group: # parse group contents if group == 2: # anonymous group group = None else: group = state.opengroup(name) if condgroup: p = _parse_sub_cond(source, state, condgroup, nested + 1) else: p = _parse_sub(source, state, nested + 1) if not sourcematch(")"): raise error, "unbalanced parenthesis" if group is not None: state.closegroup(group) subpatternappend((SUBPATTERN, (group, p))) else: while 1: char = sourceget() if char is None: raise error, "unexpected end of pattern" if char == ")": break raise error, "unknown extension" elif this == "^": subpatternappend((AT, AT_BEGINNING)) elif this == "$": subpattern.append((AT, AT_END)) elif this and this[0] == "\\": code = _escape(source, this, state, nested + 1) subpatternappend(code) else: raise error, "parser error" return subpattern def parse(str, flags=0, pattern=None): # parse 're' pattern into list of (opcode, argument) tuples source = Tokenizer(str) if pattern is None: pattern = Pattern() pattern.flags = flags pattern.str = str p = _parse_sub(source, pattern, 0) if (sys.py3kwarning and (p.pattern.flags & SRE_FLAG_LOCALE) and (p.pattern.flags & SRE_FLAG_UNICODE)): import warnings warnings.warnpy3k("LOCALE and UNICODE flags are incompatible", DeprecationWarning, stacklevel=5) tail = source.get() if tail == ")": raise error, "unbalanced parenthesis" elif tail: raise error, "bogus characters at end of regular expression" if not (flags & SRE_FLAG_VERBOSE) and p.pattern.flags & SRE_FLAG_VERBOSE: # the VERBOSE flag was switched on inside the pattern. to be # on the safe side, we'll parse the whole thing again... return parse(str, p.pattern.flags) if flags & SRE_FLAG_DEBUG: p.dump() return p def parse_template(source, pattern): # parse 're' replacement string into list of literals and # group references s = Tokenizer(source) sget = s.get p = [] a = p.append def literal(literal, p=p, pappend=a): if p and p[-1][0] is LITERAL: p[-1] = LITERAL, p[-1][1] + literal else: pappend((LITERAL, literal)) sep = source[:0] if type(sep) is type(""): makechar = chr else: makechar = unichr while 1: this = sget() if this is None: break # end of replacement string if this and this[0] == "\\": # group c = this[1:2] if c == "g": name = "" if s.match("<"): while 1: char = sget() if char is None: raise error, "unterminated group name" if char == ">": break name = name + char if not name: raise error, "missing group name" try: index = int(name) if index < 0: raise error, "negative group number" except ValueError: if not isname(name): raise error, "bad character in group name" try: index = pattern.groupindex[name] except KeyError: msg = "unknown group name: {0!r}".format(name) raise IndexError(msg) a((MARK, index)) elif c == "0": if s.next in OCTDIGITS: this = this + sget() if s.next in OCTDIGITS: this = this + sget() literal(makechar(int(this[1:], 8) & 0xff)) elif c in DIGITS: isoctal = False if s.next in DIGITS: this = this + sget() if (c in OCTDIGITS and this[2] in OCTDIGITS and s.next in OCTDIGITS): this = this + sget() isoctal = True literal(makechar(int(this[1:], 8) & 0xff)) if not isoctal: a((MARK, int(this[1:]))) else: try: this = makechar(ESCAPES[this][1]) except KeyError: if sys.py3kwarning and c in ASCIILETTERS: import warnings warnings.warnpy3k('bad escape %s' % this, DeprecationWarning, stacklevel=4) literal(this) else: literal(this) # convert template to groups and literals lists i = 0 groups = [] groupsappend = groups.append literals = [None] * len(p) for c, s in p: if c is MARK: groupsappend((i, s)) # literal[i] is already None else: literals[i] = s i = i + 1 return groups, literals def expand_template(template, match): g = match.group sep = match.string[:0] groups, literals = template literals = literals[:] try: for index, group in groups: literals[index] = s = g(group) if s is None: raise error, "unmatched group" except IndexError: raise error, "invalid group reference" return sep.join(literals)
Upload File
Create Folder