Fix 'check_metadata()' so it grovels through the distribution's metadata
object, rather than through the distribution itself (since I moved the meta-
data out to a DistributionMetadata instance).
Patch, originally from Bastian Kleineidam and savagely mutilated by me,
to add the "display metadata" options: --name, --version, --author,
and so forth. Main changes:
* added 'display_options' class attribute to list all the "display only"
options (--help-commands plus the metadata options)
* added DistributionMetadata class as a place to put the actual
metadata information from the setup script (not to be confused with
the metadata display options); the logic dealing with metadata
(eg. return self.name or "UNKNOWN") is now in this class
* changed 'parse_command_line()' to use the new OO interface provided
by fancy_getopt, mainly so we can get at the original order of
options on the command line, so we can print multiple lines of
distribution meta-data in the order specified by the user
* added 'handle_display_options()' to handle display-only options
Also fixed some crufty old comments/docstrings.
Made 'generate_help()' and 'print_help()' methods of FancyGetopt.
Added 'set_option_table()' method.
Added missing 'self' to 'get_option_order()'.
Cosmetic/comment/docstring tweaks.
Continuing the refactoring: deleted the old 'fancy_getopt()' function,
leaving in its place a tiny wrapper around the FancyGetopt class
for backwards compatibility.
Hefty refactoring: converted 'fancy_getopt()' function into FancyGetopt
class. (Mainly this was to support the ability to go back after the
getopt operation is done and get extra information about the parse,
in particular the original order of options seen on the command line.
But it's a big improvement and should make it a lot easier to add
functionality in the future.)
Added kludge to deal with the "./ld_so_aix" problem: force all strings
in the Makefile that start with "./" to be absolute paths (with the
implied root being the directory where the Makefile itself was found).
Don't load the config.h file, even under Unix, because we never use the
information from config.h. Code is still there in case someone in the
future needs to parse an autoconf-generated config.h file.
Cleaned up/simplified error-handling:
- DistutilsOptionError is now documented as it's actually used, ie.
to indicate bogus option values (usually user options, eg. from
the command-line)
- added DistutilsSetupError to indicate errors that definitely arise
in the setup script
- got rid of DistutilsValueError, and changed all usage of it to
either DistutilsSetupError or ValueError as appropriate
- simplified a bunch of option get/set methods in Command and
Distribution classes -- just pass on AttributeError most of
the time, rather than turning it into something else
Cleaned up use of sysconfig module a bit: don't import more names
than we actually use, and do actually use AR and SO.
Run ranlib on static libraries. (Should probably have a platform-check
so we don't run ranlib when it's not necessary, ie. on most modern
Unices.)
Fred Drake [Thu, 13 Apr 2000 14:52:27 +0000 (14:52 +0000)]
Thomas Heller <thomas.heller@ion-tof.com>:
ihooks.ModuleLoader does not implement reload(mod) correctly:
If mod has already been loaded by ModuleLoader, it has
been returned from a cache. Added an additional parameter
to import_it() to force reloading.
Changed PyUnicode_Splitlines() maxsplit argument to keepends.
The maxsplit functionality was replaced by the keepends
functionality which allows keeping the line end markers together
with the string.
The maxsplit functionality in .splitlines() was replaced by the keepends
functionality which allows keeping the line end markers together
with the string.
Added support for '%r' % obj: this inserts repr(obj) rather
than str(obj).
The maxsplit functionality in .splitlines() was replaced by the keepends
functionality which allows keeping the line end markers together
with the string.
Added special case to unicode(): when being passed a
Unicode object as first argument, return the object as-is.
Raises an exception when given a Unicode object *and* an
encoding name.
Bunch of new names, mostly from patches and bugs mailing lists
(everyone who said something remotely useful in the last 100 messages
I archived has been added :-).
Simple optimization by Christian Tismer, who gives credit to Lenny
Kneler for reporting this issue: long_mult() is faster when the
smaller argument is on the left. Swap the arguments accordingly.
Implement suggestion from Lawrence Kesteloot in PR#280, to change the
default list of files from () to None, and explicitly test for None
before defaulting to sys.argv[1:]. This means that if you pass in an
explicit empty list, it will read stdin instead of defaulting to
sys.argv[1:]. This fixes a buglet in the test script (when called
with options but without files, it chokes when it tries to interpret
the options as files).
Lawrence adds: "I suspect that this is a safe change, because I can't
imagine someone actively passing in an empty list when they want
sys.argv used."
Fred Drake [Mon, 10 Apr 2000 16:27:47 +0000 (16:27 +0000)]
Use a better approach to locating IDLE's default configuration,
allowing it to be run from anywhere, including through a symlink to
the actual idle.py script.