Gregory P. Smith [Mon, 27 Jan 2014 08:15:10 +0000 (00:15 -0800)]
Issue #19081: Remove the zipimporter.files reference as the zip TOC
caches are module global in the zip_directory_cache. When it is
updated due to a changed zip file, all zipimporter instances need to
see the same updates TOC cache. This fixes the bug for the overlooked
submodule import case from the earlier round of changes. Includes
tests that would fail otherwise.
It also refactors zipimporter_init in the process to make it a bit
easier to read and understand. Less reuse of the same variable for
multiple purposes and the local path buffer is malloc'ed instead
of consuming a large MAXPATHLEN+2 chunk stack space.
Terry Jan Reedy [Mon, 27 Jan 2014 03:24:17 +0000 (22:24 -0500)]
Issue #17721: Remove non-functional configuration dialog help button until we
make it actually gives some help when clicked. Patch by Guilherme Simões.
Serhiy Storchaka [Sun, 26 Jan 2014 17:20:24 +0000 (19:20 +0200)]
Issue #8260: The read(), readline() and readlines() methods of
codecs.StreamReader returned incomplete data when were called after
readline() or read(size). Based on patch by Amaury Forgeot d'Arc.
Terry Jan Reedy [Wed, 22 Jan 2014 02:12:13 +0000 (21:12 -0500)]
Issue #20818: Remove code from idlelib.CallTipWindow.showtip that is now
completely redundant. After 16638 patch, CallTips.get_argspec trims over-long
signature strings as well as docstring lines.
Terry Jan Reedy [Wed, 22 Jan 2014 01:45:03 +0000 (20:45 -0500)]
Issue #16638: Include up to 5 docstring header lines (before first blank) in
Idle calltips. This is needed for builtins, such 3.x bytes (which is why 5).
Based on patch by Serhiy Storchaka.
Terry Jan Reedy [Tue, 21 Jan 2014 08:07:43 +0000 (03:07 -0500)]
Issue #16655: Explain why Idle's test_calltips has 'fragile' tests of builtins.
I do not expect a problem in 2.7, but backported this anyway, 'in case'.
R David Murray [Sat, 18 Jan 2014 19:55:09 +0000 (14:55 -0500)]
#19855: restore use of LC_ALL, not LC_MESSAGES
I didn't realize LC_ALL was an override, and I should have. I tried to
make a test, but it is not clear that the LC variables actually affect
the strings that uuid is using to parse the command output.
Serhiy Storchaka [Thu, 16 Jan 2014 16:59:17 +0000 (18:59 +0200)]
Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them. Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.
Issue #13107: argparse and optparse no longer raises an exception when output
a help on environment with too small COLUMNS. Based on patch by
Elazar Gershuni.
cleanup for the issue 19081 fix - pull the file open and close outside of the
zip_searchorder scanning loop in get_module_code().
[already done in 3.3 and 3.4]
Issue #20072: Fixed multiple errors in tkinter with wantobjects is False.
* Misc.image_names(), Misc.image_types(), Wm.wm_colormapwindows(), and
LabelFrame.panes() now always return a tuple.
* Fixed _stringify() for non-ASCII strings.
* Fixed error of comparing str and int in tt.LabeledScale._adjust().
* ttk.Notebook.index() now always returns int.
* ttk.Notebook.tabs() now always returns a tuple.
* ttk.Entry.bbox() now always returns a tuple of ints.
* ttk.Entry.validate() now always correctly works.
* ttk.Combobox.current() now always returns int.
* ttk.Panedwindow.sashpos() now always returns int.
* ttk.Treeview.bbox() now always returns a tuple of ints.
* ttk.Treeview.get_children() now always returns a tuple.
* ttk.Treeview.exists() now always correctly works.
* ttk.Treeview.index() now always returns int.
* ttk.Treeview.tag_has() now always returns 0 or 1.
* And numerous other errors in methods which returns a tuple, list or dict.
* Fixed ttk tests for wantobjects is False.
Fixes issue19081: When a zipimport .zip file in sys.path being imported
from is modified during the lifetime of the Python process after
zipimport has already opened and cached the zip's table of contents
it now fstat's the file after opening it upon every attempt to access
anything within and will re-read the table of contents if the .zip file
inode, size or mtime have changed.
It would've been nicer to hold any .zip file used by zipimport open for the
duration of the process but that would be more invasive and add an additional
open file descriptor to all zipimport using processes. It also would likely
not fix the problem on Windows due to different filesystem semantics.
The fix the test is testing prevents a DOS attack, and the failure
mode will also prevent the DOS attack, so for now skip the test.
Either the test or the code does need fixing, however.