diff options
author | Greg Ward <gward@python.net> | 2000-10-03 03:31:05 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-10-03 03:31:05 (GMT) |
commit | 9216cfe7ba0257f10790f919e50283114a3476dd (patch) | |
tree | 1b6735fb2bfae0dd6dd8fd8dd37927e895066f08 | |
parent | d52755f41c1545a1e6dcc0f38ebed0a1fd1fa5e8 (diff) | |
download | cpython-9216cfe7ba0257f10790f919e50283114a3476dd.zip cpython-9216cfe7ba0257f10790f919e50283114a3476dd.tar.gz cpython-9216cfe7ba0257f10790f919e50283114a3476dd.tar.bz2 |
Added a long-winded comment (and commented-out comment to go with out)
about how it would be nice to write absolute paths to the temporary
byte-compilation script, but this doesn't work because it screws up the
trailing-slash trickery done to 'prefix' in build_py's 'byte_compile()'
method.
Fixed to use 'execute()' instead of 'os.remove()' to remove the temporary
script: now it doesn't blow up in dry-run mode!
-rw-r--r-- | Lib/distutils/util.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index 8a8b77a..7522ee2 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -353,6 +353,21 @@ def byte_compile (py_files, from distutils.util import byte_compile files = [ """) + + # XXX would be nice to write absolute filenames, just for + # safety's sake (script should be more robust in the face of + # chdir'ing before running it). But this requires abspath'ing + # 'prefix' as well, and that breaks the hack in build_lib's + # 'byte_compile()' method that carefully tacks on a trailing + # slash (os.sep really) to make sure the prefix here is "just + # right". This whole prefix business is rather delicate -- the + # problem is that it's really a directory, but I'm treating it + # as a dumb string, so trailing slashes and so forth matter. + + #py_files = map(os.path.abspath, py_files) + #if prefix: + # prefix = os.path.abspath(prefix) + script.write(string.join(map(repr, py_files), ",\n") + "]\n") script.write(""" byte_compile(files, optimize=%s, force=%s, @@ -369,7 +384,8 @@ byte_compile(files, optimize=%s, force=%s, elif optimize == 2: cmd.insert(1, "-OO") spawn(cmd, verbose=verbose, dry_run=dry_run) - os.remove(script_name) + execute(os.remove, (script_name,), "removing %s" % script_name, + verbose=verbose, dry_run=dry_run) # "Direct" byte-compilation: use the py_compile module to compile # right here, right now. Note that the script generated in indirect |