Mercurial > cpython-lru_cache-weakref
annotate Misc/python-config.in @ 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 | 7b165c7ab7ef |
| children |
| rev | line source |
|---|---|
|
39161
02fa1015cbcc
Patch #1523356: fix determining include dirs in python-config.
Georg Brandl <georg@python.org>
parents:
37730
diff
changeset
|
1 #!@EXENAME@ |
|
65527
82b083c96a39
One more change for issue 9807, by Matthias Klose.
Barry Warsaw <barry@python.org>
parents:
65389
diff
changeset
|
2 # -*- python -*- |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
3 |
|
84947
7b165c7ab7ef
- Issue #18257: Fix readlink usage in python-config. Install the python
doko@ubuntu.com
parents:
82870
diff
changeset
|
4 # Keep this script in sync with python-config.sh.in |
|
7b165c7ab7ef
- Issue #18257: Fix readlink usage in python-config. Install the python
doko@ubuntu.com
parents:
82870
diff
changeset
|
5 |
|
60420
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
6 import getopt |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
7 import os |
|
60420
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
8 import sys |
|
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
9 import sysconfig |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
10 |
|
43169
ee1b3eb7a013
Bug #1074: make python-config with Py3k.
Georg Brandl <georg@python.org>
parents:
41554
diff
changeset
|
11 valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', |
|
78291
ddf15cd9be4a
- Issue #15458: python-config gets a new option --configdir to print the
Barry Warsaw <barry@python.org>
parents:
78264
diff
changeset
|
12 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir'] |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
13 |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
14 def exit_with_usage(code=1): |
|
43169
ee1b3eb7a013
Bug #1074: make python-config with Py3k.
Georg Brandl <georg@python.org>
parents:
41554
diff
changeset
|
15 print("Usage: {0} [{1}]".format( |
|
ee1b3eb7a013
Bug #1074: make python-config with Py3k.
Georg Brandl <georg@python.org>
parents:
41554
diff
changeset
|
16 sys.argv[0], '|'.join('--'+opt for opt in valid_opts)), file=sys.stderr) |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
17 sys.exit(code) |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
18 |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
19 try: |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
20 opts, args = getopt.getopt(sys.argv[1:], '', valid_opts) |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
21 except getopt.error: |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
22 exit_with_usage() |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
23 |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
24 if not opts: |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
25 exit_with_usage() |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
26 |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
27 pyver = sysconfig.get_config_var('VERSION') |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
28 getvar = sysconfig.get_config_var |
|
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
29 |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
30 opt_flags = [flag for (flag, val) in opts] |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
31 |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
32 if '--help' in opt_flags: |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
33 exit_with_usage(code=0) |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
34 |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
35 for opt in opt_flags: |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
36 if opt == '--prefix': |
|
60420
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
37 print(sysconfig.get_config_var('prefix')) |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
38 |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
39 elif opt == '--exec-prefix': |
|
60420
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
40 print(sysconfig.get_config_var('exec_prefix')) |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
41 |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
42 elif opt in ('--includes', '--cflags'): |
|
60420
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
43 flags = ['-I' + sysconfig.get_path('include'), |
|
712970b019f7
Fix python-config to use the new sysconfig module; silences deprecation warnings.
Collin Winter <collinw@gmail.com>
parents:
59739
diff
changeset
|
44 '-I' + sysconfig.get_path('platinclude')] |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
45 if opt == '--cflags': |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
46 flags.extend(getvar('CFLAGS').split()) |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
47 print(' '.join(flags)) |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
48 |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
49 elif opt in ('--libs', '--ldflags'): |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
50 libs = getvar('LIBS').split() + getvar('SYSLIBS').split() |
|
65527
82b083c96a39
One more change for issue 9807, by Matthias Klose.
Barry Warsaw <barry@python.org>
parents:
65389
diff
changeset
|
51 libs.append('-lpython' + pyver + sys.abiflags) |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
52 # add the prefix/lib/pythonX.Y/config dir, but only if there is no |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
53 # shared library in prefix/lib/. |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
54 if opt == '--ldflags': |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
55 if not getvar('Py_ENABLE_SHARED'): |
|
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
56 libs.insert(0, '-L' + getvar('LIBPL')) |
|
78264
2d4f290ea71c
Issue #14197: For OS X framework builds, ensure links to the shared
Ned Deily <nad@acm.org>
parents:
65527
diff
changeset
|
57 if not getvar('PYTHONFRAMEWORK'): |
|
2d4f290ea71c
Issue #14197: For OS X framework builds, ensure links to the shared
Ned Deily <nad@acm.org>
parents:
65527
diff
changeset
|
58 libs.extend(getvar('LINKFORSHARED').split()) |
|
59739
e43233d80064
Merged revisions 79082,79084 via svnmerge from
Collin Winter <collinw@gmail.com>
parents:
43169
diff
changeset
|
59 print(' '.join(libs)) |
|
37730
5304059e7de3
Patch #1161914: Add python-config.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff
changeset
|
60 |
|
64682
6d282b58d90a
9806: add --extension-suffix option to python-config.
Georg Brandl <georg@python.org>
parents:
60420
diff
changeset
|
61 elif opt == '--extension-suffix': |
|
82869
8f91014c8f00
- Issue #16754: Fix the incorrect shared library extension on linux. Introduce
doko@ubuntu.com
parents:
78264
diff
changeset
|
62 print(sysconfig.get_config_var('EXT_SUFFIX')) |
|
65389
932f97bfbdc0
First (uncontroversial) part of issue 9807.
Barry Warsaw <barry@python.org>
parents:
64686
diff
changeset
|
63 |
|
932f97bfbdc0
First (uncontroversial) part of issue 9807.
Barry Warsaw <barry@python.org>
parents:
64686
diff
changeset
|
64 elif opt == '--abiflags': |
|
932f97bfbdc0
First (uncontroversial) part of issue 9807.
Barry Warsaw <barry@python.org>
parents:
64686
diff
changeset
|
65 print(sys.abiflags) |
|
78291
ddf15cd9be4a
- Issue #15458: python-config gets a new option --configdir to print the
Barry Warsaw <barry@python.org>
parents:
78264
diff
changeset
|
66 |
|
ddf15cd9be4a
- Issue #15458: python-config gets a new option --configdir to print the
Barry Warsaw <barry@python.org>
parents:
78264
diff
changeset
|
67 elif opt == '--configdir': |
|
ddf15cd9be4a
- Issue #15458: python-config gets a new option --configdir to print the
Barry Warsaw <barry@python.org>
parents:
78264
diff
changeset
|
68 print(sysconfig.get_config_var('LIBPL')) |
