Mercurial > cpython-lru_cache-weakref
annotate Lib/distutils/command/install_scripts.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 | 3e26c9033306 |
| children |
| rev | line source |
|---|---|
|
12682
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
1 """distutils.command.install_scripts |
|
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
2 |
|
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
3 Implements the Distutils 'install_scripts' command, for installing |
|
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
4 Python scripts.""" |
|
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
5 |
|
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
6 # contributed by Bastian Kleineidam |
|
7c89ee40730f
Added comment/docstring/revision header.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12678
diff
changeset
|
7 |
|
12678
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
8 import os |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
9 from distutils.core import Command |
|
23668
ca87119255eb
Make setup.py less chatty by default.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
21852
diff
changeset
|
10 from distutils import log |
|
12678
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
11 from stat import ST_MODE |
|
12675
de435a59a4d5
Patch from Bastien Kleineidam:
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
12 |
|
43026
a6d3930b5613
General cleanup, raise normalization in Lib/distutils.
Collin Winter <collinw@gmail.com>
parents:
42084
diff
changeset
|
13 |
|
a6d3930b5613
General cleanup, raise normalization in Lib/distutils.
Collin Winter <collinw@gmail.com>
parents:
42084
diff
changeset
|
14 class install_scripts(Command): |
|
12675
de435a59a4d5
Patch from Bastien Kleineidam:
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
15 |
|
12778
0263a99d0eb2
Tweaked description, help text.
Greg Ward <gward@python.net>
parents:
12744
diff
changeset
|
16 description = "install scripts (Python or otherwise)" |
|
12675
de435a59a4d5
Patch from Bastien Kleineidam:
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
17 |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
18 user_options = [ |
|
12778
0263a99d0eb2
Tweaked description, help text.
Greg Ward <gward@python.net>
parents:
12744
diff
changeset
|
19 ('install-dir=', 'd', "directory to install scripts to"), |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
20 ('build-dir=','b', "build directory (where to install from)"), |
|
14540
35ae8dff8ed0
Added --force (-f) option to force installation (including bytecode
Greg Ward <gward@python.net>
parents:
12783
diff
changeset
|
21 ('force', 'f', "force installation (overwrite existing files)"), |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
22 ('skip-build', None, "skip the build steps"), |
|
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
23 ] |
|
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
24 |
|
14829
b1f220f636ed
Added 'boolean_options' list to support config file parsing.
Greg Ward <gward@python.net>
parents:
14540
diff
changeset
|
25 boolean_options = ['force', 'skip-build'] |
|
b1f220f636ed
Added 'boolean_options' list to support config file parsing.
Greg Ward <gward@python.net>
parents:
14540
diff
changeset
|
26 |
|
43026
a6d3930b5613
General cleanup, raise normalization in Lib/distutils.
Collin Winter <collinw@gmail.com>
parents:
42084
diff
changeset
|
27 def initialize_options(self): |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
28 self.install_dir = None |
|
14540
35ae8dff8ed0
Added --force (-f) option to force installation (including bytecode
Greg Ward <gward@python.net>
parents:
12783
diff
changeset
|
29 self.force = 0 |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
30 self.build_dir = None |
|
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
31 self.skip_build = None |
|
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
32 |
|
43026
a6d3930b5613
General cleanup, raise normalization in Lib/distutils.
Collin Winter <collinw@gmail.com>
parents:
42084
diff
changeset
|
33 def finalize_options(self): |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
34 self.set_undefined_options('build', ('build_scripts', 'build_dir')) |
|
14948
7acb8bbc215b
Standardized whitespace around function calls.
Greg Ward <gward@python.net>
parents:
14829
diff
changeset
|
35 self.set_undefined_options('install', |
|
7acb8bbc215b
Standardized whitespace around function calls.
Greg Ward <gward@python.net>
parents:
14829
diff
changeset
|
36 ('install_scripts', 'install_dir'), |
|
7acb8bbc215b
Standardized whitespace around function calls.
Greg Ward <gward@python.net>
parents:
14829
diff
changeset
|
37 ('force', 'force'), |
|
7acb8bbc215b
Standardized whitespace around function calls.
Greg Ward <gward@python.net>
parents:
14829
diff
changeset
|
38 ('skip_build', 'skip_build'), |
|
7acb8bbc215b
Standardized whitespace around function calls.
Greg Ward <gward@python.net>
parents:
14829
diff
changeset
|
39 ) |
|
12675
de435a59a4d5
Patch from Bastien Kleineidam:
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
40 |
|
43026
a6d3930b5613
General cleanup, raise normalization in Lib/distutils.
Collin Winter <collinw@gmail.com>
parents:
42084
diff
changeset
|
41 def run(self): |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
42 if not self.skip_build: |
|
12783
b91b35c1d4c0
Some far-reaching naming changes:
Greg Ward <gward@python.net>
parents:
12778
diff
changeset
|
43 self.run_command('build_scripts') |
|
14540
35ae8dff8ed0
Added --force (-f) option to force installation (including bytecode
Greg Ward <gward@python.net>
parents:
12783
diff
changeset
|
44 self.outfiles = self.copy_tree(self.build_dir, self.install_dir) |
|
12678
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
45 if os.name == 'posix': |
|
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
46 # Set the executable bits (owner, group, and world) on |
|
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
47 # all the scripts we just installed. |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
48 for file in self.get_outputs(): |
|
12678
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
49 if self.dry_run: |
|
23672
edc423940cd6
Fix bug in recent change to logging code.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23668
diff
changeset
|
50 log.info("changing mode of %s", file) |
|
12678
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
51 else: |
|
42084
229c28cb9afb
Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
33965
diff
changeset
|
52 mode = ((os.stat(file)[ST_MODE]) | 0o555) & 0o7777 |
|
23668
ca87119255eb
Make setup.py less chatty by default.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
21852
diff
changeset
|
53 log.info("changing mode of %s to %o", file, mode) |
|
12678
875e677236a7
Deleted some cruft.
Gregory P. Smith <greg@mad-scientist.com>
parents:
12675
diff
changeset
|
54 os.chmod(file, mode) |
|
12675
de435a59a4d5
Patch from Bastien Kleineidam:
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
55 |
|
43026
a6d3930b5613
General cleanup, raise normalization in Lib/distutils.
Collin Winter <collinw@gmail.com>
parents:
42084
diff
changeset
|
56 def get_inputs(self): |
|
12702
58ad6196d81f
Added 'get_inputs()' methods, needed by the "install" command's
Gregory P. Smith <greg@mad-scientist.com>
parents:
12682
diff
changeset
|
57 return self.distribution.scripts or [] |
|
58ad6196d81f
Added 'get_inputs()' methods, needed by the "install" command's
Gregory P. Smith <greg@mad-scientist.com>
parents:
12682
diff
changeset
|
58 |
|
12744
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
59 def get_outputs(self): |
|
eeafab8c925b
Bastian Kleineidam: the "build_scripts" command and changes
Greg Ward <gward@python.net>
parents:
12702
diff
changeset
|
60 return self.outfiles or [] |
