Mercurial > cpython-lru_cache-weakref
annotate Lib/sysconfig.py @ 84007:dbfbdf2b5c19 3.3
Fix #17967: For ftp urls CWD to target instead of hopping to each directory
towards target. This fixes a bug where target is accessible, but parent
directories are restricted.
| author | Senthil Kumaran <senthil@uthcode.com> |
|---|---|
| date | Sat, 01 Jun 2013 08:27:06 -0700 |
| parents | 14f0c9e595a5 |
| children | c554194240fc f6a6b4eed5b0 |
| rev | line source |
|---|---|
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
1 """Access to Python's configuration information.""" |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
2 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
3 import os |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
4 import re |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
5 import sys |
|
59502
135cd8064d6f
Merged revisions 78828 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
58652
diff
changeset
|
6 from os.path import pardir, realpath |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
7 |
|
64855
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
8 __all__ = [ |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
9 'get_config_h_filename', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
10 'get_config_var', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
11 'get_config_vars', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
12 'get_makefile_filename', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
13 'get_path', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
14 'get_path_names', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
15 'get_paths', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
16 'get_platform', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
17 'get_python_version', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
18 'get_scheme_names', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
19 'parse_config_h', |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
20 ] |
|
61897
4e00914ec447
added the list of public APIs in sysconfig
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61896
diff
changeset
|
21 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
22 _INSTALL_SCHEMES = { |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
23 'posix_prefix': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
24 'stdlib': '{installed_base}/lib/python{py_version_short}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
25 'platstdlib': '{platbase}/lib/python{py_version_short}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
26 'purelib': '{base}/lib/python{py_version_short}/site-packages', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
27 'platlib': '{platbase}/lib/python{py_version_short}/site-packages', |
|
66429
a763ed3d6e8c
Final patch for issue 9807.
Barry Warsaw <barry@python.org>
parents:
66373
diff
changeset
|
28 'include': |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
29 '{installed_base}/include/python{py_version_short}{abiflags}', |
|
66429
a763ed3d6e8c
Final patch for issue 9807.
Barry Warsaw <barry@python.org>
parents:
66373
diff
changeset
|
30 'platinclude': |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
31 '{installed_platbase}/include/python{py_version_short}{abiflags}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
32 'scripts': '{base}/bin', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
33 'data': '{base}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
34 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
35 'posix_home': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
36 'stdlib': '{installed_base}/lib/python', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
37 'platstdlib': '{base}/lib/python', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
38 'purelib': '{base}/lib/python', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
39 'platlib': '{base}/lib/python', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
40 'include': '{installed_base}/include/python', |
|
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
41 'platinclude': '{installed_base}/include/python', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
42 'scripts': '{base}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
43 'data': '{base}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
44 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
45 'nt': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
46 'stdlib': '{installed_base}/Lib', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
47 'platstdlib': '{base}/Lib', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
48 'purelib': '{base}/Lib/site-packages', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
49 'platlib': '{base}/Lib/site-packages', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
50 'include': '{installed_base}/Include', |
|
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
51 'platinclude': '{installed_base}/Include', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
52 'scripts': '{base}/Scripts', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
53 'data': '{base}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
54 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
55 'os2': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
56 'stdlib': '{installed_base}/Lib', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
57 'platstdlib': '{base}/Lib', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
58 'purelib': '{base}/Lib/site-packages', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
59 'platlib': '{base}/Lib/site-packages', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
60 'include': '{installed_base}/Include', |
|
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
61 'platinclude': '{installed_base}/Include', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
62 'scripts': '{base}/Scripts', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
63 'data': '{base}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
64 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
65 'os2_home': { |
|
61765
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
66 'stdlib': '{userbase}/lib/python{py_version_short}', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
67 'platstdlib': '{userbase}/lib/python{py_version_short}', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
68 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
69 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
70 'include': '{userbase}/include/python{py_version_short}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
71 'scripts': '{userbase}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
72 'data': '{userbase}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
73 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
74 'nt_user': { |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
75 'stdlib': '{userbase}/Python{py_version_nodot}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
76 'platstdlib': '{userbase}/Python{py_version_nodot}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
77 'purelib': '{userbase}/Python{py_version_nodot}/site-packages', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
78 'platlib': '{userbase}/Python{py_version_nodot}/site-packages', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
79 'include': '{userbase}/Python{py_version_nodot}/Include', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
80 'scripts': '{userbase}/Scripts', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
81 'data': '{userbase}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
82 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
83 'posix_user': { |
|
61765
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
84 'stdlib': '{userbase}/lib/python{py_version_short}', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
85 'platstdlib': '{userbase}/lib/python{py_version_short}', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
86 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
87 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
88 'include': '{userbase}/include/python{py_version_short}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
89 'scripts': '{userbase}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
90 'data': '{userbase}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
91 }, |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
92 'osx_framework_user': { |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
93 'stdlib': '{userbase}/lib/python', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
94 'platstdlib': '{userbase}/lib/python', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
95 'purelib': '{userbase}/lib/python/site-packages', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
96 'platlib': '{userbase}/lib/python/site-packages', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
97 'include': '{userbase}/include', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
98 'scripts': '{userbase}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
99 'data': '{userbase}', |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
100 }, |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
101 } |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
102 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
103 _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
104 'scripts', 'data') |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
105 |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
106 # FIXME don't rely on sys.version here, its format is an implementation detail |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
107 # of CPython, use sys.version_info or sys.hexversion |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
108 _PY_VERSION = sys.version.split()[0] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
109 _PY_VERSION_SHORT = sys.version[:3] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
110 _PY_VERSION_SHORT_NO_DOT = _PY_VERSION[0] + _PY_VERSION[2] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
111 _PREFIX = os.path.normpath(sys.prefix) |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
112 _BASE_PREFIX = os.path.normpath(sys.base_prefix) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
113 _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
114 _BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
115 _CONFIG_VARS = None |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
116 _USER_BASE = None |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
117 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
118 |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
119 def _safe_realpath(path): |
|
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
120 try: |
|
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
121 return realpath(path) |
|
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
122 except OSError: |
|
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
123 return path |
|
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
124 |
|
59532
236fb0af4404
Merged revisions 78835-78837 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59507
diff
changeset
|
125 if sys.executable: |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
126 _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) |
|
59532
236fb0af4404
Merged revisions 78835-78837 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59507
diff
changeset
|
127 else: |
|
236fb0af4404
Merged revisions 78835-78837 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59507
diff
changeset
|
128 # sys.executable can be empty if argv[0] has been changed and Python is |
|
236fb0af4404
Merged revisions 78835-78837 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59507
diff
changeset
|
129 # unable to retrieve the real program name |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
130 _PROJECT_BASE = _safe_realpath(os.getcwd()) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
131 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
132 if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
133 _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
134 # PC/VS7.1 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
135 if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
136 _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
137 # PC/AMD64 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
138 if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
139 _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
140 |
|
77886
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
141 # set for cross builds |
|
77888
86ac09f118be
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77886
diff
changeset
|
142 if "_PYTHON_PROJECT_BASE" in os.environ: |
|
86ac09f118be
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77886
diff
changeset
|
143 _PROJECT_BASE = _safe_realpath(os.environ["_PYTHON_PROJECT_BASE"]) |
|
77886
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
144 |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
145 def _is_python_source_dir(d): |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
146 for fn in ("Setup.dist", "Setup.local"): |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
147 if os.path.isfile(os.path.join(d, "Modules", fn)): |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
148 return True |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
149 return False |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
150 |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
151 _sys_home = getattr(sys, '_home', None) |
|
77167
564caa2c61ae
Addressed some buildbot errors and comments on the checkin by Antoine on python-dev.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
77154
diff
changeset
|
152 if _sys_home and os.name == 'nt' and \ |
|
564caa2c61ae
Addressed some buildbot errors and comments on the checkin by Antoine on python-dev.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
77154
diff
changeset
|
153 _sys_home.lower().endswith(('pcbuild', 'pcbuild\\amd64')): |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
154 _sys_home = os.path.dirname(_sys_home) |
|
77182
a45c86f5ba96
Fixed _sys_home computation and added diagnostics for Windows buildbot failures.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
77167
diff
changeset
|
155 if _sys_home.endswith('pcbuild'): # must be amd64 |
|
a45c86f5ba96
Fixed _sys_home computation and added diagnostics for Windows buildbot failures.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
77167
diff
changeset
|
156 _sys_home = os.path.dirname(_sys_home) |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
157 def is_python_build(check_home=False): |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
158 if check_home and _sys_home: |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
159 return _is_python_source_dir(_sys_home) |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
160 return _is_python_source_dir(_PROJECT_BASE) |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
161 |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
162 _PYTHON_BUILD = is_python_build(True) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
163 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
164 if _PYTHON_BUILD: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
165 for scheme in ('posix_prefix', 'posix_home'): |
|
64850
3a4afaa96ac3
Reverted changes which were inadvertently committed.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
64849
diff
changeset
|
166 _INSTALL_SCHEMES[scheme]['include'] = '{srcdir}/Include' |
|
62336
e43ab52b57b2
Fix for issue #8577: without this patch test_distutils
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61897
diff
changeset
|
167 _INSTALL_SCHEMES[scheme]['platinclude'] = '{projectbase}/.' |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
168 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
169 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
170 def _subst_vars(s, local_vars): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
171 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
172 return s.format(**local_vars) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
173 except KeyError: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
174 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
175 return s.format(**os.environ) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
176 except KeyError as var: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
177 raise AttributeError('{%s}' % var) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
178 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
179 def _extend_dict(target_dict, other_dict): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
180 target_keys = target_dict.keys() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
181 for key, value in other_dict.items(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
182 if key in target_keys: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
183 continue |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
184 target_dict[key] = value |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
185 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
186 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
187 def _expand_vars(scheme, vars): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
188 res = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
189 if vars is None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
190 vars = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
191 _extend_dict(vars, get_config_vars()) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
192 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
193 for key, value in _INSTALL_SCHEMES[scheme].items(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
194 if os.name in ('posix', 'nt'): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
195 value = os.path.expanduser(value) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
196 res[key] = os.path.normpath(_subst_vars(value, vars)) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
197 return res |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
198 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
199 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
200 def _get_default_scheme(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
201 if os.name == 'posix': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
202 # the default scheme for posix is posix_prefix |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
203 return 'posix_prefix' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
204 return os.name |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
205 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
206 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
207 def _getuserbase(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
208 env_base = os.environ.get("PYTHONUSERBASE", None) |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
209 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
210 def joinuser(*args): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
211 return os.path.expanduser(os.path.join(*args)) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
212 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
213 # what about 'os2emx', 'riscos' ? |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
214 if os.name == "nt": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
215 base = os.environ.get("APPDATA") or "~" |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
216 if env_base: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
217 return env_base |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
218 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
219 return joinuser(base, "Python") |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
220 |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
221 if sys.platform == "darwin": |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
222 framework = get_config_var("PYTHONFRAMEWORK") |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
223 if framework: |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
224 if env_base: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
225 return env_base |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
226 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
227 return joinuser("~", "Library", framework, "%d.%d" % |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
228 sys.version_info[:2]) |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
229 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
230 if env_base: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
231 return env_base |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
232 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
233 return joinuser("~", ".local") |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
234 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
235 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
236 def _parse_makefile(filename, vars=None): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
237 """Parse a Makefile-style file. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
238 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
239 A dictionary containing name/value pairs is returned. If an |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
240 optional dictionary is passed in as the second argument, it is |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
241 used instead of a new dictionary. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
242 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
243 # Regexes needed for parsing Makefile (and similar syntaxes, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
244 # like old-style Setup files). |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
245 _variable_rx = re.compile("([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
246 _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
247 _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
248 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
249 if vars is None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
250 vars = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
251 done = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
252 notdone = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
253 |
|
65605
1a08f4a9eafd
Issue #6011: sysconfig and distutils.sysconfig use the surrogateescape error
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65331
diff
changeset
|
254 with open(filename, errors="surrogateescape") as f: |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
255 lines = f.readlines() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
256 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
257 for line in lines: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
258 if line.startswith('#') or line.strip() == '': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
259 continue |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
260 m = _variable_rx.match(line) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
261 if m: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
262 n, v = m.group(1, 2) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
263 v = v.strip() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
264 # `$$' is a literal `$' in make |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
265 tmpv = v.replace('$$', '') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
266 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
267 if "$" in tmpv: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
268 notdone[n] = v |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
269 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
270 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
271 v = int(v) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
272 except ValueError: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
273 # insert literal `$' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
274 done[n] = v.replace('$$', '$') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
275 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
276 done[n] = v |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
277 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
278 # do variable interpolation here |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
279 variables = list(notdone.keys()) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
280 |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
281 # Variables with a 'PY_' prefix in the makefile. These need to |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
282 # be made available without that prefix through sysconfig. |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
283 # Special care is needed to ensure that variable expansion works, even |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
284 # if the expansion uses the name without a prefix. |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
285 renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
286 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
287 while len(variables) > 0: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
288 for name in tuple(variables): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
289 value = notdone[name] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
290 m = _findvar1_rx.search(value) or _findvar2_rx.search(value) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
291 if m is not None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
292 n = m.group(1) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
293 found = True |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
294 if n in done: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
295 item = str(done[n]) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
296 elif n in notdone: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
297 # get it on a subsequent round |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
298 found = False |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
299 elif n in os.environ: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
300 # do it like make: fall back to environment |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
301 item = os.environ[n] |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
302 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
303 elif n in renamed_variables: |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
304 if (name.startswith('PY_') and |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
305 name[3:] in renamed_variables): |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
306 item = "" |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
307 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
308 elif 'PY_' + n in notdone: |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
309 found = False |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
310 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
311 else: |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
312 item = str(done['PY_' + n]) |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
313 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
314 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
315 done[n] = item = "" |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
316 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
317 if found: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
318 after = value[m.end():] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
319 value = value[:m.start()] + item + after |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
320 if "$" in after: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
321 notdone[name] = value |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
322 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
323 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
324 value = int(value) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
325 except ValueError: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
326 done[name] = value.strip() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
327 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
328 done[name] = value |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
329 variables.remove(name) |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
330 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
331 if name.startswith('PY_') \ |
|
70352
4a7bb2ef636a
Issue #12070: Fix the Makefile parser of the sysconfig module to handle
Victor Stinner <victor.stinner@haypocalc.com>
parents:
70144
diff
changeset
|
332 and name[3:] in renamed_variables: |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
333 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
334 name = name[3:] |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
335 if name not in done: |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
336 done[name] = value |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
337 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
338 else: |
|
70352
4a7bb2ef636a
Issue #12070: Fix the Makefile parser of the sysconfig module to handle
Victor Stinner <victor.stinner@haypocalc.com>
parents:
70144
diff
changeset
|
339 # bogus variable reference (e.g. "prefix=$/opt/python"); |
|
4a7bb2ef636a
Issue #12070: Fix the Makefile parser of the sysconfig module to handle
Victor Stinner <victor.stinner@haypocalc.com>
parents:
70144
diff
changeset
|
340 # just drop it since we can't deal |
|
4a7bb2ef636a
Issue #12070: Fix the Makefile parser of the sysconfig module to handle
Victor Stinner <victor.stinner@haypocalc.com>
parents:
70144
diff
changeset
|
341 done[name] = value |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
342 variables.remove(name) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
343 |
|
65206
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
344 # strip spurious spaces |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
345 for k, v in done.items(): |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
346 if isinstance(v, str): |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
347 done[k] = v.strip() |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
348 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
349 # save the results in the global dictionary |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
350 vars.update(done) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
351 return vars |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
352 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
353 |
|
64855
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
354 def get_makefile_filename(): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
355 """Return the path of the Makefile.""" |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
356 if _PYTHON_BUILD: |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
357 return os.path.join(_sys_home or _PROJECT_BASE, "Makefile") |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
358 if hasattr(sys, 'abiflags'): |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
359 config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
360 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
361 config_dir_name = 'config' |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
362 return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile') |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
363 |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
364 def _generate_posix_vars(): |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
365 """Generate the Python module containing build-time variables.""" |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
366 import pprint |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
367 vars = {} |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
368 # load the installed Makefile: |
|
64855
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
369 makefile = get_makefile_filename() |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
370 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
371 _parse_makefile(makefile, vars) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
372 except IOError as e: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
373 msg = "invalid Python installation: unable to open %s" % makefile |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
374 if hasattr(e, "strerror"): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
375 msg = msg + " (%s)" % e.strerror |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
376 raise IOError(msg) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
377 # load the installed pyconfig.h: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
378 config_h = get_config_h_filename() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
379 try: |
|
65331
46956a25c264
Explicitly close some files (from issue #10093)
Antoine Pitrou <solipsis@pitrou.net>
parents:
65226
diff
changeset
|
380 with open(config_h) as f: |
|
46956a25c264
Explicitly close some files (from issue #10093)
Antoine Pitrou <solipsis@pitrou.net>
parents:
65226
diff
changeset
|
381 parse_config_h(f, vars) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
382 except IOError as e: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
383 msg = "invalid Python installation: unable to open %s" % config_h |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
384 if hasattr(e, "strerror"): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
385 msg = msg + " (%s)" % e.strerror |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
386 raise IOError(msg) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
387 # On AIX, there are wrong paths to the linker scripts in the Makefile |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
388 # -- these paths are relative to the Python source, but when installed |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
389 # the scripts are in another directory. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
390 if _PYTHON_BUILD: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
391 vars['LDSHARED'] = vars['BLDSHARED'] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
392 |
|
79778
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
393 # There's a chicken-and-egg situation on OS X with regards to the |
|
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
394 # _sysconfigdata module after the changes introduced by #15298: |
|
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
395 # get_config_vars() is called by get_platform() as part of the |
|
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
396 # `make pybuilddir.txt` target -- which is a precursor to the |
|
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
397 # _sysconfigdata.py module being constructed. Unfortunately, |
|
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
398 # get_config_vars() eventually calls _init_posix(), which attempts |
|
79805
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
399 # to import _sysconfigdata, which we won't have built yet. In order |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
400 # for _init_posix() to work, if we're on Darwin, just mock up the |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
401 # _sysconfigdata module manually and populate it with the build vars. |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
402 # This is more than sufficient for ensuring the subsequent call to |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
403 # get_platform() succeeds. |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
404 name = '_sysconfigdata' |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
405 if 'darwin' in sys.platform: |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
406 import imp |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
407 module = imp.new_module(name) |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
408 module.build_time_vars = vars |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
409 sys.modules[name] = module |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
410 |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
411 pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version[:3]) |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
412 if hasattr(sys, "gettotalrefcount"): |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
413 pybuilddir += '-pydebug' |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
414 os.makedirs(pybuilddir, exist_ok=True) |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
415 destfile = os.path.join(pybuilddir, name + '.py') |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
416 |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
417 with open(destfile, 'w', encoding='utf8') as f: |
|
73017
677e625e2ef1
Issue #13150: Add a comment in _sysconfigdata to explain the origin of this file
Victor Stinner <victor.stinner@haypocalc.com>
parents:
72975
diff
changeset
|
418 f.write('# system configuration generated and used by' |
|
677e625e2ef1
Issue #13150: Add a comment in _sysconfigdata to explain the origin of this file
Victor Stinner <victor.stinner@haypocalc.com>
parents:
72975
diff
changeset
|
419 ' the sysconfig module\n') |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
420 f.write('build_time_vars = ') |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
421 pprint.pprint(vars, stream=f) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
422 |
|
79744
24d52d3060e8
Issue #15298: ensure _sysconfigdata is generated in build directory,
Trent Nelson <trent@trent.me>
parents:
78295
diff
changeset
|
423 # Create file used for sys.path fixup -- see Modules/getpath.c |
|
24d52d3060e8
Issue #15298: ensure _sysconfigdata is generated in build directory,
Trent Nelson <trent@trent.me>
parents:
78295
diff
changeset
|
424 with open('pybuilddir.txt', 'w', encoding='ascii') as f: |
|
24d52d3060e8
Issue #15298: ensure _sysconfigdata is generated in build directory,
Trent Nelson <trent@trent.me>
parents:
78295
diff
changeset
|
425 f.write(pybuilddir) |
|
24d52d3060e8
Issue #15298: ensure _sysconfigdata is generated in build directory,
Trent Nelson <trent@trent.me>
parents:
78295
diff
changeset
|
426 |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
427 def _init_posix(vars): |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
428 """Initialize the module as appropriate for POSIX systems.""" |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
429 # _sysconfigdata is generated at build time, see _generate_posix_vars() |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
430 from _sysconfigdata import build_time_vars |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
431 vars.update(build_time_vars) |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
432 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
433 def _init_non_posix(vars): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
434 """Initialize the module as appropriate for NT""" |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
435 # set basic install directories |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
436 vars['LIBDEST'] = get_path('stdlib') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
437 vars['BINLIBDEST'] = get_path('platstdlib') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
438 vars['INCLUDEPY'] = get_path('include') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
439 vars['SO'] = '.pyd' |
|
82869
8f91014c8f00
- Issue #16754: Fix the incorrect shared library extension on linux. Introduce
doko@ubuntu.com
parents:
81844
diff
changeset
|
440 vars['EXT_SUFFIX'] = '.pyd' |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
441 vars['EXE'] = '.exe' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
442 vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT |
|
65226
ded61e26b841
Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65206
diff
changeset
|
443 vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
444 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
445 # |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
446 # public APIs |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
447 # |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
448 |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
449 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
450 def parse_config_h(fp, vars=None): |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
451 """Parse a config.h-style file. |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
452 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
453 A dictionary containing name/value pairs is returned. If an |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
454 optional dictionary is passed in as the second argument, it is |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
455 used instead of a new dictionary. |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
456 """ |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
457 if vars is None: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
458 vars = {} |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
459 define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
460 undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
461 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
462 while True: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
463 line = fp.readline() |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
464 if not line: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
465 break |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
466 m = define_rx.match(line) |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
467 if m: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
468 n, v = m.group(1, 2) |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
469 try: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
470 v = int(v) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
471 except ValueError: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
472 pass |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
473 vars[n] = v |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
474 else: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
475 m = undef_rx.match(line) |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
476 if m: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
477 vars[m.group(1)] = 0 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
478 return vars |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
479 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
480 |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
481 def get_config_h_filename(): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
482 """Return the path of pyconfig.h.""" |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
483 if _PYTHON_BUILD: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
484 if os.name == "nt": |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
485 inc_dir = os.path.join(_sys_home or _PROJECT_BASE, "PC") |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
486 else: |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
487 inc_dir = _sys_home or _PROJECT_BASE |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
488 else: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
489 inc_dir = get_path('platinclude') |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
490 return os.path.join(inc_dir, 'pyconfig.h') |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
491 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
492 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
493 def get_scheme_names(): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
494 """Return a tuple containing the schemes names.""" |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
495 return tuple(sorted(_INSTALL_SCHEMES)) |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
496 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
497 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
498 def get_path_names(): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
499 """Return a tuple containing the paths names.""" |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
500 return _SCHEME_KEYS |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
501 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
502 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
503 def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
504 """Return a mapping containing an install scheme. |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
505 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
506 ``scheme`` is the install scheme name. If not provided, it will |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
507 return the default scheme for the current platform. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
508 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
509 if expand: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
510 return _expand_vars(scheme, vars) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
511 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
512 return _INSTALL_SCHEMES[scheme] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
513 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
514 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
515 def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
516 """Return a path corresponding to the scheme. |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
517 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
518 ``scheme`` is the install scheme name. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
519 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
520 return get_paths(scheme, vars, expand)[name] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
521 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
522 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
523 def get_config_vars(*args): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
524 """With no arguments, return a dictionary of all configuration |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
525 variables relevant for the current platform. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
526 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
527 On Unix, this means every variable defined in Python's installed Makefile; |
|
78216
d76b83803e7e
Issue #15184: Ensure consistent results of OS X configuration
Ned Deily <nad@acm.org>
parents:
78126
diff
changeset
|
528 On Windows it's a much smaller set. |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
529 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
530 With arguments, return a list of values that result from looking up |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
531 each argument in the configuration variable dictionary. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
532 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
533 global _CONFIG_VARS |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
534 if _CONFIG_VARS is None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
535 _CONFIG_VARS = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
536 # Normalized versions of prefix and exec_prefix are handy to have; |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
537 # in fact, these are the standard versions used most places in the |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
538 # Distutils. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
539 _CONFIG_VARS['prefix'] = _PREFIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
540 _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
541 _CONFIG_VARS['py_version'] = _PY_VERSION |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
542 _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
543 _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
544 _CONFIG_VARS['installed_base'] = _BASE_PREFIX |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
545 _CONFIG_VARS['base'] = _PREFIX |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
546 _CONFIG_VARS['installed_platbase'] = _BASE_EXEC_PREFIX |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
547 _CONFIG_VARS['platbase'] = _EXEC_PREFIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
548 _CONFIG_VARS['projectbase'] = _PROJECT_BASE |
|
66438
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
549 try: |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
550 _CONFIG_VARS['abiflags'] = sys.abiflags |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
551 except AttributeError: |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
552 # sys.abiflags may not be defined on all platforms. |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
553 _CONFIG_VARS['abiflags'] = '' |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
554 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
555 if os.name in ('nt', 'os2'): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
556 _init_non_posix(_CONFIG_VARS) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
557 if os.name == 'posix': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
558 _init_posix(_CONFIG_VARS) |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
559 # Setting 'userbase' is done below the call to the |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
560 # init function to enable using 'get_config_var' in |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
561 # the init-function. |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
562 _CONFIG_VARS['userbase'] = _getuserbase() |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
563 |
|
78295
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
564 # Always convert srcdir to an absolute path |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
565 srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE) |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
566 if os.name == 'posix': |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
567 if _PYTHON_BUILD: |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
568 # If srcdir is a relative path (typically '.' or '..') |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
569 # then it should be interpreted relative to the directory |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
570 # containing Makefile. |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
571 base = os.path.dirname(get_makefile_filename()) |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
572 srcdir = os.path.join(base, srcdir) |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
573 else: |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
574 # srcdir is not meaningful since the installation is |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
575 # spread about the filesystem. We choose the |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
576 # directory containing the Makefile since we know it |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
577 # exists. |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
578 srcdir = os.path.dirname(get_makefile_filename()) |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
579 _CONFIG_VARS['srcdir'] = _safe_realpath(srcdir) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
580 |
|
81844
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
581 # OS X platforms require special customization to handle |
|
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
582 # multi-architecture, multi-os-version installers |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
583 if sys.platform == 'darwin': |
|
81844
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
584 import _osx_support |
|
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
585 _osx_support.customize_config_vars(_CONFIG_VARS) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
586 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
587 if args: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
588 vals = [] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
589 for name in args: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
590 vals.append(_CONFIG_VARS.get(name)) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
591 return vals |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
592 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
593 return _CONFIG_VARS |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
594 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
595 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
596 def get_config_var(name): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
597 """Return the value of a single variable using the dictionary returned by |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
598 'get_config_vars()'. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
599 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
600 Equivalent to get_config_vars().get(name) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
601 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
602 return get_config_vars().get(name) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
603 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
604 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
605 def get_platform(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
606 """Return a string that identifies the current platform. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
607 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
608 This is used mainly to distinguish platform-specific build directories and |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
609 platform-specific built distributions. Typically includes the OS name |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
610 and version and the architecture (as supplied by 'os.uname()'), |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
611 although the exact information included depends on the OS; eg. for IRIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
612 the architecture isn't particularly important (IRIX only runs on SGI |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
613 hardware), but for Linux the kernel version isn't particularly |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
614 important. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
615 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
616 Examples of returned values: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
617 linux-i586 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
618 linux-alpha (?) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
619 solaris-2.6-sun4u |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
620 irix-5.3 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
621 irix64-6.2 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
622 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
623 Windows will return one of: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
624 win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
625 win-ia64 (64bit Windows on Itanium) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
626 win32 (all others - specifically, sys.platform is returned) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
627 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
628 For other non-POSIX platforms, currently just returns 'sys.platform'. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
629 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
630 if os.name == 'nt': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
631 # sniff sys.version for architecture. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
632 prefix = " bit (" |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
633 i = sys.version.find(prefix) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
634 if i == -1: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
635 return sys.platform |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
636 j = sys.version.find(")", i) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
637 look = sys.version[i+len(prefix):j].lower() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
638 if look == 'amd64': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
639 return 'win-amd64' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
640 if look == 'itanium': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
641 return 'win-ia64' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
642 return sys.platform |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
643 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
644 if os.name != "posix" or not hasattr(os, 'uname'): |
|
78216
d76b83803e7e
Issue #15184: Ensure consistent results of OS X configuration
Ned Deily <nad@acm.org>
parents:
78126
diff
changeset
|
645 # XXX what about the architecture? NT is Intel or Alpha |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
646 return sys.platform |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
647 |
|
77886
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
648 # Set for cross builds explicitly |
|
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
649 if "_PYTHON_HOST_PLATFORM" in os.environ: |
|
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
650 return os.environ["_PYTHON_HOST_PLATFORM"] |
|
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
651 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
652 # Try to distinguish various flavours of Unix |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
653 osname, host, release, version, machine = os.uname() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
654 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
655 # Convert the OS name to lowercase, remove '/' characters |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
656 # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
657 osname = osname.lower().replace('/', '') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
658 machine = machine.replace(' ', '_') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
659 machine = machine.replace('/', '-') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
660 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
661 if osname[:5] == "linux": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
662 # At least on Linux/Intel, 'machine' is the processor -- |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
663 # i386, etc. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
664 # XXX what about Alpha, SPARC, etc? |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
665 return "%s-%s" % (osname, machine) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
666 elif osname[:5] == "sunos": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
667 if release[0] >= "5": # SunOS 5 == Solaris 2 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
668 osname = "solaris" |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
669 release = "%d.%s" % (int(release[0]) - 3, release[2:]) |
|
74489
37efae3bf912
Yet another emergency fix for #13803 bootstrap issue: Under Solaris, distutils doesn't include bitness in the directory name
Jesus Cea <jcea@jcea.es>
parents:
70352
diff
changeset
|
670 # We can't use "platform.architecture()[0]" because a |
|
37efae3bf912
Yet another emergency fix for #13803 bootstrap issue: Under Solaris, distutils doesn't include bitness in the directory name
Jesus Cea <jcea@jcea.es>
parents:
70352
diff
changeset
|
671 # bootstrap problem. We use a dict to get an error |
|
37efae3bf912
Yet another emergency fix for #13803 bootstrap issue: Under Solaris, distutils doesn't include bitness in the directory name
Jesus Cea <jcea@jcea.es>
parents:
70352
diff
changeset
|
672 # if some suspicious happens. |
|
37efae3bf912
Yet another emergency fix for #13803 bootstrap issue: Under Solaris, distutils doesn't include bitness in the directory name
Jesus Cea <jcea@jcea.es>
parents:
70352
diff
changeset
|
673 bitness = {2147483647:"32bit", 9223372036854775807:"64bit"} |
|
74491
147ad02875fa
And yet another emergency fix for #13803 bootstrap issue: Under Solaris, distutils doesn't include bitness in the directory name
Jesus Cea <jcea@jcea.es>
parents:
74489
diff
changeset
|
674 machine += ".%s" % bitness[sys.maxsize] |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
675 # fall through to standard osname-release-machine representation |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
676 elif osname[:4] == "irix": # could be "irix64"! |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
677 return "%s-%s" % (osname, release) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
678 elif osname[:3] == "aix": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
679 return "%s-%s.%s" % (osname, version, release) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
680 elif osname[:6] == "cygwin": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
681 osname = "cygwin" |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
682 rel_re = re.compile(r'[\d.]+') |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
683 m = rel_re.match(release) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
684 if m: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
685 release = m.group() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
686 elif osname[:6] == "darwin": |
|
81844
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
687 import _osx_support |
|
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
688 osname, release, machine = _osx_support.get_platform_osx( |
|
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
689 get_config_vars(), |
|
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
690 osname, release, machine) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
691 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
692 return "%s-%s-%s" % (osname, release, machine) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
693 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
694 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
695 def get_python_version(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
696 return _PY_VERSION_SHORT |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
697 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
698 |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
699 def _print_dict(title, data): |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
700 for index, (key, value) in enumerate(sorted(data.items())): |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
701 if index == 0: |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
702 print('%s: ' % (title)) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
703 print('\t%s = "%s"' % (key, value)) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
704 |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
705 |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
706 def _main(): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
707 """Display all information sysconfig detains.""" |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
708 if '--generate-posix-vars' in sys.argv: |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
709 _generate_posix_vars() |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
710 return |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
711 print('Platform: "%s"' % get_platform()) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
712 print('Python version: "%s"' % get_python_version()) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
713 print('Current installation scheme: "%s"' % _get_default_scheme()) |
|
70411
e5ff8ca071ee
Minor cleanup in sysconfig.
Éric Araujo <merwok@netwok.org>
parents:
70194
diff
changeset
|
714 print() |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
715 _print_dict('Paths', get_paths()) |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
716 print() |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
717 _print_dict('Variables', get_config_vars()) |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
718 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
719 |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
720 if __name__ == '__main__': |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
721 _main() |
