Greg Ward [Fri, 26 May 2000 01:00:15 +0000 (01:00 +0000)]
Factored out code for extracting-or-creating one of the option
dictionaries in 'self.command_options' to 'get_option_dict()'.
Simplified code in 'parse_config_files()' and 'parse_command_line()'
accordingly.
Fixed code in constructor that processes the 'options' dictionary
from the setup script so it actually works: uses the new
'self.command_options' dictionary rather than creating command
objects and calling 'set_option()' on them.
Greg Ward [Fri, 26 May 2000 00:54:52 +0000 (00:54 +0000)]
Added the DEBUG global (set from the DISTUTILS_DEBUG environment variable).
Changed the exception-handling code in 'setup()' to re-raise exceptions
if DEBUG is true.
Greg Ward [Fri, 26 May 2000 00:44:06 +0000 (00:44 +0000)]
Fixed a couple of long-hidden bugs (amazing what you find when you
attempt to verify the bold assertions in the documentation):
* entries for the "root package" in 'package_dir' didn't work --
fixed by improving the fall-through code in 'get_package_dir()'
* __init__.py files weren't installed when modules-in-packages
were listed individually (ie. in 'py_modules' in the setup script);
fixed by making 'check_package()' return the name of the __init__
file if it exists, and making 'find_modules()' add an entry to
the module list for __init__ if applicable
Barry Warsaw [Thu, 25 May 2000 23:15:05 +0000 (23:15 +0000)]
All the exception building related stuff has been moved out of this
module and into _exceptions.c. This includes all the PyExc_* globals,
the bltin_exc table, init_class_exc(), fini_instances(),
finierrors().
Renamed _PyBuiltin_Init_1() to _PyBuiltin_Init() since the two phase
initializations are necessary any more.
Removed as obsolete _PyBuiltin_Init_2(), _PyBuiltin_Fini_1() and
_PyBuiltin_Fini_2().
Barry Warsaw [Thu, 25 May 2000 23:09:49 +0000 (23:09 +0000)]
Py_Initialize(): Now that standard exceptions are builtin, we don't
need two phase init or fini of the builtin module. Change the call of
_PyBuiltin_Init_1() to _PyBuiltin_Init(). Add a call to
init_exceptions().
Py_Finalize(): Don't call _PyBuiltin_Fini_1(). Instead call
fini_exceptions() but move this to before the thread state is
cleared.
Fred Drake [Thu, 25 May 2000 03:25:26 +0000 (03:25 +0000)]
Piers Lauder <piers@cs.su.oz.au>:
This patch adds a comment about quoting to the doc string,
and also checks that the 'flags' argument to the STORE command
is appropriately enclosed inside parentheses to avoid quoting.
Greg Ward [Thu, 25 May 2000 02:03:56 +0000 (02:03 +0000)]
Improvements to Bastian's build_scripts command:
* 'first_line_re' loosened up
* command description improved
* replaced '_copy_files()' and '_adjust_files()' with one method
that does everything, 'copy_scripts()' -- this should be more
efficient than Bastian's version, should behave better in
dry-run mode, and does timestamp dependency-checking
Greg Ward [Thu, 25 May 2000 01:19:18 +0000 (01:19 +0000)]
Bastian Kleineidam: the "build_scripts" command and changes
necessary to support it.
Details:
- build command additionally calls build_scripts
- build_scripts builds your scripts in 'build/scripts' and adjusts the
first line if it begins with "#!" and ends with "python", optionally
ending with commandline options (like -O, -t ...). Adjusting means we
write the current path to the Python interpreter in the first line.
- install_scripts copies the scripts to the install_scripts dir
- install_data copies your data_files in install_data. You can
supply individual directories for your data_files:
data_files = ['doc/info.txt', # copy this file in install_scripts dir
('testdata', ['a.dat', 'b.dat']), # copy these files in
# install_scripts/testdata
('/etc', ['packagerc']), # copy this in /etc. When --root is
# given, copy this in rootdir/etc
]
So you can use the --root option with absolute data paths.
Guido van Rossum [Wed, 24 May 2000 13:21:46 +0000 (13:21 +0000)]
Fix a problem reported by Oleg Broytmann, who complains that very
often, ftp URLs hang in the final close. Further analysis suggests
that this is because the close hook in addclosehook() calls the hook
before acually closing the connection. The hook, in this case, waits
for the '226 Transfer complete' status from the server on the command
socket. However, more and more ftp servers only send this status when
the data socket has actually been closed -- causing a deadlock.
The fix is simple: in addclosehook.close(), call addbase.close()
*before* calling the closehook.
Greg Ward [Tue, 23 May 2000 23:14:00 +0000 (23:14 +0000)]
Catch failure to open installed Makefile, and report it as a
DistutilsPlatformError: "invalid Python installation". (This will
happen on Red Hat-ish systems where the python-devel package is not
installed.)
Changes by AMK: Use HAVE_NCURSES_H to include correct header file
Lots of typo fixes (a bit too much cut-and-paste in this module)
Aliases removed: attr_on, attr_off, attr_set
Lowercased the names COLOR_PAIR and PAIR_NUMBER
#ifdef's for compiling on Solaris added (need to understand SYSV curses
versions better and generalize this)
Bumped version number bumped to 1.6
Barry Warsaw [Tue, 23 May 2000 05:47:43 +0000 (05:47 +0000)]
(py-execute-region): Based on suggestions by Francois Pinard and Skip
Montanaro, handle execution of indented regions by inserting an "if
1:" in front of the block. This better preserves things like triple
quoted strings and commented regions. This patch resolves PR#264.
Greg Ward [Tue, 23 May 2000 04:11:14 +0000 (04:11 +0000)]
Fix 'get_command_obj()' so it checks if a command object has an attribute
before setting it -- this will catch bad options (eg. typos) in config files.
Greg Ward [Tue, 23 May 2000 03:54:16 +0000 (03:54 +0000)]
Added some debuging output (actually moved here from dist.py) --
dump the Distribution's 'command_options' dict after parsing config files,
and then after parsing the command line.
Greg Ward [Tue, 23 May 2000 03:47:35 +0000 (03:47 +0000)]
Fixed so options from config files and command lines actually work:
* 'get_command_obj()' now sets command attributes based on
the 'command_options' dictionary
* some typos fixed
* kludged 'parse_config_files()' to re-initialize the ConfigParser
instance after each file, so we know for sure which config
file each option comes form
* added lots of handy debugging output
Greg Ward [Tue, 23 May 2000 01:44:20 +0000 (01:44 +0000)]
OptionDummy now has a constructor that takes a list of options: each string
in the option list is an attribute of the OptionDummy that will be
initialized to None.
Greg Ward [Tue, 23 May 2000 01:42:17 +0000 (01:42 +0000)]
Marching towards full support of config files: thoroughly overhauled the
command-line parsing code, splitting it up into several methods (new
methods: '_parse_command_opts()', '_show_help()') and making it put options
into the 'command_options' dictionary rather than instantiating command
objects and putting them there.
Lots of other little changes:
* merged 'find_command_class()' and 'create_command_obj()' and
called the result 'get_command_class()'
* renamed 'find_command_obj()' to 'get_command_obj()', and added
command object creation and maintenance of the command object cache to
its responsibilities (taken over from 'create_command_obj()')
* parse config files one-at-a-time, so we can keep track of the
filename for later error reporting
* tweaked some help messages
* fixed up many obsolete comments and docstrings
Guido van Rossum [Sun, 21 May 2000 16:25:29 +0000 (16:25 +0000)]
Changed list_directory() somewhat. It is now only called when there
is no index.htm[l] file, and when it is called, it also spits out the
headers. When an index.htm[l] file is present, the regular (file
access) path is followed. Also, when the guessed content-type matches
text/*, open the file in text mode; otherwise in binary mode.
Greg Ward [Sat, 20 May 2000 15:17:09 +0000 (15:17 +0000)]
Changed the semantics of the 'sub_commands' list: instead of function
objects, it now has method names.
Added three methods, 'has_lib()', 'has_scripts()', and 'has_data()'
to determine if we need to run each of the three possible sub-commands.
Added 'get_sub_commands()' to take care of finding the methods named
in 'sub_commands', running them, and interpreting the results to
build a list of sub-commands that actually have to be run.
Greg Ward [Sat, 20 May 2000 15:08:57 +0000 (15:08 +0000)]
Check if the claimed build directory doesn't exist, and warn that we don't
have any Python modules to install (rather than bomb when we try to copy
a non-existent directory).
Greg Ward [Sat, 20 May 2000 13:23:21 +0000 (13:23 +0000)]
Added support for the 'export_symbols' parameter to 'link_shared_object()'
and 'link_shared_lib()'. In MSVCCompiler, this is meaningful: it adds
/EXPORT: options to the linker command line. In UnixCCompiler, it
is ignored.
Gregory P. Smith [Sat, 13 May 2000 03:06:56 +0000 (03:06 +0000)]
Drastically simplified by taking advantage of the "install" command's
new flexibility, specifically the 'root' option. Now, we just use
"install" to do a fake installation into a temporary directory
(the 'bdist_dir' option, which derives from the 'bdist_base' option of
"bdist"), and then tar/zip up that directory. This means that dumb
built distributions are now relative to the root directory, rather than
the prefix or exec-prefix; this is probably a feature, but does make
them slightly less flexible.
Gregory P. Smith [Sat, 13 May 2000 02:13:53 +0000 (02:13 +0000)]
Ditch the explicit search for *.py[co] files -- they're now included in
the list returned by 'get_outputs()', thanks to changes in the
"install_lib" command.
Gregory P. Smith [Sat, 13 May 2000 02:11:10 +0000 (02:11 +0000)]
Added '_bytecode_filenames()' method, and use it in 'get_outputs()'
to ensure that compiled bytecode files are considered part of the output
of the "install_lib" command.
Gregory P. Smith [Sat, 13 May 2000 02:01:22 +0000 (02:01 +0000)]
Moved check for installation to non-sys.path location so it comes
last (after writing list of installed files) -- that way, the warning
is more visible.
Gregory P. Smith [Sat, 13 May 2000 01:56:55 +0000 (01:56 +0000)]
Added the 'build_bdist' option and code to clean it up -- this is the
top-level temporary directory for creating built distributions. (Won't
work yet, since the "build" command doesn't yet have a 'build_bdist'
option, and none of the "bdist" commands support it yet.)
Jack Jansen [Fri, 12 May 2000 21:29:58 +0000 (21:29 +0000)]
First tiny steps towards Carbon: this project currently builds a PythonStandSmall without GUSI and with standard MSL malloc. Socket and select are the main victims of this.
Gregory P. Smith [Fri, 12 May 2000 01:31:37 +0000 (01:31 +0000)]
In 'install_misc' class:
- renamed '_copydata()' to 'copy_files()'
- changed it to record complete output filenames
- dropped '_outputdata()' in favour of much simpler 'get_outputs()'
Gregory P. Smith [Fri, 12 May 2000 00:52:23 +0000 (00:52 +0000)]
Patch from Bastien Kleineidam:
adds the 'install_data' and 'install_scripts' commands; these two
are trivial thanks to the 'install_misc' base class in cmd.py.
(Minor tweaks and commentary by me; the code is untested so far.)
Gregory P. Smith [Fri, 12 May 2000 00:34:12 +0000 (00:34 +0000)]
Fix from Lyle Johnson: add the '--compiler' option.
Also added creation of 'implib_dir', a temporary directory specific to
MSVC++ -- but I checked in two ways of fixing it (Lyle's and mine),
because I'm not sure which is right.
Guido van Rossum [Thu, 11 May 2000 18:42:27 +0000 (18:42 +0000)]
The addition of rint() (by Peter Schneider-Kamp; I forgot to mention
that before) in the previous patch has one problem; rint() is not in
the C math library on all platforms (e.g. not for VC++). Make it
conditional on HAVE_RINT.