Hello community, here is the log from the commit of package python-six for openSUSE:Factory checked in at 2014-05-02 09:51:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-six (Old) and /work/SRC/openSUSE:Factory/.python-six.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-six" Changes: -------- --- /work/SRC/openSUSE:Factory/python-six/python-six.changes 2014-03-01 21:20:13.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python-six.new/python-six.changes 2014-05-02 09:51:44.000000000 +0200 @@ -1,0 +2,13 @@ +Thu Apr 24 11:20:32 UTC 2014 - dmueller@suse.com + +- update to 1.6.1: + - Raise an AttributeError for six.moves.X when X is a module not available in + the current interpreter. + - Raise an AttributeError for every attribute of unimportable modules. + - Issue #56: Make the fake modules six.moves puts into sys.modules appear not to + have a __path__ unless they are loaded. + - Pull request #28: Add support for SplitResult. + - Issue #55: Add move mapping for xmlrpc.server. + - Pull request #29: Add move for urllib.parse.splitquery. + +------------------------------------------------------------------- Old: ---- six-1.5.2.tar.gz New: ---- six-1.6.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-six.spec ++++++ --- /var/tmp/diff_new_pack.CIbmx5/_old 2014-05-02 09:51:45.000000000 +0200 +++ /var/tmp/diff_new_pack.CIbmx5/_new 2014-05-02 09:51:45.000000000 +0200 @@ -17,7 +17,7 @@ Name: python-six -Version: 1.5.2 +Version: 1.6.1 Release: 0 Url: http://pypi.python.org/pypi/six/ Summary: Python 2 and 3 compatibility utilities ++++++ six-1.5.2.tar.gz -> six-1.6.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/CHANGES new/six-1.6.1/CHANGES --- old/six-1.5.2/CHANGES 2014-01-06 16:53:20.000000000 +0100 +++ new/six-1.6.1/CHANGES 2014-03-14 04:36:39.000000000 +0100 @@ -1,8 +1,28 @@ -Changelog for Six ------------------ +Changelog for six +================= This file lists the changes in each six version. +1.6.1 +----- + +- Raise an AttributeError for six.moves.X when X is a module not available in + the current interpreter. + +1.6.0 +----- + +- Raise an AttributeError for every attribute of unimportable modules. + +- Issue #56: Make the fake modules six.moves puts into sys.modules appear not to + have a __path__ unless they are loaded. + +- Pull request #28: Add support for SplitResult. + +- Issue #55: Add move mapping for xmlrpc.server. + +- Pull request #29: Add move for urllib.parse.splitquery. + 1.5.2 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/PKG-INFO new/six-1.6.1/PKG-INFO --- old/six-1.5.2/PKG-INFO 2014-01-06 16:57:41.000000000 +0100 +++ new/six-1.6.1/PKG-INFO 2014-03-14 04:39:28.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: six -Version: 1.5.2 +Version: 1.6.1 Summary: Python 2 and 3 compatibility utilities Home-page: http://pypi.python.org/pypi/six/ Author: Benjamin Peterson diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/documentation/conf.py new/six-1.6.1/documentation/conf.py --- old/six-1.5.2/documentation/conf.py 2013-09-15 15:52:34.000000000 +0200 +++ new/six-1.6.1/documentation/conf.py 2014-01-10 04:44:36.000000000 +0100 @@ -33,7 +33,7 @@ # General information about the project. project = u"six" -copyright = u"2010, Benjamin Peterson" +copyright = u"2010-2014, Benjamin Peterson" sys.path.append(os.path.abspath(os.path.join(".", ".."))) from six import __version__ as six_version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/documentation/index.rst new/six-1.6.1/documentation/index.rst --- old/six-1.5.2/documentation/index.rst 2014-01-04 19:22:33.000000000 +0100 +++ new/six-1.6.1/documentation/index.rst 2014-03-14 03:56:36.000000000 +0100 @@ -438,6 +438,28 @@ functionality; its structure mimics the structure of the Python 3 :mod:`py3:urllib` package. +.. note:: + + In order to make imports of the form:: + + from six.moves.cPickle import loads + + work, six places special proxy objects in in :data:`py3:sys.modules`. These + proxies lazily load the underlying module when an attribute is fetched. This + will fail if the underlying module is not available in the Python + interpreter. For example, ``sys.modules["six.moves.winreg"].LoadKey`` would + fail on any non-Windows platform. Unfortunately, some applications try to + load attributes on every module in :data:`py3:sys.modules`. six mitigates + this problem for some applications by pretending attributes on unimportable + modules don't exist. This hack doesn't work in every case, though. If you are + encountering problems with the lazy modules and don't use any from imports + directly from ``six.moves`` modules, you can workaround the issue by removing + the six proxy modules:: + + d = [name for name in sys.modules if name.startswith("six.moves.")] + for name in d: + del sys.modules[name] + Supported renames: +------------------------------+-------------------------------------+-------------------------------------+ @@ -545,7 +567,9 @@ +------------------------------+-------------------------------------+-------------------------------------+ | ``winreg`` | :mod:`py2:_winreg` | :mod:`py3:winreg` | +------------------------------+-------------------------------------+-------------------------------------+ -| ``xmlrpc_client`` | :mod:`py2:xmlrpclib` | :mod:`py3:xmlrpclib` | +| ``xmlrpc_client`` | :mod:`py2:xmlrpclib` | :mod:`py3:xmlrpc.client` | ++------------------------------+-------------------------------------+-------------------------------------+ +| ``xmlrpc_server`` | :mod:`py2:SimpleXMLRPCServer` | :mod:`py3:xmlrpc.server` | +------------------------------+-------------------------------------+-------------------------------------+ | ``xrange`` | :func:`py2:xrange` | :func:`py3:range` | +------------------------------+-------------------------------------+-------------------------------------+ @@ -565,6 +589,7 @@ :mod:`py2:urlparse`: * :func:`py2:urlparse.ParseResult` +* :func:`py2:urlparse.SplitResult` * :func:`py2:urlparse.urlparse` * :func:`py2:urlparse.urlunparse` * :func:`py2:urlparse.parse_qs` @@ -573,6 +598,7 @@ * :func:`py2:urlparse.urldefrag` * :func:`py2:urlparse.urlsplit` * :func:`py2:urlparse.urlunsplit` +* :func:`py2:urlparse.splitquery` and :mod:`py2:urllib`: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/six.egg-info/PKG-INFO new/six-1.6.1/six.egg-info/PKG-INFO --- old/six-1.5.2/six.egg-info/PKG-INFO 2014-01-06 16:57:40.000000000 +0100 +++ new/six-1.6.1/six.egg-info/PKG-INFO 2014-03-14 04:39:28.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: six -Version: 1.5.2 +Version: 1.6.1 Summary: Python 2 and 3 compatibility utilities Home-page: http://pypi.python.org/pypi/six/ Author: Benjamin Peterson diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/six.py new/six-1.6.1/six.py --- old/six-1.5.2/six.py 2014-01-06 16:54:24.000000000 +0100 +++ new/six-1.6.1/six.py 2014-03-14 04:38:01.000000000 +0100 @@ -25,7 +25,7 @@ import types __author__ = "Benjamin Peterson <benjamin@python.org>" -__version__ = "1.5.2" +__version__ = "1.6.1" # Useful for very coarse version differentiation. @@ -83,7 +83,11 @@ self.name = name def __get__(self, obj, tp): - result = self._resolve() + try: + result = self._resolve() + except ImportError: + # See the nice big comment in MovedModule.__getattr__. + raise AttributeError("%s could not be imported " % self.name) setattr(obj, self.name, result) # Invokes __set__. # This is a bit ugly, but it avoids running this again. delattr(obj.__class__, self.name) @@ -105,15 +109,22 @@ return _import_module(self.mod) def __getattr__(self, attr): - # Hack around the Django autoreloader. The reloader tries to get - # __file__ or __name__ of every module in sys.modules. This doesn't work - # well if this MovedModule is for an module that is unavailable on this - # machine (like winreg on Unix systems). Thus, we pretend __file__ and - # __name__ don't exist if the module hasn't been loaded yet. See issues - # #51 and #53. - if attr in ("__file__", "__name__") and self.mod not in sys.modules: - raise AttributeError - _module = self._resolve() + # It turns out many Python frameworks like to traverse sys.modules and + # try to load various attributes. This causes problems if this is a + # platform-specific module on the wrong platform, like _winreg on + # Unixes. Therefore, we silently pretend unimportable modules do not + # have any attributes. See issues #51, #53, #56, and #63 for the full + # tales of woe. + # + # First, if possible, avoid loading the module just to look at __file__, + # __name__, or __path__. + if (attr in ("__file__", "__name__", "__path__") and + self.mod not in sys.modules): + raise AttributeError(attr) + try: + _module = self._resolve() + except ImportError: + raise AttributeError(attr) value = getattr(_module, attr) setattr(self, attr, value) return value @@ -222,6 +233,7 @@ MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), + MovedModule("xmlrpc_server", "xmlrpclib", "xmlrpc.server"), MovedModule("winreg", "_winreg"), ] for attr in _moved_attributes: @@ -241,6 +253,7 @@ _urllib_parse_moved_attributes = [ MovedAttribute("ParseResult", "urlparse", "urllib.parse"), + MovedAttribute("SplitResult", "urlparse", "urllib.parse"), MovedAttribute("parse_qs", "urlparse", "urllib.parse"), MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), MovedAttribute("urldefrag", "urlparse", "urllib.parse"), @@ -254,6 +267,7 @@ MovedAttribute("unquote", "urllib", "urllib.parse"), MovedAttribute("unquote_plus", "urllib", "urllib.parse"), MovedAttribute("urlencode", "urllib", "urllib.parse"), + MovedAttribute("splitquery", "urllib", "urllib.parse"), ] for attr in _urllib_parse_moved_attributes: setattr(Module_six_moves_urllib_parse, attr.name, attr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/six-1.5.2/test_six.py new/six-1.6.1/test_six.py --- old/six-1.5.2/test_six.py 2014-01-05 17:21:00.000000000 +0100 +++ new/six-1.6.1/test_six.py 2014-03-14 04:30:44.000000000 +0100 @@ -113,7 +113,8 @@ if item_name.startswith("dbm_gnu") and not have_gdbm: py.test.skip("requires gdbm") raise - assert item_name in dir(six.moves) + if sys.version_info[:2] >= (2, 6): + assert item_name in dir(six.moves) @py.test.mark.parametrize("item_name", -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org