Guido van Rossum [Tue, 26 Oct 1999 00:12:20 +0000 (00:12 +0000)]
Fix PR117. The error message is "keywords must be strings". Perhaps
not as descriptive as what Barry suggests, but this also catches the
(in my opinion important) case where some other C code besides apply()
constructs a kwdict that doesn't have the right format. All the other
possibilities of getting it wrong (non-dict, wrong keywords etc) are
already caught so this makes sense to check here.
Greg Ward [Sat, 23 Oct 1999 19:25:05 +0000 (19:25 +0000)]
Don't assume GNU tar -- generate tar file and compress in separate steps.
Now supports the full range of intended formats (tar, ztar, gztar, zip).
"-f" no longer a short option for "--formats" -- conflicts with new
global option "--force"!
Fred Drake [Wed, 20 Oct 1999 21:50:31 +0000 (21:50 +0000)]
Module/script to parse the reference count data file and make the
information accessible to Python.
When run as a script, just dumps the information back out in the data
format, with functions in sorted order and a blank line between
different functions.
Jeremy Hylton [Mon, 18 Oct 1999 22:25:22 +0000 (22:25 +0000)]
print a warning if the password will be echoed.
At import time, getpass will be bound to the appropriate
platform-specific function. If the platform's echo-disabler is not
available, default_getpass, which prints the warning, will be used
Guido van Rossum [Mon, 18 Oct 1999 21:41:43 +0000 (21:41 +0000)]
Fix for PR#111: when using the inplace option, give the new file the
same permissions as the old file, plugging a security hole.
(Not using exactly the suggested bugfix.)
Guido van Rossum [Sun, 10 Oct 1999 21:14:25 +0000 (21:14 +0000)]
Jeremy writes:
I found the following patch helpful in tracking down a bug in some
code. I had appended time, the module, instead of time.time(). Not
sure if it is generally true that printing the repr of the object is
good, but I expect that most unpicklable things will have fairly
information and concise reprs (like files or sockets or modules).
Withdraw the change that Fred just checked in -- it was a poorly
documented feature, not a bug, to ignore I/O errors in read().
The new docstring explains the reason for the feature:
"""
this is designed so that you can specifiy a list of potential
configuration file locations (e.g. current directory, user's home
directory, systemwide directory), and all existing configuration files
in the list will be read.
"""
Also add a lower-level function, readfp(), which takes an open file
object (and optionally a filename).
XXX There are some other problems with this module, but I don't have
time to dig into these; in particular, there are complaints that the
%(name)s substitution from the [DEFAULTS] section doesn't work
correctly.
Greg Ward [Sun, 3 Oct 1999 21:02:48 +0000 (21:02 +0000)]
Added 'force' and 'quiet' (negative alias for 'verbose') to the
global options table.
Every Command instance now has its own copies of the global options,
which automatically fallback to the Distribution instance. Changes:
- initialize them in constructor
- added '__getattr__()' to handle the fallback logic
- changed every 'self.distribution.{verbose,dry_run}' in Command to
'self.{verbose,dry_run}'.
- filesystem utility methods ('copy_file()' et al) don't take 'update'
parameter anymore -- instead we pass 'not force' to the underlying
function as 'update'
Changed parsing of command line so that global options apply to all
commands as well -- that's how (eg.) Command.verbose will be initialized.
Simplified 'make_file()' to use 'newer_group()' (from util module).
Deleted some cruft.
Some docstring tweaks.
Greg Ward [Sun, 3 Oct 1999 20:50:41 +0000 (20:50 +0000)]
Fixed 'mkpath()' to normalize the path right off the bat -- cleans up
the code a bit and should make it work under Windows even with trailing
backslash.
Fixed a couple of docstrings.
Added comment about 'make_file()' possibly being redundant and unnecessary.
Greg Ward [Sun, 3 Oct 1999 20:47:52 +0000 (20:47 +0000)]
Catch up with changes in 'gen_lib_options()':
- change how we call it
- added methods 'library_dir_option()', 'library_option()', and
'find_library_file()' that it calls
Added 'force' flag; it's automatically "respected", because this class
always rebuilds everything! (Which it to say, "force=0" is not respected.)
Greg Ward [Sun, 3 Oct 1999 20:45:33 +0000 (20:45 +0000)]
Fixed order of link options: object files now precede library stuff.
Catch up with changes in 'gen_lib_options()':
- change how we call it
- added methods 'library_dir_option()', 'library_option()', and
'find_library_file()' that it calls
Added 'force' flag and changed compile/link methods to respect it.
Greg Ward [Sun, 3 Oct 1999 20:41:02 +0000 (20:41 +0000)]
Slight change to the meaning of the 'libraries' list: if a library name
has a directory component, then we only search for the library in
that one directory, ie. ignore the 'library_dirs' lists for that
one library.
Changed calling convention to 'gen_lib_options()' again: now, it takes
a CCompiler instance and calls methods on it instead of taking
format strings. Also implemented the new "library name" semantics
using the 'find_library_file()' method in the CCompiler instance.
Added 'force' flag to CCompiler; added to constructor and 'new_compiler()'.
Added 'warn()' method.
Attached is a context diff to winsound.c that adds a Beep() function
to play a sound through the PC speaker. Seems to make sense to have
this added, so I just went and did it!
Added 'package' option.
Catch up with renamed 'platdir' -> 'build_platlib' option in 'build'.
Don't call 'set_final_options()' in 'run()' anymore -- that's now
guaranteed to be taken care of for us by the Distribution instance.
If 'include_dirs' is a string, split it on os.pathsep (this is half-
hearted -- support for setting compile/link options on the command
line is totally lame and probably won't work at all).
Added 'get_source_files()' for use by 'dist' command.
Added code to 'build_extensions()' to figure out the "def file" to use
with MSVC++ and add it to the linker command line as an "extra_postarg".
Renamed 'dir' option to be consistent with other commands.
Don't call 'set_final_options()' in 'run()' anymore -- that's now
guaranteed to be taken care of for us by the Distribution instance.
Rearranged to bit to allow outsiders (specifically, the 'dist' command)
to find out what modules we would build:
- 'find_modules()' renamed to 'find_package_modules()'
- most of 'build_modules()' abstracted out to 'find_modules()'
- added 'get_source_files()' (for the 'dist' command to use)
- drastically simplified 'build_modules()' -- now just a wrapper around
'find_modules()' and 'build_module()'
Renamed many options to be consistent across commands.
Tweaked some help strings to be consistent with documentation.
Don't call 'set_final_options()' in 'run()' anymore -- that's now
guaranteed to be taken care of for us by the Distribution instance.
Catch up with latest changes in CCompiler:
- add 'extra_preargs' and 'extra_postargs' parameters (and use them!)
- got rid of 'build_info' kludge parameter
- added 'compiler_type' class attribute
- respect reordered arguments to 'gen_lib_options()'
Also added 'output_dir' parameter (catching up with older change in
CCompiler) -- BUT this is presently ignored by all methods!
Deleted some more docstrings redundant with CCompiler.
Dropped generated of "/DEF:" argument --- that's now done by
the 'build_ext' command.
Catch up with latest changes in CCompiler:
- add 'extra_preargs' and 'extra_postargs' parameters (and use them!)
- added 'compiler_type' class attribute
- respect reordered arguments to 'gen_lib_options()'
Added 'extra_preargs' and 'extra_postargs' parameters to most methods,
which allowed us to get rid of the 'build_info' used in some places
(a temporary kludge to support MSVC++ "def" files).
Deleted big comment whining about that kludge.
Added 'compiler_type' class attribute.
Overhauled 'new_compiler()': now takes 'compiler' argument along with
'plat' (both optional with sensible defaults), and looks them both up
in the new 'default_compiler' and 'compiler_class' dictionaries to
figure out where to get the concrete compiler class from.
Reordered arguments to 'gen_lib_options()' to match the order in
which the arguments are generated (ie. -L before -l).
More tweaks to 'mkpath()':
- deal with empty tail from os.path.split() (eg. from trailing slash,
or backslash, or whatever)
- check PATH_CREATED hash inside loop as well
Added 'ready' flag and 'ensure_ready()' method to Command: together
they make sure that 'set_final_options()' has been called, but isn't
called redundantly.
Changed Distribution to call 'ensure_ready()' where it used to call
'set_final_options()', and in a few extra places as well.
Lots of comment/docstring revisions and additions in both classes.
New one-liner utility methods in Command: 'find_peer()', 'spawn()'.
Fred Drake [Wed, 22 Sep 1999 19:50:51 +0000 (19:50 +0000)]
Some updates to allow ../tools/mkhowto to add various bits to the
supplemental l2h initialization file it creates and still get all the
right behavior. In particular, it can change the image type and icon
location and not get inconsistent results.
Some code to help suppress various navigational pages; this might be
interesting when generating HTML to create HTML Help documents, since
the navigation support creates confusing hits in the full text
search. HTML Help also provides a lot of the navigational
infrastructure, so duplicating it makes it more tedious to use.
Barry Warsaw [Wed, 22 Sep 1999 15:45:51 +0000 (15:45 +0000)]
main(): wrap the device.setinfo() call around an exception handler.
It's possible to get a sunaudiodev.error (errno == EINVAL), although
I'm not exactly sure why, this at least won't crash the application.