Victor Stinner [Tue, 4 Jun 2013 22:13:51 +0000 (00:13 +0200)]
Issue #9566: Fix a compiler warning on Windows 64-bit in namespace_init()
The result type is int, return -1 to avoid a compiler warning (cast Py_ssize_t
to int). PyObject_Size() can only fail with -1, and anyway a constructor
should return -1 on error, not an arbitrary negative number.
Victor Stinner [Tue, 4 Jun 2013 22:11:34 +0000 (00:11 +0200)]
Issuse #17932: Fix an integer overflow issue on Windows 64-bit in tuple
iterators: change the C type of tupleiterobject.it_index from long to
Py_ssize_t.
Victor Stinner [Mon, 3 Jun 2013 20:09:14 +0000 (22:09 +0200)]
(Merge 3.3) Close #18109: os.uname() now decodes fields from the locale
encoding, and socket.gethostname() now decodes the hostname from the locale
encoding, instead of using the UTF-8 encoding in strict mode.
Victor Stinner [Mon, 3 Jun 2013 20:07:27 +0000 (22:07 +0200)]
Close #18109: os.uname() now decodes fields from the locale encoding, and
socket.gethostname() now decodes the hostname from the locale encoding, instead
of using the UTF-8 encoding in strict mode.
Senthil Kumaran [Sat, 1 Jun 2013 18:12:17 +0000 (11:12 -0700)]
Fix thishost helper funtion in urllib. Returns the ipaddress of localhost when
hostname is resolvable by socket.gethostname for local machine. This all fixes
certain freebsd builtbot failures.
Senthil Kumaran [Sat, 1 Jun 2013 15:27:06 +0000 (08:27 -0700)]
Fix #17967: For ftp urls CWD to target instead of hopping to each directory
towards target. This fixes a bug where target is accessible, but parent
directories are restricted.
Senthil Kumaran [Wed, 29 May 2013 12:54:31 +0000 (05:54 -0700)]
#17403: urllib.parse.robotparser normalizes the urls before adding to ruleline.
This helps in handling certain types invalid urls in a conservative manner.
Ned Deily [Tue, 28 May 2013 23:35:30 +0000 (16:35 -0700)]
Issue #18080: When building a C extension module on OS X, if the compiler
is overriden with the CC environment variable, use the new compiler as
the default for linking if LDSHARED is not also overriden. This restores
Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
Serhiy Storchaka [Tue, 28 May 2013 12:27:29 +0000 (15:27 +0300)]
Issue #18011: base64.b32decode() now raises a binascii.Error if there are
non-alphabet characters present in the input string to conform a docstring.
Updated the module documentation.
Jason R. Coombs [Tue, 28 May 2013 03:21:28 +0000 (23:21 -0400)]
Issue #13772: Restored directory detection of targets in `os.symlink` on Windows, which was temporarily removed in Python 3.2.3 due to an incomplete implementation. The implementation now works even if the symlink is created in a location other than the current directory.
Brett Cannon [Fri, 24 May 2013 12:05:07 +0000 (08:05 -0400)]
Issue #17953: document that sys.modules shouldn't be replaced (thanks
to interp->modules) and that deleting essential items from the dict
can cause Python to blow up.
Thanks to Terry Reedy for coming up with initial wording and Yogesh
Chaudhari for coming up with a patch using that wording in parallel to
my own patch.
Update docstring for _asdict() to indicate it is obsolete.
Use the cleaner looking @property style for __dict__.
Move _replace() to be just after make() to indicate that
it is a core method on named tuples.
Senthil Kumaran [Sat, 1 Jun 2013 18:12:52 +0000 (11:12 -0700)]
merge from 3.3
Fix thishost helper funtion in urllib. Returns the ipaddress of localhost when
hostname is resolvable by socket.gethostname for local machine. This all fixes
certain freebsd builtbot failures.
Senthil Kumaran [Sat, 1 Jun 2013 15:27:53 +0000 (08:27 -0700)]
merge from 3.3
Fix #17967: For ftp urls CWD to target instead of hopping to each directory
towards target. This fixes a bug where target is accessible, but parent
directories are restricted.
Brett Cannon [Sat, 1 Jun 2013 03:18:39 +0000 (23:18 -0400)]
Issue #18065: For frozen packages set __path__ to [].
Previously __path__ was set to [__name__], but that could lead to bad
results if someone managed to circumvent the frozen importer and
somehow ended up with a finder that thought __name__ was a legit
directory/location.
Brett Cannon [Fri, 31 May 2013 22:56:47 +0000 (18:56 -0400)]
Issues #18088, 18089: Introduce
importlib.abc.Loader.init_module_attrs() and implement
importlib.abc.InspectLoader.load_module().
The importlib.abc.Loader.init_module_attrs() method sets the various
attributes on the module being loaded. It is done unconditionally to
support reloading. Typically people used
importlib.util.module_for_loader, but since that's a decorator there
was no way to override it's actions, so init_module_attrs() came into
existence to allow for overriding. This is also why module_for_loader
is now pending deprecation (having its other use replaced by
importlib.util.module_to_load).
All of this allowed for importlib.abc.InspectLoader.load_module() to
be implemented. At this point you can now implement a loader with
nothing more than get_code() (which only requires get_source();
package support requires is_package()). Thanks to init_module_attrs()
the implementation of load_module() is basically a context manager
containing 2 methods calls, a call to exec(), and a return statement.
Brett Cannon [Fri, 31 May 2013 22:11:17 +0000 (18:11 -0400)]
Add a reset_name argument to importlib.util.module_to_load in order to
control whether to reset the module's __name__ attribute in case a
reload is being done.