[PyXB] Unbundle python-six
Michal Srb
msrb at fedoraproject.org
Wed Jan 21 12:51:05 UTC 2015
commit d90d17de201e5abd0d2468340ad55719d435bbff
Author: Michal Srb <msrb at redhat.com>
Date: Wed Jan 21 11:09:33 2015 +0100
Unbundle python-six
0001-unbundle-six.patch | 952 +++++++++++++++++++++++++++++++++++++++++++++++
PyXB.spec | 13 +-
2 files changed, 964 insertions(+), 1 deletions(-)
---
diff --git a/0001-unbundle-six.patch b/0001-unbundle-six.patch
new file mode 100644
index 0000000..5518640
--- /dev/null
+++ b/0001-unbundle-six.patch
@@ -0,0 +1,952 @@
+From 2566c09b34d4a5ea98d74121fdcce7879e1c063c Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Wed, 21 Jan 2015 12:42:11 +0100
+Subject: [PATCH] unbundle six
+
+---
+ examples/dictionary/define.py | 2 +-
+ examples/dictionary/showdict.py | 2 +-
+ examples/geocoder/client.py | 2 +-
+ examples/ndfd/forecast.py | 2 +-
+ examples/ndfd/latlon.py | 2 +-
+ examples/weather/client.py | 2 +-
+ examples/weather/client_get.py | 2 +-
+ maintainer/buildUnicode.py | 2 +-
+ pyxb/namespace/archive.py | 2 +-
+ pyxb/utils/domutils.py | 3 +-
+ pyxb/utils/fac.py | 3 +-
+ pyxb/utils/six.py | 610 +---------------------------------------
+ pyxb/utils/unicode.py | 3 +-
+ pyxb/utils/utility.py | 5 +-
+ pyxb/xmlschema/structures.py | 2 +-
+ scripts/pyxbwsdl | 2 +-
+ tests/trac/test-trac-0175.py | 2 +-
+ tests/trac/test-trac-0207.py | 2 +-
+ tests/trac/trac-0033/tread.py | 2 +-
+ tests/utils/test-fac.py | 2 +-
+ 20 files changed, 30 insertions(+), 624 deletions(-)
+
+diff --git a/examples/dictionary/define.py b/examples/dictionary/define.py
+index 921da60..d689497 100644
+--- a/examples/dictionary/define.py
++++ b/examples/dictionary/define.py
+@@ -1,6 +1,6 @@
+ from __future__ import print_function
+ import dict
+-from pyxb.utils.six.moves.urllib.request import urlopen
++from six.moves.urllib.request import urlopen
+ import sys
+ from pyxb.utils import domutils
+
+diff --git a/examples/dictionary/showdict.py b/examples/dictionary/showdict.py
+index 6b856e1..6ac392b 100644
+--- a/examples/dictionary/showdict.py
++++ b/examples/dictionary/showdict.py
+@@ -1,6 +1,6 @@
+ from __future__ import print_function
+ import dict
+-from pyxb.utils.six.moves.urllib.request import urlopen
++from six.moves.urllib.request import urlopen
+ import pyxb.utils.domutils as domutils
+ from xml.dom import minidom
+
+diff --git a/examples/geocoder/client.py b/examples/geocoder/client.py
+index 355f37a..bf69e6d 100644
+--- a/examples/geocoder/client.py
++++ b/examples/geocoder/client.py
+@@ -1,6 +1,6 @@
+ from __future__ import print_function
+ import sys
+-from pyxb.utils.six.moves.urllib import request as urllib_request
++from six.moves.urllib import request as urllib_request
+ import GeoCoder
+ from pyxb import BIND
+ from pyxb.utils import domutils
+diff --git a/examples/ndfd/forecast.py b/examples/ndfd/forecast.py
+index aff5c1e..66b0c34 100644
+--- a/examples/ndfd/forecast.py
++++ b/examples/ndfd/forecast.py
+@@ -3,7 +3,7 @@ import xml.dom.minidom
+ import DWML
+ import datetime
+ import pyxb.binding.datatypes as xsd
+-from pyxb.utils.six.moves.urllib.request import urlopen
++from six.moves.urllib.request import urlopen
+ import time
+ import collections
+ import sys
+diff --git a/examples/ndfd/latlon.py b/examples/ndfd/latlon.py
+index 781638a..eaaf7c8 100644
+--- a/examples/ndfd/latlon.py
++++ b/examples/ndfd/latlon.py
+@@ -5,7 +5,7 @@ import DWML
+ import datetime
+ import pyxb
+ from pyxb.utils import domutils, six
+-from pyxb.utils.six.moves.urllib import request as urllib_request
++from six.moves.urllib import request as urllib_request
+ import pyxb.binding.datatypes as xsd
+ import pyxb.bundles.wssplat.soap11 as soapenv
+
+diff --git a/examples/weather/client.py b/examples/weather/client.py
+index ddddbf9..18a847c 100644
+--- a/examples/weather/client.py
++++ b/examples/weather/client.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function
+ import sys
+ import time
+-from pyxb.utils.six.moves.urllib import request as urllib_request
++from six.moves.urllib import request as urllib_request
+ import pyxb.bundles.wssplat.soap11 as soapenv
+ import weather
+
+diff --git a/examples/weather/client_get.py b/examples/weather/client_get.py
+index f9b37a4..c92c1cb 100644
+--- a/examples/weather/client_get.py
++++ b/examples/weather/client_get.py
+@@ -1,6 +1,6 @@
+ from __future__ import print_function
+ import time
+-from pyxb.utils.six.moves.urllib import request as urllib_request
++from six.moves.urllib import request as urllib_request
+ import weather # Bindings generated by PyXB
+ import pyxb.utils.domutils as domutils
+
+diff --git a/maintainer/buildUnicode.py b/maintainer/buildUnicode.py
+index 7579845..d97f666 100644
+--- a/maintainer/buildUnicode.py
++++ b/maintainer/buildUnicode.py
+@@ -30,7 +30,7 @@ from __future__ import print_function
+ import textwrap
+ import re
+ from pyxb.utils import six
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ def countCodepoints (codepoints):
+ count = 0
+diff --git a/pyxb/namespace/archive.py b/pyxb/namespace/archive.py
+index 9826d6d..134d93e 100644
+--- a/pyxb/namespace/archive.py
++++ b/pyxb/namespace/archive.py
+@@ -45,7 +45,7 @@ def GetArchivePath ():
+ return os.environ.get(PathEnvironmentVariable)
+
+ # Stuff required for pickling
+-from pyxb.utils.six.moves import cPickle as pickle
++from six.moves import cPickle as pickle
+ import re
+
+ class NamespaceArchive (object):
+diff --git a/pyxb/utils/domutils.py b/pyxb/utils/domutils.py
+index 92cc834..e6f09c5 100644
+--- a/pyxb/utils/domutils.py
++++ b/pyxb/utils/domutils.py
+@@ -15,6 +15,7 @@
+
+ """Functions that support activities related to the Document Object Model."""
+
++from __future__ import absolute_import
+ import logging
+ import xml.dom
+
+@@ -24,7 +25,7 @@ import pyxb.namespace.resolution
+ import pyxb.utils.saxutils
+ import pyxb.utils.saxdom
+ from pyxb.utils import six
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ _log = logging.getLogger(__name__)
+
+diff --git a/pyxb/utils/fac.py b/pyxb/utils/fac.py
+index f350eba..4678bd1 100644
+--- a/pyxb/utils/fac.py
++++ b/pyxb/utils/fac.py
+@@ -57,11 +57,12 @@ not work: instead the subconfiguration with its counter values must be
+ retained between matches.
+ """
+
++from __future__ import absolute_import
+ import operator
+ import functools
+ import logging
+ from pyxb.utils import six
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ log_ = logging.getLogger(__name__)
+
+diff --git a/pyxb/utils/six.py b/pyxb/utils/six.py
+index b6e8c3e..d9abd6e 100644
+--- a/pyxb/utils/six.py
++++ b/pyxb/utils/six.py
+@@ -20,25 +20,14 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+
+-import operator
+-import sys
+-import types
++from __future__ import absolute_import
++from six import *
+
+ __author__ = "Benjamin Peterson <benjamin at python.org>"
+ __version__ = "1.5.2"
+
+
+-# Useful for very coarse version differentiation.
+-PY2 = sys.version_info[0] == 2
+-PY3 = sys.version_info[0] == 3
+-
+ if PY3:
+- string_types = str,
+- integer_types = int,
+- class_types = type,
+- text_type = str
+- binary_type = bytes
+-
+ none_type = type(None)
+ boolean_type = bool
+ float_type = float
+@@ -48,14 +37,11 @@ if PY3:
+ tuple_type = tuple
+ dictionary_type = dict
+
+- MAXSIZE = sys.maxsize
++ import sys
++ import io
++ intern = sys.intern
++ file = io.IOBase
+ else:
+- string_types = basestring,
+- integer_types = (int, long)
+- class_types = (type, types.ClassType)
+- text_type = unicode
+- binary_type = str
+-
+ import types
+ none_type = types.NoneType
+ boolean_type = types.BooleanType
+@@ -66,594 +52,10 @@ else:
+ tuple_type = types.TupleType
+ dictionary_type = types.DictionaryType
+
+- if sys.platform.startswith("java"):
+- # Jython always uses 32 bits.
+- MAXSIZE = int((1 << 31) - 1)
+- else:
+- # It's possible to have sizeof(long) != sizeof(Py_ssize_t).
+- class X(object):
+- def __len__(self):
+- return 1 << 31
+- try:
+- len(X())
+- except OverflowError:
+- # 32-bit
+- MAXSIZE = int((1 << 31) - 1)
+- else:
+- # 64-bit
+- MAXSIZE = int((1 << 63) - 1)
+- del X
+-
+-
+-def _add_doc(func, doc):
+- """Add documentation to a function."""
+- func.__doc__ = doc
+-
+-
+-def _import_module(name):
+- """Import module, returning the module after the last dot."""
+- __import__(name)
+- return sys.modules[name]
+-
+-
+-class _LazyDescr(object):
+-
+- def __init__(self, name):
+- self.name = name
+-
+- def __get__(self, obj, tp):
+- result = self._resolve()
+- setattr(obj, self.name, result) # Invokes __set__.
+- # This is a bit ugly, but it avoids running this again.
+- delattr(obj.__class__, self.name)
+- return result
+-
+-
+-class MovedModule(_LazyDescr):
+-
+- def __init__(self, name, old, new=None):
+- super(MovedModule, self).__init__(name)
+- if PY3:
+- if new is None:
+- new = name
+- self.mod = new
+- else:
+- self.mod = old
+-
+- def _resolve(self):
+- 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()
+- value = getattr(_module, attr)
+- setattr(self, attr, value)
+- return value
+-
+-
+-class _LazyModule(types.ModuleType):
+-
+- def __init__(self, name):
+- super(_LazyModule, self).__init__(name)
+- self.__doc__ = self.__class__.__doc__
+-
+- def __dir__(self):
+- attrs = ["__doc__", "__name__"]
+- attrs += [attr.name for attr in self._moved_attributes]
+- return attrs
+-
+- # Subclasses should override this
+- _moved_attributes = []
+-
+-
+-class MovedAttribute(_LazyDescr):
+-
+- def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None):
+- super(MovedAttribute, self).__init__(name)
+- if PY3:
+- if new_mod is None:
+- new_mod = name
+- self.mod = new_mod
+- if new_attr is None:
+- if old_attr is None:
+- new_attr = name
+- else:
+- new_attr = old_attr
+- self.attr = new_attr
+- else:
+- self.mod = old_mod
+- if old_attr is None:
+- old_attr = name
+- self.attr = old_attr
+-
+- def _resolve(self):
+- module = _import_module(self.mod)
+- return getattr(module, self.attr)
+-
+-
+-
+-class _MovedItems(_LazyModule):
+- """Lazy loading of moved objects"""
+-
+-
+-_moved_attributes = [
+- MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"),
+- MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"),
+- MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"),
+- MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"),
+- MovedAttribute("map", "itertools", "builtins", "imap", "map"),
+- MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"),
+- MovedAttribute("reload_module", "__builtin__", "imp", "reload"),
+- MovedAttribute("reduce", "__builtin__", "functools"),
+- MovedAttribute("StringIO", "StringIO", "io"),
+- MovedAttribute("UserString", "UserString", "collections"),
+- MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"),
+- MovedAttribute("zip", "itertools", "builtins", "izip", "zip"),
+- MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"),
+-
+- MovedModule("builtins", "__builtin__"),
+- MovedModule("configparser", "ConfigParser"),
+- MovedModule("copyreg", "copy_reg"),
+- MovedModule("dbm_gnu", "gdbm", "dbm.gnu"),
+- MovedModule("http_cookiejar", "cookielib", "http.cookiejar"),
+- MovedModule("http_cookies", "Cookie", "http.cookies"),
+- MovedModule("html_entities", "htmlentitydefs", "html.entities"),
+- MovedModule("html_parser", "HTMLParser", "html.parser"),
+- MovedModule("http_client", "httplib", "http.client"),
+- MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"),
+- MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"),
+- MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"),
+- MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"),
+- MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"),
+- MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"),
+- MovedModule("cPickle", "cPickle", "pickle"),
+- MovedModule("queue", "Queue"),
+- MovedModule("reprlib", "repr"),
+- MovedModule("socketserver", "SocketServer"),
+- MovedModule("_thread", "thread", "_thread"),
+- MovedModule("tkinter", "Tkinter"),
+- MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"),
+- MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"),
+- MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"),
+- MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"),
+- MovedModule("tkinter_tix", "Tix", "tkinter.tix"),
+- MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"),
+- MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"),
+- MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"),
+- MovedModule("tkinter_colorchooser", "tkColorChooser",
+- "tkinter.colorchooser"),
+- MovedModule("tkinter_commondialog", "tkCommonDialog",
+- "tkinter.commondialog"),
+- MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"),
+- MovedModule("tkinter_font", "tkFont", "tkinter.font"),
+- MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"),
+- MovedModule("tkinter_tksimpledialog", "tkSimpleDialog",
+- "tkinter.simpledialog"),
+- MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"),
+- MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"),
+- MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"),
+- MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"),
+- MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"),
+- MovedModule("winreg", "_winreg"),
+-]
+-for attr in _moved_attributes:
+- setattr(_MovedItems, attr.name, attr)
+- if isinstance(attr, MovedModule):
+- sys.modules[__name__ + ".moves." + attr.name] = attr
+-del attr
+-
+-_MovedItems._moved_attributes = _moved_attributes
+-
+-moves = sys.modules[__name__ + ".moves"] = _MovedItems(__name__ + ".moves")
+-
+-
+-class Module_six_moves_urllib_parse(_LazyModule):
+- """Lazy loading of moved objects in six.moves.urllib_parse"""
+-
+-
+-_urllib_parse_moved_attributes = [
+- MovedAttribute("ParseResult", "urlparse", "urllib.parse"),
+- MovedAttribute("parse_qs", "urlparse", "urllib.parse"),
+- MovedAttribute("parse_qsl", "urlparse", "urllib.parse"),
+- MovedAttribute("urldefrag", "urlparse", "urllib.parse"),
+- MovedAttribute("urljoin", "urlparse", "urllib.parse"),
+- MovedAttribute("urlparse", "urlparse", "urllib.parse"),
+- MovedAttribute("urlsplit", "urlparse", "urllib.parse"),
+- MovedAttribute("urlunparse", "urlparse", "urllib.parse"),
+- MovedAttribute("urlunsplit", "urlparse", "urllib.parse"),
+- MovedAttribute("quote", "urllib", "urllib.parse"),
+- MovedAttribute("quote_plus", "urllib", "urllib.parse"),
+- MovedAttribute("unquote", "urllib", "urllib.parse"),
+- MovedAttribute("unquote_plus", "urllib", "urllib.parse"),
+- MovedAttribute("urlencode", "urllib", "urllib.parse"),
+-]
+-for attr in _urllib_parse_moved_attributes:
+- setattr(Module_six_moves_urllib_parse, attr.name, attr)
+-del attr
+-
+-Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes
+-
+-sys.modules[__name__ + ".moves.urllib_parse"] = sys.modules[__name__ + ".moves.urllib.parse"] = Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse")
+-
+-
+-class Module_six_moves_urllib_error(_LazyModule):
+- """Lazy loading of moved objects in six.moves.urllib_error"""
+-
+-
+-_urllib_error_moved_attributes = [
+- MovedAttribute("URLError", "urllib2", "urllib.error"),
+- MovedAttribute("HTTPError", "urllib2", "urllib.error"),
+- MovedAttribute("ContentTooShortError", "urllib", "urllib.error"),
+-]
+-for attr in _urllib_error_moved_attributes:
+- setattr(Module_six_moves_urllib_error, attr.name, attr)
+-del attr
+-
+-Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes
+-
+-sys.modules[__name__ + ".moves.urllib_error"] = sys.modules[__name__ + ".moves.urllib.error"] = Module_six_moves_urllib_error(__name__ + ".moves.urllib.error")
+-
+-
+-class Module_six_moves_urllib_request(_LazyModule):
+- """Lazy loading of moved objects in six.moves.urllib_request"""
+-
+-
+-_urllib_request_moved_attributes = [
+- MovedAttribute("urlopen", "urllib2", "urllib.request"),
+- MovedAttribute("install_opener", "urllib2", "urllib.request"),
+- MovedAttribute("build_opener", "urllib2", "urllib.request"),
+- MovedAttribute("pathname2url", "urllib", "urllib.request"),
+- MovedAttribute("url2pathname", "urllib", "urllib.request"),
+- MovedAttribute("getproxies", "urllib", "urllib.request"),
+- MovedAttribute("Request", "urllib2", "urllib.request"),
+- MovedAttribute("OpenerDirector", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"),
+- MovedAttribute("ProxyHandler", "urllib2", "urllib.request"),
+- MovedAttribute("BaseHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"),
+- MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"),
+- MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"),
+- MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"),
+- MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"),
+- MovedAttribute("FileHandler", "urllib2", "urllib.request"),
+- MovedAttribute("FTPHandler", "urllib2", "urllib.request"),
+- MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"),
+- MovedAttribute("UnknownHandler", "urllib2", "urllib.request"),
+- MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"),
+- MovedAttribute("urlretrieve", "urllib", "urllib.request"),
+- MovedAttribute("urlcleanup", "urllib", "urllib.request"),
+- MovedAttribute("URLopener", "urllib", "urllib.request"),
+- MovedAttribute("FancyURLopener", "urllib", "urllib.request"),
+- MovedAttribute("proxy_bypass", "urllib", "urllib.request"),
+-]
+-for attr in _urllib_request_moved_attributes:
+- setattr(Module_six_moves_urllib_request, attr.name, attr)
+-del attr
+-
+-Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes
+-
+-sys.modules[__name__ + ".moves.urllib_request"] = sys.modules[__name__ + ".moves.urllib.request"] = Module_six_moves_urllib_request(__name__ + ".moves.urllib.request")
+-
+-
+-class Module_six_moves_urllib_response(_LazyModule):
+- """Lazy loading of moved objects in six.moves.urllib_response"""
+-
+-
+-_urllib_response_moved_attributes = [
+- MovedAttribute("addbase", "urllib", "urllib.response"),
+- MovedAttribute("addclosehook", "urllib", "urllib.response"),
+- MovedAttribute("addinfo", "urllib", "urllib.response"),
+- MovedAttribute("addinfourl", "urllib", "urllib.response"),
+-]
+-for attr in _urllib_response_moved_attributes:
+- setattr(Module_six_moves_urllib_response, attr.name, attr)
+-del attr
+-
+-Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes
+-
+-sys.modules[__name__ + ".moves.urllib_response"] = sys.modules[__name__ + ".moves.urllib.response"] = Module_six_moves_urllib_response(__name__ + ".moves.urllib.response")
+-
+-
+-class Module_six_moves_urllib_robotparser(_LazyModule):
+- """Lazy loading of moved objects in six.moves.urllib_robotparser"""
+-
+-
+-_urllib_robotparser_moved_attributes = [
+- MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"),
+-]
+-for attr in _urllib_robotparser_moved_attributes:
+- setattr(Module_six_moves_urllib_robotparser, attr.name, attr)
+-del attr
+-
+-Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes
+-
+-sys.modules[__name__ + ".moves.urllib_robotparser"] = sys.modules[__name__ + ".moves.urllib.robotparser"] = Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser")
+-
+-
+-class Module_six_moves_urllib(types.ModuleType):
+- """Create a six.moves.urllib namespace that resembles the Python 3 namespace"""
+- parse = sys.modules[__name__ + ".moves.urllib_parse"]
+- error = sys.modules[__name__ + ".moves.urllib_error"]
+- request = sys.modules[__name__ + ".moves.urllib_request"]
+- response = sys.modules[__name__ + ".moves.urllib_response"]
+- robotparser = sys.modules[__name__ + ".moves.urllib_robotparser"]
+-
+- def __dir__(self):
+- return ['parse', 'error', 'request', 'response', 'robotparser']
+-
+-
+-sys.modules[__name__ + ".moves.urllib"] = Module_six_moves_urllib(__name__ + ".moves.urllib")
+-
+-
+-def add_move(move):
+- """Add an item to six.moves."""
+- setattr(_MovedItems, move.name, move)
+-
+-
+-def remove_move(name):
+- """Remove item from six.moves."""
+- try:
+- delattr(_MovedItems, name)
+- except AttributeError:
+- try:
+- del moves.__dict__[name]
+- except KeyError:
+- raise AttributeError("no such move, %r" % (name,))
+-
+-
+-if PY3:
+- _meth_func = "__func__"
+- _meth_self = "__self__"
+-
+- _func_closure = "__closure__"
+- _func_code = "__code__"
+- _func_defaults = "__defaults__"
+- _func_globals = "__globals__"
+-
+- _iterkeys = "keys"
+- _itervalues = "values"
+- _iteritems = "items"
+- _iterlists = "lists"
+-else:
+- _meth_func = "im_func"
+- _meth_self = "im_self"
+-
+- _func_closure = "func_closure"
+- _func_code = "func_code"
+- _func_defaults = "func_defaults"
+- _func_globals = "func_globals"
+-
+- _iterkeys = "iterkeys"
+- _itervalues = "itervalues"
+- _iteritems = "iteritems"
+- _iterlists = "iterlists"
+-
+-
+-try:
+- advance_iterator = next
+-except NameError:
+- def advance_iterator(it):
+- return it.next()
+-next = advance_iterator
+-
+-
+-try:
+- callable = callable
+-except NameError:
+- def callable(obj):
+- return any("__call__" in klass.__dict__ for klass in type(obj).__mro__)
+-
+-
+-if PY3:
+- def get_unbound_function(unbound):
+- return unbound
+-
+- create_bound_method = types.MethodType
+-
+- Iterator = object
+-else:
+- def get_unbound_function(unbound):
+- return unbound.im_func
+-
+- def create_bound_method(func, obj):
+- return types.MethodType(func, obj, obj.__class__)
+-
+- class Iterator(object):
+-
+- def next(self):
+- return type(self).__next__(self)
+-
+- callable = callable
+-_add_doc(get_unbound_function,
+- """Get the function out of a possibly unbound function""")
+-
+-
+-get_method_function = operator.attrgetter(_meth_func)
+-get_method_self = operator.attrgetter(_meth_self)
+-get_function_closure = operator.attrgetter(_func_closure)
+-get_function_code = operator.attrgetter(_func_code)
+-get_function_defaults = operator.attrgetter(_func_defaults)
+-get_function_globals = operator.attrgetter(_func_globals)
+-
+-
+-def iterkeys(d, **kw):
+- """Return an iterator over the keys of a dictionary."""
+- return iter(getattr(d, _iterkeys)(**kw))
+-
+-def itervalues(d, **kw):
+- """Return an iterator over the values of a dictionary."""
+- return iter(getattr(d, _itervalues)(**kw))
+-
+-def iteritems(d, **kw):
+- """Return an iterator over the (key, value) pairs of a dictionary."""
+- return iter(getattr(d, _iteritems)(**kw))
+-
+-def iterlists(d, **kw):
+- """Return an iterator over the (key, [values]) pairs of a dictionary."""
+- return iter(getattr(d, _iterlists)(**kw))
+-
+-
+-if PY3:
+- def b(s):
+- return s.encode("latin-1")
+- def u(s):
+- return s
+- unichr = chr
+- if sys.version_info[1] <= 1:
+- def int2byte(i):
+- return bytes((i,))
+- else:
+- # This is about 2x faster than the implementation above on 3.2+
+- int2byte = operator.methodcaller("to_bytes", 1, "big")
+- byte2int = operator.itemgetter(0)
+- indexbytes = operator.getitem
+- iterbytes = iter
+- import io
+- StringIO = io.StringIO
+- BytesIO = io.BytesIO
+- intern = sys.intern
+- file = io.IOBase
+-else:
+- def b(s):
+- return s
+- # Workaround for standalone backslash
+- def u(s):
+- return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")
+- unichr = unichr
+- int2byte = chr
+- def byte2int(bs):
+- return ord(bs[0])
+- def indexbytes(buf, i):
+- return ord(buf[i])
+- def iterbytes(buf):
+- return (ord(byte) for byte in buf)
+- import StringIO
+- StringIO = BytesIO = StringIO.StringIO
+ import __builtin__
+ intern = __builtin__.intern
+ file = __builtin__.file
+-_add_doc(b, """Byte literal""")
+-_add_doc(u, """Text literal""")
+-
+-
+-if PY3:
+- exec_ = getattr(moves.builtins, "exec")
+-
+-
+- def reraise(tp, value, tb=None):
+- if value.__traceback__ is not tb:
+- raise value.with_traceback(tb)
+- raise value
+-
+-else:
+- def exec_(_code_, _globs_=None, _locs_=None):
+- """Execute code in a namespace."""
+- if _globs_ is None:
+- frame = sys._getframe(1)
+- _globs_ = frame.f_globals
+- if _locs_ is None:
+- _locs_ = frame.f_locals
+- del frame
+- elif _locs_ is None:
+- _locs_ = _globs_
+- exec("""exec _code_ in _globs_, _locs_""")
+-
+-
+- exec_("""def reraise(tp, value, tb=None):
+- raise tp, value, tb
+-""")
+-
+-
+-print_ = getattr(moves.builtins, "print", None)
+-if print_ is None:
+- def print_(*args, **kwargs):
+- """The new-style print function for Python 2.4 and 2.5."""
+- fp = kwargs.pop("file", sys.stdout)
+- if fp is None:
+- return
+- def write(data):
+- if not isinstance(data, basestring):
+- data = str(data)
+- # If the file has an encoding, encode unicode with it.
+- if (isinstance(fp, file) and
+- isinstance(data, unicode) and
+- fp.encoding is not None):
+- errors = getattr(fp, "errors", None)
+- if errors is None:
+- errors = "strict"
+- data = data.encode(fp.encoding, errors)
+- fp.write(data)
+- want_unicode = False
+- sep = kwargs.pop("sep", None)
+- if sep is not None:
+- if isinstance(sep, unicode):
+- want_unicode = True
+- elif not isinstance(sep, str):
+- raise TypeError("sep must be None or a string")
+- end = kwargs.pop("end", None)
+- if end is not None:
+- if isinstance(end, unicode):
+- want_unicode = True
+- elif not isinstance(end, str):
+- raise TypeError("end must be None or a string")
+- if kwargs:
+- raise TypeError("invalid keyword arguments to print()")
+- if not want_unicode:
+- for arg in args:
+- if isinstance(arg, unicode):
+- want_unicode = True
+- break
+- if want_unicode:
+- newline = unicode("\n")
+- space = unicode(" ")
+- else:
+- newline = "\n"
+- space = " "
+- if sep is None:
+- sep = space
+- if end is None:
+- end = newline
+- for i, arg in enumerate(args):
+- if i:
+- write(sep)
+- write(arg)
+- write(end)
+-
+-_add_doc(reraise, """Reraise an exception.""")
+-
+-
+-def with_metaclass(meta, *bases):
+- """Create a base class with a metaclass."""
+- return meta("NewBase", bases, {})
+
+-def add_metaclass(metaclass):
+- """Class decorator for creating a class with a metaclass."""
+- def wrapper(cls):
+- orig_vars = cls.__dict__.copy()
+- orig_vars.pop('__dict__', None)
+- orig_vars.pop('__weakref__', None)
+- slots = orig_vars.get('__slots__')
+- if slots is not None:
+- if isinstance(slots, str):
+- slots = [slots]
+- for slots_var in slots:
+- orig_vars.pop(slots_var)
+- return metaclass(cls.__name__, cls.__bases__, orig_vars)
+- return wrapper
+
+ def unicode_convertible (clazz):
+ if not PY3:
+diff --git a/pyxb/utils/unicode.py b/pyxb/utils/unicode.py
+index e4d98ae..a3dc33f 100644
+--- a/pyxb/utils/unicode.py
++++ b/pyxb/utils/unicode.py
+@@ -32,11 +32,12 @@ and refers to U{Unicode Standard Annex #27: Unicode 3.1
+ <http://www.unicode.org/unicode/reports/tr27/>}.
+ """
+
++from __future__ import absolute_import
+ import re
+ import logging
+ import pyxb.utils.utility
+ from pyxb.utils import six
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ _log = logging.getLogger(__name__)
+
+diff --git a/pyxb/utils/utility.py b/pyxb/utils/utility.py
+index feaa014..d621fa7 100644
+--- a/pyxb/utils/utility.py
++++ b/pyxb/utils/utility.py
+@@ -15,11 +15,12 @@
+
+ """Utility functions and classes."""
+
++from __future__ import absolute_import
+ import re
+ import os
+ import errno
+ import pyxb
+-from pyxb.utils.six.moves.urllib import parse as urlparse
++from six.moves.urllib import parse as urlparse
+ import time
+ import datetime
+ import logging
+@@ -715,7 +716,7 @@ def DataFromURI (uri, archive_directory=None):
+ If the uri does not include a scheme (e.g., C{http:}), it is
+ assumed to be a file path on the local system."""
+
+- from pyxb.utils.six.moves.urllib.request import urlopen
++ from six.moves.urllib.request import urlopen
+ stream = None
+ exc = None
+ # Only something that has a colon is a non-file URI. Some things
+diff --git a/pyxb/xmlschema/structures.py b/pyxb/xmlschema/structures.py
+index abc62f0..24cbd3c 100644
+--- a/pyxb/xmlschema/structures.py
++++ b/pyxb/xmlschema/structures.py
+@@ -36,7 +36,7 @@ import re
+ import logging
+ from xml.dom import Node
+ import copy
+-from pyxb.utils.six.moves.urllib import parse as urlparse
++from six.moves.urllib import parse as urlparse
+ import os.path
+
+ import pyxb
+diff --git a/scripts/pyxbwsdl b/scripts/pyxbwsdl
+index 0249e59..f74ecc3 100755
+--- a/scripts/pyxbwsdl
++++ b/scripts/pyxbwsdl
+@@ -9,7 +9,7 @@
+ from __future__ import print_function
+ import sys
+ import xml.dom.minidom
+-from pyxb.utils.six.moves.urllib.request import urlopen
++from six.moves.urllib.request import urlopen
+ import logging
+
+ logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
+diff --git a/tests/trac/test-trac-0175.py b/tests/trac/test-trac-0175.py
+index 192d442..ed5900f 100644
+--- a/tests/trac/test-trac-0175.py
++++ b/tests/trac/test-trac-0175.py
+@@ -8,7 +8,7 @@ import pyxb.utils.domutils
+ import operator
+ import functools
+ from xml.dom import Node
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ import os.path
+ xsd='''<?xml version="1.0" encoding="UTF-8"?>
+diff --git a/tests/trac/test-trac-0207.py b/tests/trac/test-trac-0207.py
+index a7dbcb2..e08297a 100644
+--- a/tests/trac/test-trac-0207.py
++++ b/tests/trac/test-trac-0207.py
+@@ -6,7 +6,7 @@ _log = logging.getLogger(__name__)
+ import pyxb
+ import pyxb.utils.utility
+ import pyxb.binding.datatypes as xsd
+-from pyxb.utils.six.moves import cPickle as pickle
++from six.moves import cPickle as pickle
+
+ import unittest
+
+diff --git a/tests/trac/trac-0033/tread.py b/tests/trac/trac-0033/tread.py
+index daad306..f4a417f 100644
+--- a/tests/trac/trac-0033/tread.py
++++ b/tests/trac/trac-0033/tread.py
+@@ -7,7 +7,7 @@ _log = logging.getLogger(__name__)
+ import time
+ import pyxb.binding.generate
+ import pyxb.utils.domutils
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ max_reps = 20
+
+diff --git a/tests/utils/test-fac.py b/tests/utils/test-fac.py
+index a908ca3..4f131e4 100644
+--- a/tests/utils/test-fac.py
++++ b/tests/utils/test-fac.py
+@@ -2,7 +2,7 @@ import unittest
+ import sys
+ from pyxb.utils.fac import *
+ from pyxb.utils import six
+-from pyxb.utils.six.moves import xrange
++from six.moves import xrange
+
+ class TestFAC (unittest.TestCase):
+ a = Symbol('a')
+--
+2.1.0
+
diff --git a/PyXB.spec b/PyXB.spec
index 6f4d83b..ab32a3f 100644
--- a/PyXB.spec
+++ b/PyXB.spec
@@ -8,17 +8,22 @@
Name: PyXB
Version: 1.2.4
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Python XML Schema Bindings
License: Apache
URL: http://pyxb.sourceforge.net/
Source0: https://github.com/pabigot/pyxb/archive/%{name}-%{version}.tar.gz
+Patch0: 0001-unbundle-six.patch
+
BuildArch: noarch
BuildArch: noarch
BuildRequires: python2-devel
+BuildRequires: python-six
+Requires: python-six
%if 0%{?with_python3}
BuildRequires: python3-devel
+BuildRequires: python3-six
%endif # if with_python3
%description
@@ -35,6 +40,7 @@ This package contains documentation and examples for PyXB.
%if 0%{?with_python3}
%package -n python3-PyXB
Summary: Python XML Schema Bindings
+Requires: python3-six
%description -n python3-PyXB
PyXB (“pixbee”) is a pure Python package that generates Python source
@@ -52,6 +58,8 @@ This package contains documentation and examples for PyXB.
%prep
%setup -q -n pyxb-%{name}-%{version}
+%patch0 -p1
+
%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
@@ -116,6 +124,9 @@ rm -rf %{buildroot}
%changelog
+* Tue Jan 20 2015 Michal Srb <msrb at redhat.com> - 1.2.4-2
+- Unbundle python-six
+
* Mon Oct 20 2014 Michal Srb <msrb at redhat.com> - 1.2.4-1
- Update to official upstream version 1.2.4
More information about the scm-commits
mailing list