Mercurial > cpython-lru_cache-weakref
annotate Lib/sysconfig.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 25f856d500e3 |
| children |
| 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 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
4 import sys |
|
59502
135cd8064d6f
Merged revisions 78828 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
58652
diff
changeset
|
5 from os.path import pardir, realpath |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
6 |
|
64855
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
7 __all__ = [ |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
8 '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
|
9 'get_config_var', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
10 'get_config_vars', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
11 'get_makefile_filename', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
12 'get_path', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
13 'get_path_names', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
14 'get_paths', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
15 'get_platform', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
16 'get_python_version', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
17 'get_scheme_names', |
|
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
18 'parse_config_h', |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
19 ] |
|
61897
4e00914ec447
added the list of public APIs in sysconfig
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61896
diff
changeset
|
20 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
21 _INSTALL_SCHEMES = { |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
22 'posix_prefix': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
23 '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
|
24 'platstdlib': '{platbase}/lib/python{py_version_short}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
25 '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
|
26 '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
|
27 'include': |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
28 '{installed_base}/include/python{py_version_short}{abiflags}', |
|
66429
a763ed3d6e8c
Final patch for issue 9807.
Barry Warsaw <barry@python.org>
parents:
66373
diff
changeset
|
29 'platinclude': |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
30 '{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
|
31 'scripts': '{base}/bin', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
32 'data': '{base}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
33 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
34 'posix_home': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
35 'stdlib': '{installed_base}/lib/python', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
36 'platstdlib': '{base}/lib/python', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
37 'purelib': '{base}/lib/python', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
38 'platlib': '{base}/lib/python', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
39 'include': '{installed_base}/include/python', |
|
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
40 'platinclude': '{installed_base}/include/python', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
41 'scripts': '{base}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
42 'data': '{base}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
43 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
44 'nt': { |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
45 'stdlib': '{installed_base}/Lib', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
46 'platstdlib': '{base}/Lib', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
47 'purelib': '{base}/Lib/site-packages', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
48 'platlib': '{base}/Lib/site-packages', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
49 'include': '{installed_base}/Include', |
|
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
50 'platinclude': '{installed_base}/Include', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
51 'scripts': '{base}/Scripts', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
52 'data': '{base}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
53 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
54 'nt_user': { |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
55 'stdlib': '{userbase}/Python{py_version_nodot}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
56 'platstdlib': '{userbase}/Python{py_version_nodot}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
57 '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
|
58 '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
|
59 'include': '{userbase}/Python{py_version_nodot}/Include', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
60 'scripts': '{userbase}/Scripts', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
61 'data': '{userbase}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
62 }, |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
63 'posix_user': { |
|
61765
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
64 'stdlib': '{userbase}/lib/python{py_version_short}', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
65 'platstdlib': '{userbase}/lib/python{py_version_short}', |
|
18dcd903c55e
Merged revisions 81371 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61403
diff
changeset
|
66 '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
|
67 '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
|
68 'include': '{userbase}/include/python{py_version_short}', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
69 'scripts': '{userbase}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
70 'data': '{userbase}', |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
71 }, |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
72 'osx_framework_user': { |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
73 'stdlib': '{userbase}/lib/python', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
74 'platstdlib': '{userbase}/lib/python', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
75 'purelib': '{userbase}/lib/python/site-packages', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
76 'platlib': '{userbase}/lib/python/site-packages', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
77 'include': '{userbase}/include', |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
78 'scripts': '{userbase}/bin', |
|
77675
e989e7586da6
Packaging removal: also revert introduction of sysconfig.cfg.
Éric Araujo <merwok@netwok.org>
parents:
77665
diff
changeset
|
79 'data': '{userbase}', |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
80 }, |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
81 } |
|
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 _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
84 'scripts', 'data') |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
85 |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
86 # 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
|
87 # 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
|
88 _PY_VERSION = sys.version.split()[0] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
89 _PY_VERSION_SHORT = sys.version[:3] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
90 _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
|
91 _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
|
92 _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
|
93 _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
|
94 _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
|
95 _CONFIG_VARS = None |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
96 _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
|
97 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
98 |
|
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
|
99 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
|
100 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
|
101 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
|
102 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
|
103 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
|
104 |
|
59532
236fb0af4404
Merged revisions 78835-78837 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59507
diff
changeset
|
105 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
|
106 _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
|
107 else: |
|
236fb0af4404
Merged revisions 78835-78837 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59507
diff
changeset
|
108 # 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
|
109 # 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
|
110 _PROJECT_BASE = _safe_realpath(os.getcwd()) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
111 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
112 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
|
113 _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
|
114 # PC/VS7.1 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
115 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
|
116 _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
|
117 # PC/AMD64 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
118 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
|
119 _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
|
120 |
|
77886
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
121 # 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
|
122 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
|
123 _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
|
124 |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
125 def _is_python_source_dir(d): |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
126 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
|
127 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
|
128 return True |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
129 return False |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
130 |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
131 _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
|
132 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
|
133 _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
|
134 _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
|
135 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
|
136 _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
|
137 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
|
138 if check_home and _sys_home: |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
139 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
|
140 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
|
141 |
|
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
142 _PYTHON_BUILD = is_python_build(True) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
143 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
144 if _PYTHON_BUILD: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
145 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
|
146 _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
|
147 _INSTALL_SCHEMES[scheme]['platinclude'] = '{projectbase}/.' |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
148 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
149 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
150 def _subst_vars(s, local_vars): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
151 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
152 return s.format(**local_vars) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
153 except KeyError: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
154 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
155 return s.format(**os.environ) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
156 except KeyError as var: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
157 raise AttributeError('{%s}' % var) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
158 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
159 def _extend_dict(target_dict, other_dict): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
160 target_keys = target_dict.keys() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
161 for key, value in other_dict.items(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
162 if key in target_keys: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
163 continue |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
164 target_dict[key] = value |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
165 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
166 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
167 def _expand_vars(scheme, vars): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
168 res = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
169 if vars is None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
170 vars = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
171 _extend_dict(vars, get_config_vars()) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
172 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
173 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
|
174 if os.name in ('posix', 'nt'): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
175 value = os.path.expanduser(value) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
176 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
|
177 return res |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
178 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
179 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
180 def _get_default_scheme(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
181 if os.name == 'posix': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
182 # 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
|
183 return 'posix_prefix' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
184 return os.name |
|
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 _getuserbase(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
188 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
|
189 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
190 def joinuser(*args): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
191 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
|
192 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
193 if os.name == "nt": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
194 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
|
195 if env_base: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
196 return env_base |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
197 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
198 return joinuser(base, "Python") |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
199 |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
200 if sys.platform == "darwin": |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
201 framework = get_config_var("PYTHONFRAMEWORK") |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
202 if framework: |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
203 if env_base: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
204 return env_base |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
205 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
206 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
|
207 sys.version_info[:2]) |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
208 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
209 if env_base: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
210 return env_base |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
211 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
212 return joinuser("~", ".local") |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
213 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
214 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
215 def _parse_makefile(filename, vars=None): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
216 """Parse a Makefile-style file. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
217 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
218 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
|
219 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
|
220 used instead of a new dictionary. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
221 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
222 # 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
|
223 # like old-style Setup files). |
|
86213
406529adf156
Issue #19205: Don't import the 're' module in site and sysconfig module to
Christian Heimes <christian@cheimes.de>
parents:
84150
diff
changeset
|
224 import re |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
225 _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
|
226 _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
|
227 _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
|
228 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
229 if vars is None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
230 vars = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
231 done = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
232 notdone = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
233 |
|
65605
1a08f4a9eafd
Issue #6011: sysconfig and distutils.sysconfig use the surrogateescape error
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65331
diff
changeset
|
234 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
|
235 lines = f.readlines() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
236 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
237 for line in lines: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
238 if line.startswith('#') or line.strip() == '': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
239 continue |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
240 m = _variable_rx.match(line) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
241 if m: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
242 n, v = m.group(1, 2) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
243 v = v.strip() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
244 # `$$' is a literal `$' in make |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
245 tmpv = v.replace('$$', '') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
246 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
247 if "$" in tmpv: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
248 notdone[n] = v |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
249 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
250 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
251 v = int(v) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
252 except ValueError: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
253 # insert literal `$' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
254 done[n] = v.replace('$$', '$') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
255 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
256 done[n] = v |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
257 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
258 # do variable interpolation here |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
259 variables = list(notdone.keys()) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
260 |
|
63108
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
261 # 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
|
262 # 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
|
263 # 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
|
264 # 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
|
265 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
|
266 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
267 while len(variables) > 0: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
268 for name in tuple(variables): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
269 value = notdone[name] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
270 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
|
271 if m is not None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
272 n = m.group(1) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
273 found = True |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
274 if n in done: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
275 item = str(done[n]) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
276 elif n in notdone: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
277 # get it on a subsequent round |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
278 found = False |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
279 elif n in os.environ: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
280 # 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
|
281 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
|
282 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
283 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
|
284 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
|
285 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
|
286 item = "" |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
287 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
288 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
|
289 found = False |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
290 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
291 else: |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
292 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
|
293 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
294 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
295 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
|
296 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
297 if found: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
298 after = value[m.end():] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
299 value = value[:m.start()] + item + after |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
300 if "$" in after: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
301 notdone[name] = value |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
302 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
303 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
304 value = int(value) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
305 except ValueError: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
306 done[name] = value.strip() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
307 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
308 done[name] = value |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
309 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
|
310 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
311 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
|
312 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
|
313 |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
314 name = name[3:] |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
315 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
|
316 done[name] = value |
|
9c766cd211db
Without this patch the value of sysconfig.get_config_var('LDSHARED')
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
62950
diff
changeset
|
317 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
318 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
|
319 # 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
|
320 # 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
|
321 done[name] = value |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
322 variables.remove(name) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
323 |
|
65206
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
324 # strip spurious spaces |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
325 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
|
326 if isinstance(v, str): |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
327 done[k] = v.strip() |
|
25d078739c2a
Issue #9437: Fix building C extensions with non-default LDFLAGS.
Antoine Pitrou <solipsis@pitrou.net>
parents:
64855
diff
changeset
|
328 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
329 # save the results in the global dictionary |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
330 vars.update(done) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
331 return vars |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
332 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
333 |
|
64855
96db640674cb
Issue 9877: expose sysconfig.get_makefile_filename() in the public API.
Barry Warsaw <barry@python.org>
parents:
64850
diff
changeset
|
334 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
|
335 """Return the path of the Makefile.""" |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
336 if _PYTHON_BUILD: |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
337 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
|
338 if hasattr(sys, 'abiflags'): |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
339 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
|
340 else: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
341 config_dir_name = 'config' |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
342 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
|
343 |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
344 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
|
345 """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
|
346 import pprint |
|
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
347 vars = {} |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
348 # 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
|
349 makefile = get_makefile_filename() |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
350 try: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
351 _parse_makefile(makefile, vars) |
|
81039
7d69d04522e3
Replace IOError with OSError (#16715)
Andrew Svetlov <andrew.svetlov@gmail.com>
parents:
80524
diff
changeset
|
352 except OSError as e: |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
353 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
|
354 if hasattr(e, "strerror"): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
355 msg = msg + " (%s)" % e.strerror |
|
81039
7d69d04522e3
Replace IOError with OSError (#16715)
Andrew Svetlov <andrew.svetlov@gmail.com>
parents:
80524
diff
changeset
|
356 raise OSError(msg) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
357 # load the installed pyconfig.h: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
358 config_h = get_config_h_filename() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
359 try: |
|
65331
46956a25c264
Explicitly close some files (from issue #10093)
Antoine Pitrou <solipsis@pitrou.net>
parents:
65226
diff
changeset
|
360 with open(config_h) as f: |
|
46956a25c264
Explicitly close some files (from issue #10093)
Antoine Pitrou <solipsis@pitrou.net>
parents:
65226
diff
changeset
|
361 parse_config_h(f, vars) |
|
81039
7d69d04522e3
Replace IOError with OSError (#16715)
Andrew Svetlov <andrew.svetlov@gmail.com>
parents:
80524
diff
changeset
|
362 except OSError as e: |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
363 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
|
364 if hasattr(e, "strerror"): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
365 msg = msg + " (%s)" % e.strerror |
|
81039
7d69d04522e3
Replace IOError with OSError (#16715)
Andrew Svetlov <andrew.svetlov@gmail.com>
parents:
80524
diff
changeset
|
366 raise OSError(msg) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
367 # 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
|
368 # -- 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
|
369 # the scripts are in another directory. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
370 if _PYTHON_BUILD: |
|
86492
c554194240fc
Issue #18235: Fix the sysconfig variables LDSHARED and BLDSHARED under AIX.
Antoine Pitrou <solipsis@pitrou.net>
parents:
82870
diff
changeset
|
371 vars['BLDSHARED'] = vars['LDSHARED'] |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
372 |
|
79778
66959d419369
Issue #15298: fix an OS X bootstrap issue with _sysconfigdata.py.
Trent Nelson <trent@trent.me>
parents:
79744
diff
changeset
|
373 # 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
|
374 # _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
|
375 # 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
|
376 # `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
|
377 # _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
|
378 # 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
|
379 # 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
|
380 # 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
|
381 # _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
|
382 # 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
|
383 # get_platform() succeeds. |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
384 name = '_sysconfigdata' |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
385 if 'darwin' in sys.platform: |
|
84150
1e141c2cc0d7
Issue #17177: Stop using imp in sysconfig
Brett Cannon <brett@python.org>
parents:
82871
diff
changeset
|
386 import types |
|
1e141c2cc0d7
Issue #17177: Stop using imp in sysconfig
Brett Cannon <brett@python.org>
parents:
82871
diff
changeset
|
387 module = types.ModuleType(name) |
|
79805
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
388 module.build_time_vars = vars |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
389 sys.modules[name] = module |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
390 |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
391 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
|
392 if hasattr(sys, "gettotalrefcount"): |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
393 pybuilddir += '-pydebug' |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
394 os.makedirs(pybuilddir, exist_ok=True) |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
395 destfile = os.path.join(pybuilddir, name + '.py') |
|
1250498db562
Issue #15298: refactor previous fix from 66959d419369.
Trent Nelson <trent@trent.me>
parents:
79778
diff
changeset
|
396 |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
397 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
|
398 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
|
399 ' 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
|
400 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
|
401 pprint.pprint(vars, stream=f) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
402 |
|
79744
24d52d3060e8
Issue #15298: ensure _sysconfigdata is generated in build directory,
Trent Nelson <trent@trent.me>
parents:
78295
diff
changeset
|
403 # 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
|
404 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
|
405 f.write(pybuilddir) |
|
24d52d3060e8
Issue #15298: ensure _sysconfigdata is generated in build directory,
Trent Nelson <trent@trent.me>
parents:
78295
diff
changeset
|
406 |
|
72975
70160b53117f
Issue #13150: sysconfig no longer parses the Makefile and config.h files
Antoine Pitrou <solipsis@pitrou.net>
parents:
72854
diff
changeset
|
407 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
|
408 """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
|
409 # _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
|
410 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
|
411 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
|
412 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
413 def _init_non_posix(vars): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
414 """Initialize the module as appropriate for NT""" |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
415 # set basic install directories |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
416 vars['LIBDEST'] = get_path('stdlib') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
417 vars['BINLIBDEST'] = get_path('platstdlib') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
418 vars['INCLUDEPY'] = get_path('include') |
|
82869
8f91014c8f00
- Issue #16754: Fix the incorrect shared library extension on linux. Introduce
doko@ubuntu.com
parents:
81844
diff
changeset
|
419 vars['EXT_SUFFIX'] = '.pyd' |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
420 vars['EXE'] = '.exe' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
421 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
|
422 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
|
423 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
424 # |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
425 # public APIs |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
426 # |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
427 |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
428 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
429 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
|
430 """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
|
431 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
432 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
|
433 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
|
434 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
|
435 """ |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
436 if vars is None: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
437 vars = {} |
|
86213
406529adf156
Issue #19205: Don't import the 're' module in site and sysconfig module to
Christian Heimes <christian@cheimes.de>
parents:
84150
diff
changeset
|
438 import re |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
439 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
|
440 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
|
441 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
442 while True: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
443 line = fp.readline() |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
444 if not line: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
445 break |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
446 m = define_rx.match(line) |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
447 if m: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
448 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
|
449 try: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
450 v = int(v) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
451 except ValueError: |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
452 pass |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
453 vars[n] = v |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
454 else: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
455 m = undef_rx.match(line) |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
456 if m: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
457 vars[m.group(1)] = 0 |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
458 return vars |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
459 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
460 |
|
58652
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
461 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
|
462 """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
|
463 if _PYTHON_BUILD: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
464 if os.name == "nt": |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
465 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
|
466 else: |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
467 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
|
468 else: |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
469 inc_dir = get_path('platinclude') |
|
d3127f6de16c
Merged revisions 77919,77921-77922 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58558
diff
changeset
|
470 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
|
471 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
472 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
473 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
|
474 """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
|
475 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
|
476 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
477 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
478 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
|
479 """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
|
480 return _SCHEME_KEYS |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
481 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
482 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
483 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
|
484 """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
|
485 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
486 ``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
|
487 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
|
488 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
489 if expand: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
490 return _expand_vars(scheme, vars) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
491 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
492 return _INSTALL_SCHEMES[scheme] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
493 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
494 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
495 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
|
496 """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
|
497 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
498 ``scheme`` is the install scheme name. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
499 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
500 return get_paths(scheme, vars, expand)[name] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
501 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
502 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
503 def get_config_vars(*args): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
504 """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
|
505 variables relevant for the current platform. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
506 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
507 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
|
508 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
|
509 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
510 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
|
511 each argument in the configuration variable dictionary. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
512 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
513 global _CONFIG_VARS |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
514 if _CONFIG_VARS is None: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
515 _CONFIG_VARS = {} |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
516 # 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
|
517 # 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
|
518 # Distutils. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
519 _CONFIG_VARS['prefix'] = _PREFIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
520 _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
521 _CONFIG_VARS['py_version'] = _PY_VERSION |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
522 _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
|
523 _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
|
524 _CONFIG_VARS['installed_base'] = _BASE_PREFIX |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
525 _CONFIG_VARS['base'] = _PREFIX |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74492
diff
changeset
|
526 _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
|
527 _CONFIG_VARS['platbase'] = _EXEC_PREFIX |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
528 _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
|
529 try: |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
530 _CONFIG_VARS['abiflags'] = sys.abiflags |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
531 except AttributeError: |
|
cead04b3c5ed
sys.abiflags may not be defined on all platforms.
Barry Warsaw <barry@python.org>
parents:
66429
diff
changeset
|
532 # 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
|
533 _CONFIG_VARS['abiflags'] = '' |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
534 |
|
79480
15949f34e08f
#16135: Removal of OS/2 support (Python code partial cleanup)
Jesus Cea <jcea@jcea.es>
parents:
78295
diff
changeset
|
535 if os.name == 'nt': |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
536 _init_non_posix(_CONFIG_VARS) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
537 if os.name == 'posix': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
538 _init_posix(_CONFIG_VARS) |
|
87345
331b7a8bb830
A fix for issue 19555 on Windows.
Barry Warsaw <barry@python.org>
parents:
87325
diff
changeset
|
539 # For backward compatibility, see issue19555 |
|
331b7a8bb830
A fix for issue 19555 on Windows.
Barry Warsaw <barry@python.org>
parents:
87325
diff
changeset
|
540 SO = _CONFIG_VARS.get('EXT_SUFFIX') |
|
331b7a8bb830
A fix for issue 19555 on Windows.
Barry Warsaw <barry@python.org>
parents:
87325
diff
changeset
|
541 if SO is not None: |
|
331b7a8bb830
A fix for issue 19555 on Windows.
Barry Warsaw <barry@python.org>
parents:
87325
diff
changeset
|
542 _CONFIG_VARS['SO'] = SO |
|
61403
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
543 # 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
|
544 # 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
|
545 # the init-function. |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
546 _CONFIG_VARS['userbase'] = _getuserbase() |
|
3fae7cb49209
Merged revisions 80967 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59532
diff
changeset
|
547 |
|
78295
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
548 # 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
|
549 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
|
550 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
|
551 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
|
552 # 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
|
553 # 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
|
554 # 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
|
555 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
|
556 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
|
557 else: |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
558 # 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
|
559 # 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
|
560 # 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
|
561 # exists. |
|
d2f448dbc30d
Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
Richard Oudkerk <shibturn@gmail.com>
parents:
78216
diff
changeset
|
562 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
|
563 _CONFIG_VARS['srcdir'] = _safe_realpath(srcdir) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
564 |
|
81844
502b139b3b19
Issue #13590: OS X Xcode 4 - improve support for universal extension modules
Ned Deily <nad@acm.org>
parents:
74491
diff
changeset
|
565 # 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
|
566 # multi-architecture, multi-os-version installers |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
567 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
|
568 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
|
569 _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
|
570 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
571 if args: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
572 vals = [] |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
573 for name in args: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
574 vals.append(_CONFIG_VARS.get(name)) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
575 return vals |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
576 else: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
577 return _CONFIG_VARS |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
578 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
579 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
580 def get_config_var(name): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
581 """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
|
582 'get_config_vars()'. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
583 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
584 Equivalent to get_config_vars().get(name) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
585 """ |
|
87325
fedc2b8fbb6e
- Issue #19555: Restore sysconfig.get_config_var('SO'), with a
Barry Warsaw <barry@python.org>
parents:
86493
diff
changeset
|
586 if name == 'SO': |
|
fedc2b8fbb6e
- Issue #19555: Restore sysconfig.get_config_var('SO'), with a
Barry Warsaw <barry@python.org>
parents:
86493
diff
changeset
|
587 import warnings |
|
87578
25f856d500e3
Issue #19760: Silence sysconfig's 'SO' key deprecation warnings in tests.
Serhiy Storchaka <storchaka@gmail.com>
parents:
87345
diff
changeset
|
588 warnings.warn('SO is deprecated, use EXT_SUFFIX', DeprecationWarning, 2) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
589 return get_config_vars().get(name) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
590 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
591 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
592 def get_platform(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
593 """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
|
594 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
595 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
|
596 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
|
597 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
|
598 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
|
599 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
|
600 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
|
601 important. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
602 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
603 Examples of returned values: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
604 linux-i586 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
605 linux-alpha (?) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
606 solaris-2.6-sun4u |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
607 irix-5.3 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
608 irix64-6.2 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
609 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
610 Windows will return one of: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
611 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
|
612 win-ia64 (64bit Windows on Itanium) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
613 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
|
614 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
615 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
|
616 """ |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
617 if os.name == 'nt': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
618 # sniff sys.version for architecture. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
619 prefix = " bit (" |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
620 i = sys.version.find(prefix) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
621 if i == -1: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
622 return sys.platform |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
623 j = sys.version.find(")", i) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
624 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
|
625 if look == 'amd64': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
626 return 'win-amd64' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
627 if look == 'itanium': |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
628 return 'win-ia64' |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
629 return sys.platform |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
630 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
631 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
|
632 # 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
|
633 return sys.platform |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
634 |
|
77886
cfbe51e66749
- Issue #14330: For cross builds, don't use host python, use host search paths
doko@ubuntu.com
parents:
77755
diff
changeset
|
635 # 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
|
636 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
|
637 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
|
638 |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
639 # Try to distinguish various flavours of Unix |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
640 osname, host, release, version, machine = os.uname() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
641 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
642 # 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
|
643 # (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
|
644 osname = osname.lower().replace('/', '') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
645 machine = machine.replace(' ', '_') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
646 machine = machine.replace('/', '-') |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
647 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
648 if osname[:5] == "linux": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
649 # 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
|
650 # i386, etc. |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
651 # XXX what about Alpha, SPARC, etc? |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
652 return "%s-%s" % (osname, machine) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
653 elif osname[:5] == "sunos": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
654 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
|
655 osname = "solaris" |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
656 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
|
657 # 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
|
658 # 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
|
659 # 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
|
660 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
|
661 machine += ".%s" % bitness[sys.maxsize] |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
662 # 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
|
663 elif osname[:4] == "irix": # could be "irix64"! |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
664 return "%s-%s" % (osname, release) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
665 elif osname[:3] == "aix": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
666 return "%s-%s.%s" % (osname, version, release) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
667 elif osname[:6] == "cygwin": |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
668 osname = "cygwin" |
|
86213
406529adf156
Issue #19205: Don't import the 're' module in site and sysconfig module to
Christian Heimes <christian@cheimes.de>
parents:
84150
diff
changeset
|
669 import re |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
670 rel_re = re.compile(r'[\d.]+') |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
671 m = rel_re.match(release) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
672 if m: |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
673 release = m.group() |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
674 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
|
675 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
|
676 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
|
677 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
|
678 osname, release, machine) |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
679 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
680 return "%s-%s-%s" % (osname, release, machine) |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
681 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
682 |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
683 def get_python_version(): |
|
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff
changeset
|
684 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
|
685 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
686 |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
687 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
|
688 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
|
689 if index == 0: |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
690 print('%s: ' % (title)) |
|
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
691 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
|
692 |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
693 |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
694 def _main(): |
|
66373
66e0f5c65158
r84925 followup: add docstring for get_makefile_filename (+PEP 257 fixes)
Éric Araujo <merwok@netwok.org>
parents:
65993
diff
changeset
|
695 """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
|
696 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
|
697 _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
|
698 return |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
699 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
|
700 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
|
701 print('Current installation scheme: "%s"' % _get_default_scheme()) |
|
70411
e5ff8ca071ee
Minor cleanup in sysconfig.
Éric Araujo <merwok@netwok.org>
parents:
70194
diff
changeset
|
702 print() |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
703 _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
|
704 print() |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
705 _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
|
706 |
|
70194
1a31c3be88b1
initial import of the packaging package in the standard library
Tarek Ziade <tarek@ziade.org>
parents:
70144
diff
changeset
|
707 |
|
61896
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
708 if __name__ == '__main__': |
|
703287a99939
Made sysconfig a script that displays useful information - #8770
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
61765
diff
changeset
|
709 _main() |
