diff options
author | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2021-10-25 15:09:17 +0000 |
---|---|---|
committer | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2021-10-25 15:57:34 +0000 |
commit | e2f07d2ed3886e5176133deb6a446f01167f23da (patch) | |
tree | c801fb66084d4db924f339b89079e0858ec583ee | |
parent | 6eaf83b3eac8e295cf462081cbba77a2470710cf (diff) | |
download | ports-e2f07d2ed3886e5176133deb6a446f01167f23da.tar.gz ports-e2f07d2ed3886e5176133deb6a446f01167f23da.zip |
net/py-suds-jurko: Fix build with py-setuptools 58.0.0+
- Bump PORTREVISION for package change
===> Configuring for py38-suds-jurko-0.6_1
error in suds-jurko setup command: use_2to3 is invalid.
*** Error code 1
Stop.
make: stopped in /usr/ports/net/py-suds-jurko
Reference: https://github.com/pypa/setuptools/blob/main/CHANGES.rst
-rw-r--r-- | net/py-suds-jurko/Makefile | 25 | ||||
-rw-r--r-- | net/py-suds-jurko/files/patch-2to3 | 1952 | ||||
-rw-r--r-- | net/py-suds-jurko/files/patch-setup.py | 20 |
3 files changed, 1974 insertions, 23 deletions
diff --git a/net/py-suds-jurko/Makefile b/net/py-suds-jurko/Makefile index 34d36af5bfc9..5178c657a084 100644 --- a/net/py-suds-jurko/Makefile +++ b/net/py-suds-jurko/Makefile @@ -2,7 +2,7 @@ PORTNAME= suds-jurko PORTVERSION= 0.6 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= net python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -20,27 +20,6 @@ USE_PYTHON= autoplist concurrent distutils NO_ARCH= yes -post-patch: - # Move the tests into the main package so - # they are processed by 2to3 so we can test Python 3 - @${MV} ${WRKSRC}/tests ${WRKSRC}/suds/tests - # Compensate for the package/module name change - @${REINPLACE_CMD} -e 's|import tests|import suds.tests|g' \ - ${WRKSRC}/suds/tests/test_argument_parser.py \ - ${WRKSRC}/suds/tests/test_date_time.py \ - ${WRKSRC}/suds/tests/test_input_parameters.py \ - ${WRKSRC}/suds/tests/test_reply_handling.py \ - ${WRKSRC}/suds/tests/test_request_construction.py \ - ${WRKSRC}/suds/tests/test_suds.py \ - ${WRKSRC}/suds/tests/test_timezone.py - @${REINPLACE_CMD} -e 's|tests.|suds.tests.|g' \ - ${WRKSRC}/suds/tests/conftest.py \ - ${WRKSRC}/suds/tests/test_reply_handling.py \ - ${WRKSRC}/suds/tests/test_suds.py \ - ${WRKSRC}/suds/tests/test_request_construction.py \ - ${WRKSRC}/suds/tests/test_input_parameters.py \ - ${WRKSRC}/suds/tests/test_argument_parser.py - # lambda: foo needed due to wanting to exclude parametrized tests # https://github.com/pytest-dev/pytest/issues/5881 # https://github.com/pytest-dev/pytest/issues/6177 @@ -59,6 +38,6 @@ do-test: and not (lambda: locals)()()['test_choice_containing_an_empty_sequence[test_args_required0]'] \ and not (lambda: locals)()()['test_choice_explicitly_marked_as_optional[choice0]'] \ and not test_sending_unicode_data" \ - build/lib/suds/tests + build/lib/tests .include <bsd.port.mk> diff --git a/net/py-suds-jurko/files/patch-2to3 b/net/py-suds-jurko/files/patch-2to3 new file mode 100644 index 000000000000..d220b27c4300 --- /dev/null +++ b/net/py-suds-jurko/files/patch-2to3 @@ -0,0 +1,1952 @@ +--- suds/bindings/binding.py.orig 2021-09-20 17:08:56 UTC ++++ suds/bindings/binding.py +@@ -88,7 +88,7 @@ class Binding: + @return: A collection of parameter definitions + @rtype: [I{pdef},..] + """ +- raise Exception, 'not implemented' ++ raise Exception('not implemented') + + def get_message(self, method, args, kwargs): + """ +@@ -286,7 +286,7 @@ class Binding: + @return: The XML content for the <body/> + @rtype: [L{Element},..] + """ +- raise Exception, 'not implemented' ++ raise Exception('not implemented') + + def headercontent(self, method): + """ +@@ -339,7 +339,7 @@ class Binding: + @return: The body content. + @rtype: [L{Element},...] + """ +- raise Exception, 'not implemented' ++ raise Exception('not implemented') + + def body(self, content): + """ +--- suds/client.py.orig 2021-09-20 17:08:56 UTC ++++ suds/client.py +@@ -37,12 +37,12 @@ from suds.transport import TransportError, Request + from suds.transport.https import HttpAuthenticated + from suds.umx.basic import Basic as UmxBasic + from suds.wsdl import Definitions +-import sudsobject ++from . import sudsobject + +-from cookielib import CookieJar ++from http.cookiejar import CookieJar + from copy import deepcopy +-import httplib +-from urlparse import urlparse ++import http.client ++from urllib.parse import urlparse + + from logging import getLogger + log = getLogger(__name__) +@@ -181,7 +181,7 @@ class Client(UnicodeMixin): + if ( suds.__build__ ): + s.append(' build: %s' % suds.__build__) + for sd in self.sd: +- s.append('\n\n%s' % unicode(sd)) ++ s.append('\n\n%s' % str(sd)) + return ''.join(s) + + +@@ -223,7 +223,7 @@ class Factory: + else: + try: + result = self.builder.build(type) +- except Exception, e: ++ except Exception as e: + log.error("create '%s' failed", name, exc_info=True) + raise BuildError(name, e) + timer.stop() +@@ -312,20 +312,20 @@ class ServiceSelector: + """ + service = None + if not len(self.__services): +- raise Exception, 'No services defined' ++ raise Exception('No services defined') + if isinstance(name, int): + try: + service = self.__services[name] + name = service.name + except IndexError: +- raise ServiceNotFound, 'at [%d]' % name ++ raise ServiceNotFound('at [%d]' % name) + else: + for s in self.__services: + if name == s.name: + service = s + break + if service is None: +- raise ServiceNotFound, name ++ raise ServiceNotFound(name) + return PortSelector(self.__client, service.ports, name) + + def __ds(self): +@@ -413,13 +413,13 @@ class PortSelector: + """ + port = None + if not len(self.__ports): +- raise Exception, 'No ports defined: %s' % self.__qn ++ raise Exception('No ports defined: %s' % self.__qn) + if isinstance(name, int): + qn = '%s[%d]' % (self.__qn, name) + try: + port = self.__ports[name] + except IndexError: +- raise PortNotFound, qn ++ raise PortNotFound(qn) + else: + qn = '.'.join((self.__qn, name)) + for p in self.__ports: +@@ -427,7 +427,7 @@ class PortSelector: + port = p + break + if port is None: +- raise PortNotFound, qn ++ raise PortNotFound(qn) + qn = '.'.join((self.__qn, port.name)) + return MethodSelector(self.__client, port.methods, qn) + +@@ -488,7 +488,7 @@ class MethodSelector: + m = self.__methods.get(name) + if m is None: + qn = '.'.join((self.__qn, name)) +- raise MethodNotFound, qn ++ raise MethodNotFound(qn) + return Method(self.__client, m) + + +@@ -519,10 +519,10 @@ class Method: + client = clientclass(self.client, self.method) + try: + return client.invoke(args, kwargs) +- except WebFault, e: ++ except WebFault as e: + if self.faults(): + raise +- return (httplib.INTERNAL_SERVER_ERROR, e) ++ return (http.client.INTERNAL_SERVER_ERROR, e) + + def faults(self): + """ get faults option """ +@@ -613,7 +613,7 @@ class SoapClient: + reply = self.options.transport.send(request) + timer.stop() + metrics.log.debug('waited %s on server reply', timer) +- except TransportError, e: ++ except TransportError as e: + content = e.fp and e.fp.read() or '' + return self.process_reply(reply=content, status=e.httpcode, + description=tostr(e), original_soapenv=original_soapenv) +@@ -623,12 +623,12 @@ class SoapClient: + def process_reply(self, reply, status=None, description=None, + original_soapenv=None): + if status is None: +- status = httplib.OK +- if status in (httplib.ACCEPTED, httplib.NO_CONTENT): ++ status = http.client.OK ++ if status in (http.client.ACCEPTED, http.client.NO_CONTENT): + return + failed = True + try: +- if status == httplib.OK: ++ if status == http.client.OK: + log.debug('HTTP succeeded:\n%s', reply) + else: + log.debug('HTTP failed - %d - %s:\n%s', status, description, +@@ -657,19 +657,19 @@ class SoapClient: + # An INSTANCE MUST use a "500 Internal Server Error" HTTP status + # code if the response message is a SOAP Fault. + replyroot = None +- if status in (httplib.OK, httplib.INTERNAL_SERVER_ERROR): ++ if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR): + replyroot = _parse(reply) + plugins.message.parsed(reply=replyroot) + fault = self.get_fault(replyroot) + if fault: +- if status != httplib.INTERNAL_SERVER_ERROR: ++ if status != http.client.INTERNAL_SERVER_ERROR: + log.warn("Web service reported a SOAP processing " + "fault using an unexpected HTTP status code %d. " + "Reporting as an internal server error.", status) + if self.options.faults: + raise WebFault(fault, replyroot) +- return (httplib.INTERNAL_SERVER_ERROR, fault) +- if status != httplib.OK: ++ return (http.client.INTERNAL_SERVER_ERROR, fault) ++ if status != http.client.OK: + if self.options.faults: + # (todo) + # Use a more specific exception class here. +@@ -688,7 +688,7 @@ class SoapClient: + failed = False + if self.options.faults: + return result +- return (httplib.OK, result) ++ return (http.client.OK, result) + finally: + if failed and original_soapenv: + log.error(original_soapenv) +@@ -717,7 +717,7 @@ class SoapClient: + @rtype: dict + """ + action = self.method.soap.action +- if isinstance(action, unicode): ++ if isinstance(action, str): + action = action.encode('utf-8') + stock = {'Content-Type':'text/xml; charset=utf-8', 'SOAPAction':action} + result = dict(stock, **self.options.headers) +@@ -742,7 +742,7 @@ class SimClient(SoapClient): + @classmethod + def simulation(cls, kwargs): + """ get whether loopback has been specified in the I{kwargs}. """ +- return kwargs.has_key(SimClient.injkey) ++ return SimClient.injkey in kwargs + + def invoke(self, args, kwargs): + """ +--- suds/mx/__init__.py.orig 2021-09-20 17:08:56 UTC ++++ suds/mx/__init__.py +@@ -43,7 +43,7 @@ class Content(Object): + Object.__init__(self) + self.tag = tag + self.value = value +- for k,v in kwargs.items(): ++ for k,v in list(kwargs.items()): + setattr(self, k, v) + + def __getattr__(self, name): +@@ -52,8 +52,7 @@ class Content(Object): + v = None + setattr(self, name, v) + else: +- raise AttributeError, \ +- 'Content has no attribute %s' % name ++ raise AttributeError('Content has no attribute %s' % name) + else: + v = self.__dict__[name] + return v +--- suds/mx/literal.py.orig 2021-09-20 17:08:56 UTC ++++ suds/mx/literal.py +@@ -131,9 +131,8 @@ class Typed(Core): + if current == content.type: + self.resolver.pop() + else: +- raise Exception, \ +- 'content (end) mismatch: top=(%s) cont=(%s)' % \ +- (current, content) ++ raise Exception('content (end) mismatch: top=(%s) cont=(%s)' % \ ++ (current, content)) + + def node(self, content): + # +--- suds/plugin.py.orig 2021-09-20 17:08:56 UTC ++++ suds/plugin.py +@@ -205,7 +205,7 @@ class PluginContainer: + plugins.append(p) + return PluginDomain(ctx, plugins) + else: +- raise Exception, 'plugin domain (%s), invalid' % name ++ raise Exception('plugin domain (%s), invalid' % name) + + + class PluginDomain: +@@ -252,6 +252,6 @@ class Method: + method = getattr(plugin, self.name, None) + if method and callable(method): + method(ctx) +- except Exception, pe: ++ except Exception as pe: + log.exception(pe) + return ctx +--- suds/properties.py.orig 2021-09-20 17:08:56 UTC ++++ suds/properties.py +@@ -67,23 +67,23 @@ class Link(object): + """ + if pA in pB.links or \ + pB in pA.links: +- raise Exception, 'Already linked' ++ raise Exception('Already linked') + dA = pA.domains() + dB = pB.domains() + for d in dA: + if d in dB: +- raise Exception, 'Duplicate domain "%s" found' % d ++ raise Exception('Duplicate domain "%s" found' % d) + for d in dB: + if d in dA: +- raise Exception, 'Duplicate domain "%s" found' % d +- kA = pA.keys() +- kB = pB.keys() ++ raise Exception('Duplicate domain "%s" found' % d) ++ kA = list(pA.keys()) ++ kB = list(pB.keys()) + for k in kA: + if k in kB: +- raise Exception, 'Duplicate key %s found' % k ++ raise Exception('Duplicate key %s found' % k) + for k in kB: + if k in kA: +- raise Exception, 'Duplicate key %s found' % k ++ raise Exception('Duplicate key %s found' % k) + return self + + def teardown(self): +@@ -177,7 +177,7 @@ class Definition: + if len(self.classes) and \ + not isinstance(value, self.classes): + msg = '"%s" must be: %s' % (self.name, self.classes) +- raise AttributeError,msg ++ raise AttributeError(msg) + + + def __repr__(self): +@@ -251,7 +251,7 @@ class Properties: + """ + if isinstance(other, Properties): + other = other.defined +- for n,v in other.items(): ++ for n,v in list(other.items()): + self.set(n, v) + return self + +@@ -372,7 +372,7 @@ class Properties: + history = [] + history.append(self) + keys = set() +- keys.update(self.definitions.keys()) ++ keys.update(list(self.definitions.keys())) + for x in self.links: + if x in history: + continue +@@ -408,7 +408,7 @@ class Properties: + @return: self + @rtype: L{Properties} + """ +- for d in self.definitions.values(): ++ for d in list(self.definitions.values()): + self.defined[d.name] = d.default + return self + +@@ -434,10 +434,10 @@ class Properties: + def str(self, history): + s = [] + s.append('Definitions:') +- for d in self.definitions.values(): ++ for d in list(self.definitions.values()): + s.append('\t%s' % repr(d)) + s.append('Content:') +- for d in self.defined.items(): ++ for d in list(self.defined.items()): + s.append('\t%s' % str(d)) + if self not in history: + history.append(self) +--- suds/servicedefinition.py.orig 2021-09-20 17:08:56 UTC ++++ suds/servicedefinition.py +@@ -80,7 +80,7 @@ class ServiceDefinition(UnicodeMixin): + timer.start() + for port in self.service.ports: + p = self.findport(port) +- for op in port.binding.operations.values(): ++ for op in list(port.binding.operations.values()): + m = p[0].method(op.name) + binding = m.binding.input + method = (m.name, binding.param_defs(m)) +@@ -138,7 +138,7 @@ class ServiceDefinition(UnicodeMixin): + + def publictypes(self): + """Get all public types.""" +- for t in self.wsdl.schema.types.values(): ++ for t in list(self.wsdl.schema.types.values()): + if t in self.params: continue + if t in self.types: continue + item = (t, t) +@@ -152,7 +152,7 @@ class ServiceDefinition(UnicodeMixin): + WSDL document. + """ + used = [ns[0] for ns in self.prefixes] +- used += [ns[0] for ns in self.wsdl.root.nsprefixes.items()] ++ used += [ns[0] for ns in list(self.wsdl.root.nsprefixes.items())] + for n in range(0,1024): + p = 'ns%d'%n + if p not in used: +@@ -235,6 +235,6 @@ class ServiceDefinition(UnicodeMixin): + def __unicode__(self): + try: + return self.description() +- except Exception, e: ++ except Exception as e: + log.exception(e) + return tostr(e) +--- suds/store.py.orig 2021-09-20 17:08:56 UTC ++++ suds/store.py +@@ -566,7 +566,7 @@ class DocumentStore: + protocol, location = self.__split(url) + content = self.__find(location) + if protocol == 'suds' and content is None: +- raise Exception, 'location "%s" not in document store' % location ++ raise Exception('location "%s" not in document store' % location) + return content + + def __find(self, location): +--- suds/sudsobject.py.orig 2021-09-20 17:08:56 UTC ++++ suds/sudsobject.py +@@ -110,7 +110,7 @@ class Factory: + inst = subclass() + else: + inst = Object() +- for a in dict.items(): ++ for a in list(dict.items()): + setattr(inst, a[0], a[1]) + return inst + +@@ -146,7 +146,7 @@ class Object(UnicodeMixin): + self.__keylist__.remove(name) + except: + cls = self.__class__.__name__ +- raise AttributeError, "%s has no attribute '%s'" % (cls, name) ++ raise AttributeError("%s has no attribute '%s'" % (cls, name)) + + def __getitem__(self, name): + if isinstance(name, int): +@@ -179,7 +179,7 @@ class Iter: + self.keylist = self.__keylist(sobject) + self.index = 0 + +- def next(self): ++ def __next__(self): + keylist = self.keylist + nkeys = len(self.keylist) + while self.index < nkeys: +@@ -271,7 +271,7 @@ class Printer: + if len(object) == 0: + return '<empty>' + return self.print_collection(object, h, n+2) +- if isinstance(object, basestring): ++ if isinstance(object, str): + return '"%s"' % tostr(object) + return '%s' % tostr(object) + +@@ -325,7 +325,7 @@ class Printer: + s.append('\n') + s.append(self.indent(n)) + s.append('{') +- for item in d.items(): ++ for item in list(d.items()): + s.append('\n') + s.append(self.indent(n+1)) + if isinstance(item[1], (list,tuple)): +--- suds/transport/http.py.orig 2021-09-20 17:08:56 UTC ++++ suds/transport/http.py +@@ -22,12 +22,12 @@ from suds.properties import Unskin + from suds.transport import * + + import base64 +-from cookielib import CookieJar +-import httplib ++from http.cookiejar import CookieJar ++import http.client + import socket + import sys +-import urllib2 +-from urlparse import urlparse ++import urllib.request, urllib.error, urllib.parse ++from urllib.parse import urlparse + + from logging import getLogger + log = getLogger(__name__) +@@ -62,10 +62,10 @@ class HttpTransport(Transport): + try: + url = self.__get_request_url(request) + log.debug('opening (%s)', url) +- u2request = urllib2.Request(url) ++ u2request = urllib.request.Request(url) + self.proxy = self.options.proxy + return self.u2open(u2request) +- except urllib2.HTTPError, e: ++ except urllib.error.HTTPError as e: + raise TransportError(str(e), e.code, e.fp) + + def send(self, request): +@@ -74,7 +74,7 @@ class HttpTransport(Transport): + msg = request.message + headers = request.headers + try: +- u2request = urllib2.Request(url, msg, headers) ++ u2request = urllib.request.Request(url, msg, headers) + self.addcookies(u2request) + self.proxy = self.options.proxy + request.headers.update(u2request.headers) +@@ -85,10 +85,10 @@ class HttpTransport(Transport): + headers = fp.headers.dict + else: + headers = fp.headers +- result = Reply(httplib.OK, headers, fp.read()) ++ result = Reply(http.client.OK, headers, fp.read()) + log.debug('received:\n%s', result) +- except urllib2.HTTPError, e: +- if e.code in (httplib.ACCEPTED, httplib.NO_CONTENT): ++ except urllib.error.HTTPError as e: ++ if e.code in (http.client.ACCEPTED, http.client.NO_CONTENT): + result = None + else: + raise TransportError(e.msg, e.code, e.fp) +@@ -140,7 +140,7 @@ class HttpTransport(Transport): + + """ + if self.urlopener is None: +- return urllib2.build_opener(*self.u2handlers()) ++ return urllib.request.build_opener(*self.u2handlers()) + return self.urlopener + + def u2handlers(self): +@@ -152,7 +152,7 @@ class HttpTransport(Transport): + + """ + handlers = [] +- handlers.append(urllib2.ProxyHandler(self.proxy)) ++ handlers.append(urllib.request.ProxyHandler(self.proxy)) + return handlers + + def u2ver(self): +@@ -165,7 +165,7 @@ class HttpTransport(Transport): + try: + part = urllib2.__version__.split('.', 1) + return float('.'.join(part)) +- except Exception, e: ++ except Exception as e: + log.exception(e) + return 0 + +--- suds/umx/__init__.py.orig 2021-09-20 17:08:56 UTC ++++ suds/umx/__init__.py +@@ -40,7 +40,7 @@ class Content(Object): + self.node = node + self.data = None + self.text = None +- for k,v in kwargs.items(): ++ for k,v in list(kwargs.items()): + setattr(self, k, v) + + def __getattr__(self, name): +@@ -49,8 +49,7 @@ class Content(Object): + v = None + setattr(self, name, v) + else: +- raise AttributeError, \ +- 'Content has no attribute %s' % name ++ raise AttributeError('Content has no attribute %s' % name) + else: + v = self.__dict__[name] + return v +--- suds/wsdl.py.orig 2021-09-20 17:08:56 UTC ++++ suds/wsdl.py +@@ -31,8 +31,8 @@ from suds.sudsobject import Object, Facade, Metadata + from suds.reader import DocumentReader + + import re +-import soaparray +-from urlparse import urljoin ++from . import soaparray ++from urllib.parse import urljoin + + from logging import getLogger + log = getLogger(__name__) +@@ -232,7 +232,7 @@ class Definitions(WObject): + for p in service.ports: + binding = p.binding + ptype = p.binding.type +- operations = p.binding.type.operations.values() ++ operations = list(p.binding.type.operations.values()) + for name in [op.name for op in operations]: + m = Facade('Method') + m.name = name +@@ -249,8 +249,8 @@ class Definitions(WObject): + + def set_wrapped(self): + """ set (wrapped|bare) flag on messages """ +- for b in self.bindings.values(): +- for op in b.operations.values(): ++ for b in list(self.bindings.values()): ++ for op in list(b.operations.values()): + for body in (op.soap.input.body, op.soap.output.body): + body.wrapped = False + if not self.options.unwrap: +@@ -482,7 +482,7 @@ class PortType(NamedObject): + @param definitions: A definitions object. + @type definitions: L{Definitions} + """ +- for op in self.operations.values(): ++ for op in list(self.operations.values()): + if op.input is None: + op.input = Message(Element('no-input'), definitions) + else: +@@ -505,7 +505,7 @@ class PortType(NamedObject): + qref = qualify(f.message, self.root, definitions.tns) + msg = definitions.messages.get(qref) + if msg is None: +- raise Exception, "msg '%s', not-found" % f.message ++ raise Exception("msg '%s', not-found" % f.message) + f.message = msg + + def operation(self, name): +@@ -519,7 +519,7 @@ class PortType(NamedObject): + """ + try: + return self.operations[name] +- except Exception, e: ++ except Exception as e: + raise MethodNotFound(name) + + def __gt__(self, other): +@@ -654,7 +654,7 @@ class Binding(NamedObject): + @type definitions: L{Definitions} + """ + self.resolveport(definitions) +- for op in self.operations.values(): ++ for op in list(self.operations.values()): + self.resolvesoapbody(definitions, op) + self.resolveheaders(definitions, op) + self.resolvefaults(definitions, op) +@@ -683,8 +683,7 @@ class Binding(NamedObject): + """ + ptop = self.type.operation(op.name) + if ptop is None: +- raise Exception, \ +- "operation '%s' not defined in portType" % op.name ++ raise Exception("operation '%s' not defined in portType" % op.name) + soap = op.soap + parts = soap.input.body.parts + if len(parts): +@@ -720,15 +719,14 @@ class Binding(NamedObject): + ref = qualify(mn, self.root, definitions.tns) + message = definitions.messages.get(ref) + if message is None: +- raise Exception, "message'%s', not-found" % mn ++ raise Exception("message'%s', not-found" % mn) + pn = header.part + for p in message.parts: + if p.name == pn: + header.part = p + break + if pn == header.part: +- raise Exception, \ +- "message '%s' has not part named '%s'" % (ref, pn) ++ raise Exception("message '%s' has not part named '%s'" % (ref, pn)) + + def resolvefaults(self, definitions, op): + """ +@@ -741,8 +739,7 @@ class Binding(NamedObject): + """ + ptop = self.type.operation(op.name) + if ptop is None: +- raise Exception, \ +- "operation '%s' not defined in portType" % op.name ++ raise Exception("operation '%s' not defined in portType" % op.name) + soap = op.soap + for fault in soap.faults: + for f in ptop.faults: +@@ -751,8 +748,7 @@ class Binding(NamedObject): + continue + if hasattr(fault, 'parts'): + continue +- raise Exception, \ +- "fault '%s' not defined in portType '%s'" % (fault.name, self.type.name) ++ raise Exception("fault '%s' not defined in portType '%s'" % (fault.name, self.type.name)) + + def operation(self, name): + """ +@@ -854,7 +850,7 @@ class Service(NamedObject): + @type names: [str,..] + """ + for p in self.ports: +- for m in p.methods.values(): ++ for m in list(p.methods.values()): + if names is None or m.name in names: + m.location = url + +--- suds/xsd/deplist.py.orig 2021-09-20 17:08:56 UTC ++++ suds/xsd/deplist.py +@@ -77,7 +77,7 @@ class DepList: + while len(self.stack): + try: + top = self.top() +- ref = top[1].next() ++ ref = next(top[1]) + refd = self.index.get(ref) + if refd is None: + log.debug('"%s" not found, skipped', Repr(ref)) +@@ -137,4 +137,4 @@ if __name__ == '__main__': + x = ('x', ()) + L = DepList() + L.add(c, e, d, b, f, a, x) +- print [x[0] for x in L.sort()] ++ print([x[0] for x in L.sort()]) +--- suds/xsd/query.py.orig 2021-09-20 17:08:56 UTC ++++ suds/xsd/query.py +@@ -54,7 +54,7 @@ class Query(Object): + @return: The item matching the search criteria. + @rtype: L{sxbase.SchemaObject} + """ +- raise Exception, 'not-implemented by subclass' ++ raise Exception('not-implemented by subclass') + + def filter(self, result): + """ +--- suds/xsd/sxbasic.py.orig 2021-09-20 17:08:56 UTC ++++ suds/xsd/sxbasic.py +@@ -26,7 +26,7 @@ from suds.xsd.query import * + from suds.sax import Namespace + from suds.transport import TransportError + from suds.reader import DocumentReader +-from urlparse import urljoin ++from urllib.parse import urljoin + + from logging import getLogger + log = getLogger(__name__) +@@ -667,7 +667,7 @@ class Include(SchemaObject): + root.set(TNS, tns) + else: + if self.schema.tns[1] != tns: +- raise Exception, '%s mismatch' % TNS ++ raise Exception('%s mismatch' % TNS) + + + def description(self): +--- tests/external/axis1.py.orig 2021-09-20 17:08:56 UTC ++++ tests/external/axis1.py +@@ -36,34 +36,34 @@ credentials = dict(username='jortel', password='abc123 + class MyInitPlugin(InitPlugin): + + def initialized(self, context): +- print 'PLUGIN (init): initialized: ctx=%s' % context.__dict__ ++ print('PLUGIN (init): initialized: ctx=%s' % context.__dict__) + + + class MyDocumentPlugin(DocumentPlugin): + + def loaded(self, context): +- print 'PLUGIN (document): loaded: ctx=%s' % context.__dict__ ++ print('PLUGIN (document): loaded: ctx=%s' % context.__dict__) + + def parsed(self, context): +- print 'PLUGIN (document): parsed: ctx=%s' % context.__dict__ ++ print('PLUGIN (document): parsed: ctx=%s' % context.__dict__) + + + class MyMessagePlugin(MessagePlugin): + + def marshalled(self, context): +- print 'PLUGIN (message): marshalled: ctx=%s' % context.__dict__ ++ print('PLUGIN (message): marshalled: ctx=%s' % context.__dict__) + + def sending(self, context): +- print 'PLUGIN (message): sending: ctx=%s' % context.__dict__ ++ print('PLUGIN (message): sending: ctx=%s' % context.__dict__) + + def received(self, context): +- print 'PLUGIN (message): received: ctx=%s' % context.__dict__ ++ print('PLUGIN (message): received: ctx=%s' % context.__dict__) + + def parsed(self, context): +- print 'PLUGIN (message): parsed: ctx=%s' % context.__dict__ ++ print('PLUGIN (message): parsed: ctx=%s' % context.__dict__) + + def unmarshalled(self, context): +- print 'PLUGIN: (massage): unmarshalled: ctx=%s' % context.__dict__ ++ print('PLUGIN: (massage): unmarshalled: ctx=%s' % context.__dict__) + + + myplugins = ( +@@ -75,27 +75,27 @@ myplugins = ( + + def start(url): + global errors +- print '\n________________________________________________________________\n' +- print 'Test @ ( %s )\nerrors = %d\n' % (url, errors) ++ print('\n________________________________________________________________\n') ++ print('Test @ ( %s )\nerrors = %d\n' % (url, errors)) + + try: + url = 'http://localhost:8081/axis/services/basic-rpc-encoded?wsdl' + start(url) + t = HttpAuthenticated(**credentials) + client = Client(url, transport=t, cache=None, plugins=myplugins) +- print client ++ print(client) + # + # create a name object using the wsdl + # +- print 'create name' ++ print('create name') + name = client.factory.create('ns0:Name') +- name.first = u'jeff'+unichr(1234) ++ name.first = 'jeff'+chr(1234) + name.last = 'ortel' +- print name ++ print(name) + # + # create a phone object using the wsdl + # +- print 'create phone' ++ print('create phone') + phoneA = client.factory.create('ns0:Phone') + phoneA.npa = 410 + phoneA.nxx = 555 +@@ -119,18 +119,18 @@ try: + # create a person object using the wsdl + # + person = client.factory.create('ns0:Person') +- print '{empty} person=\n%s' % person ++ print('{empty} person=\n%s' % person) + person.name = name + person.age = 43 + person.phone = [phoneA,phoneB,phoneC] + person.pets = [dog] +- print 'person=\n%s' % person ++ print('person=\n%s' % person) + # + # add the person (using the webservice) + # +- print 'addPersion()' ++ print('addPersion()') + result = client.service.addPerson(person) +- print '\nreply(\n%s\n)\n' % str(result) ++ print('\nreply(\n%s\n)\n' % str(result)) + + # + # Async +@@ -159,22 +159,22 @@ try: + ap.age = person.age + ap.phone = person.phone + ap.pets = person.pets +- print 'AnotherPerson\n%s' % ap ++ print('AnotherPerson\n%s' % ap) + # + # update the person's name (using the webservice) + # +- print 'updatePersion()' ++ print('updatePersion()') + result = client.service.updatePerson(ap, newname) +- print '\nreply(\n%s\n)\n' % str(result) ++ print('\nreply(\n%s\n)\n' % str(result)) + result = client.service.updatePerson(ap, None) +- print '\nreply(\n%s\n)\n' % str(result) +-except WebFault, f: ++ print('\nreply(\n%s\n)\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +@@ -182,19 +182,19 @@ try: + start(url) + t = HttpAuthenticated(**credentials) + client = Client(url, transport=t, cache=None) +- print client ++ print(client) + # + # create a name object as dict + # +- print 'create name' ++ print('create name') + name = {} + name['first'] = 'Elmer' + name['last'] = 'Fudd' +- print name ++ print(name) + # + # create a phone as dict + # +- print 'create phone' ++ print('create phone') + phoneA = {} + phoneA['npa'] = 410 + phoneA['nxx'] = 555 +@@ -219,133 +219,133 @@ try: + # create a person as dict + # + person = {} +- print '{empty} person=\n%s' % person ++ print('{empty} person=\n%s' % person) + person['name'] = name + person['age'] = 43 + person['phone'] = [phoneA,phoneB, phoneC] + person['pets'] = [dog] +- print 'person=\n%s' % person ++ print('person=\n%s' % person) + # + # add the person (using the webservice) + # +- print 'addPersion()' ++ print('addPersion()') + result = client.service.addPerson(person) +- print '\nreply(\n%s\n)\n' % str(result) +-except WebFault, f: ++ print('\nreply(\n%s\n)\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print "echo(' this is cool ')" ++ print("echo(' this is cool ')") + result = client.service.echo('this is cool') +- print '\nreply( "%s" )\n' % str(result) +- print 'echo(None)' ++ print('\nreply( "%s" )\n' % str(result)) ++ print('echo(None)') + result = client.service.echo(None) +- print '\nreply( "%s" )\n' % str(result) +-except WebFault, f: ++ print('\nreply( "%s" )\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print 'hello()' ++ print('hello()') + result = client.service.hello() +- print '\nreply( %s )\n' % str(result) +-except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print 'testVoid()' ++ print('testVoid()') + result = client.service.getVoid() +- print '\nreply( %s )\n' % str(result) +-except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print '** new style arrays **' ++ print('** new style arrays **') + words = ['my', 'dog', 'likes', 'steak'] + result = client.service.printList(words) +- print '\nreply( %s )\n' % str(result) ++ print('\nreply( %s )\n' % str(result)) + +- print '** old style arrays **' ++ print('** old style arrays **') + array = client.factory.create('ArrayOf_xsd_string') +- print 'ArrayOf_xsd_string=\n%s' % array ++ print('ArrayOf_xsd_string=\n%s' % array) + array.item = ['my', 'dog', 'likes', 'steak'] + result = client.service.printList(array) +- print '\nreply( %s )\n' % str(result) +-except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + s = 'hello' + for n in range(0, 3): +- print 'getList(%s, %d)' % (s, n) ++ print('getList(%s, %d)' % (s, n)) + result = client.service.getList(s, n) +- print '\nreply( %s )\n' % str(result) ++ print('\nreply( %s )\n' % str(result)) + assert ( isinstance(result, list) and len(result) == n ) +-except WebFault, f: ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print 'testExceptions()' ++ print('testExceptions()') + result = client.service.throwException() +- print '\nreply( %s )\n' % tostr(result) ++ print('\nreply( %s )\n' % tostr(result)) + raise Exception('Fault expected and not raised') +-except WebFault, f: +- print f +- print f.fault +-except Exception, e: ++except WebFault as f: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://localhost:8081/axis/services/basic-rpc-encoded?wsdl' + start(url) + client = Client(url, faults=False, **credentials) +- print 'testExceptions()' ++ print('testExceptions()') + result = client.service.throwException() +- print '\nreply( %s )\n' % str(result) +-except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + +-print '\nFinished: errors=%d' % errors ++print('\nFinished: errors=%d' % errors) +--- tests/external/axis2.py.orig 2021-09-20 17:08:56 UTC ++++ tests/external/axis2.py +@@ -24,7 +24,7 @@ from datetime import datetime + + errors = 0 + url = 'http://localhost:8080/axis2/services/BasicService?wsdl' +-print 'url=%s' % url ++print('url=%s' % url) + + # + # create a service client using the wsdl. +@@ -34,25 +34,25 @@ client = Client(url) + # + # print the service (introspection) + # +-print client ++print(client) + +-print 'printList()' +-print client.service.printList(['a','b']) ++print('printList()') ++print(client.service.printList(['a','b'])) + + # + # create a name object using the wsdl + # +-print 'create name' ++print('create name') + name = client.factory.create('ns2:Name') +-name.first = u'jeff'+unichr(1234) ++name.first = 'jeff'+chr(1234) + name.last = 'ortel' + +-print name ++print(name) + + # + # create a phone object using the wsdl + # +-print 'create phone' ++print('create phone') + phoneA = client.factory.create('ns2:Phone') + phoneA.npa = 410 + phoneA.nxx = 822 +@@ -67,10 +67,10 @@ phoneB.number = 4406 + # create a dog + # + dog = client.factory.create('ns2:Dog') +-print dog ++print(dog) + dog.name = 'Chance' + dog.trained = True +-print dog ++print(dog) + + # + # create a person object using the wsdl +@@ -80,7 +80,7 @@ person = client.factory.create('ns2:Person') + # + # inspect empty person + # +-print '{empty} person=\n%s' % person ++print('{empty} person=\n%s' % person) + + person.name = name + person.age = None +@@ -92,14 +92,14 @@ person.pets.append(dog) + # + # inspect person + # +-print 'person=\n%s' % person ++print('person=\n%s' % person) + + # + # add the person (using the webservice) + # +-print 'addPersion()' ++print('addPersion()') + result = client.service.addPerson(person) +-print '\nreply(\n%s\n)\n' % result.encode('utf-8') ++print('\nreply(\n%s\n)\n' % result.encode('utf-8')) + + # + # create a new name object used to update the person +@@ -111,96 +111,96 @@ newname.last = None + # + # update the person's name (using the webservice) and print return person object + # +-print 'updatePersion()' ++print('updatePersion()') + result = client.service.updatePerson(person, newname) +-print '\nreply(\n%s\n)\n' % str(result) ++print('\nreply(\n%s\n)\n' % str(result)) + result = client.service.updatePerson(person, None) +-print '\nreply(\n%s\n)\n' % str(result) ++print('\nreply(\n%s\n)\n' % str(result)) + + + # + # invoke the echo service + # +-print 'echo()' ++print('echo()') + client.service.echo(None) + result = client.service.echo('this is cool') +-print '\nreply( %s )\n' % str(result) ++print('\nreply( %s )\n' % str(result)) + +-print 'echo() with {none}' ++print('echo() with {none}') + result = client.service.echo(None) +-print '\nreply( %s )\n' % str(result) ++print('\nreply( %s )\n' % str(result)) + + # + # invoke the hello service + # +-print 'hello()' ++print('hello()') + result = client.service.hello() +-print '\nreply( %s )\n' % str(result) ++print('\nreply( %s )\n' % str(result)) + + # + # invoke the testVoid service + # + try: +- print 'getVoid()' ++ print('getVoid()') + result = client.service.getVoid() +- print '\nreply( %s )\n' % str(result) +-except Exception, e: +- print e ++ print('\nreply( %s )\n' % str(result)) ++except Exception as e: ++ print(e) + + # + # test list args + # +-print 'getList(list)' ++print('getList(list)') + mylist = ['my', 'dog', 'likes', 'steak'] + result = client.service.printList(mylist) +-print '\nreply( %s )\n' % str(result) ++print('\nreply( %s )\n' % str(result)) + # tuple +-print 'testListArgs(tuple)' ++print('testListArgs(tuple)') + mylist = ('my', 'dog', 'likes', 'steak') + result = client.service.printList(mylist) +-print '\nreply( %s )\n' % str(result) ++print('\nreply( %s )\n' % str(result)) + + # + # test list returned + # + for n in range(0, 3): +- print 'getList(str, %d)' % n ++ print('getList(str, %d)' % n) + result = client.service.getList('hello', n) +- print '\nreply( %s )\n' % str(result) ++ print('\nreply( %s )\n' % str(result)) + assert ( isinstance(result, list) and len(result) == n ) + +-print 'addPet()' ++print('addPet()') + dog = client.factory.create('ns2:Dog') + dog.name = 'Chance' + dog.trained = True +-print dog ++print(dog) + try: + result = client.service.addPet(person, dog) +- print '\nreply( %s )\n' % str(result) +-except Exception, e: +- print e ++ print('\nreply( %s )\n' % str(result)) ++except Exception as e: ++ print(e) + +-print '___________________ E X C E P T I O N S __________________________' ++print('___________________ E X C E P T I O N S __________________________') + + # + # test exceptions + # + try: +- print 'throwException() faults=True' ++ print('throwException() faults=True') + result = client.service.throwException() +- print '\nreply( %s )\n' % tostr(result) +-except Exception, e: +- print e ++ print('\nreply( %s )\n' % tostr(result)) ++except Exception as e: ++ print(e) + + # + # test faults + # + try: +- print 'throwException() faults=False' ++ print('throwException() faults=False') + client.set_options(faults=False) + result = client.service.throwException() +- print '\nreply( %s )\n' % tostr(result) +-except Exception, e: +- print e ++ print('\nreply( %s )\n' % tostr(result)) ++except Exception as e: ++ print(e) + +-print '\nfinished: errors=%d' % errors ++print('\nfinished: errors=%d' % errors) +--- tests/external/jasper.py.orig 2021-09-20 17:08:56 UTC ++++ tests/external/jasper.py +@@ -26,22 +26,22 @@ errors = 0 + + + def start(url): +- print '\n________________________________________________________________\n' +- print 'Test @ ( %s )' % url ++ print('\n________________________________________________________________\n') ++ print('Test @ ( %s )' % url) + + try: + url = 'http://localhost:9090/jasperserver-pro/services/repository?wsdl' + start(url) + client = Client(url, username='jeff', password='ortel') +- print client +- print client.service.list('') +-except WebFault, f: ++ print(client) ++ print(client.service.list('')) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + +-print '\nFinished: errors = %d' % errors ++print('\nFinished: errors = %d' % errors) +--- tests/external/public.py.orig 2021-09-20 17:08:56 UTC ++++ tests/external/public.py +@@ -28,151 +28,151 @@ errors = 0 + + def start(url): + global errors +- print '\n________________________________________________________________\n' +- print 'Test @ ( %s ) %d' % (url, errors) ++ print('\n________________________________________________________________\n') ++ print('Test @ ( %s ) %d' % (url, errors)) + + try: + url = 'http://mssoapinterop.org/asmx/simple.asmx?WSDL' + start(url) + client = Client(url) +- print client ++ print(client) + # string + input = "42" + d = dict(inputString=input) + result = client.service.echoString(**d) +- print 'echoString() = %s' % result ++ print('echoString() = %s' % result) + assert result == input + # int + input = 42 + result = client.service.echoInteger(input) +- print 'echoInteger() = %s' % result ++ print('echoInteger() = %s' % result) + assert result == input + # float + input = 4.2 + result = client.service.echoFloat(input) +- print 'echoFloat() = %s' % result ++ print('echoFloat() = %s' % result) + assert result == input + # suds 0.3.8+ + result = client.service.echoIntegerArray([]) +- print 'echoIntegerArray() = %s' % result ++ print('echoIntegerArray() = %s' % result) + assert result is None + input = [1,2,3,4] + result = client.service.echoIntegerArray(input) +- print 'echoIntegerArray() = %s' % result ++ print('echoIntegerArray() = %s' % result) + assert result == input + result = client.service.echoIntegerArray(inputIntegerArray=input) +- print 'echoIntegerArray() = %s' % result ++ print('echoIntegerArray() = %s' % result) + assert result == input +-except WebFault, f: ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl' + start(url) + client = Client(url) +- print client ++ print(client) + token = client.service.login('soaptester', 'soaptester') +- print 'token="%s"' % token ++ print('token="%s"' % token) + user = client.service.getUser(token, 'soaptester') +- print 'user="%s"' % user +-except WebFault, f: ++ print('user="%s"' % user) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl' + start(url+' ** cloned **') + client = Client(url).clone() +- print '**clone**\n%s' % client ++ print('**clone**\n%s' % client) + token = client.service.login('soaptester', 'soaptester') +- print '**clone** token="%s"' % token ++ print('**clone** token="%s"' % token) + user = client.service.getUser(token, 'soaptester') +- print '**clone** user="%s"' % user +-except WebFault, f: ++ print('**clone** user="%s"' % user) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = ' http://www.boyzoid.com/comp/randomQuote.cfc?wsdl ' + start(url) + client = Client(url) +- print client +- print client.service.getQuote(False) +-except WebFault, f: ++ print(client) ++ print(client.service.getQuote(False)) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://www.zenfolio.com/zf/api/zfapi.asmx?wsdl' + start(url) + client = Client(url) +- print client ++ print(client) + #client.setport(0) + group = client.factory.create('Group') +- print 'Group:\n%s' % group +- print 'LoadGroupHierarchy("demo")' ++ print('Group:\n%s' % group) ++ print('LoadGroupHierarchy("demo")') + groupHierarchy = client.service.LoadGroupHierarchy("demo") +- print 'result:\n%s' % groupHierarchy +-except WebFault, f: ++ print('result:\n%s' % groupHierarchy) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://cert.synxis.com/interface/ChannelConnect.asmx?WSDL' + start(url) + client = Client(url) +- print client ++ print(client) + #client.setport(0) + tpa = client.factory.create('ns1:TPA_Extensions') +- print client.service.Ping(tpa, "hello") +-except WebFault, f: ++ print(client.service.Ping(tpa, "hello")) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'https://sec.neurofuzz-software.com/paos/genSSHA-SOAP.php?wsdl' + start(url) + client = Client(url) +- print client +- print client.service.genSSHA('hello', 'sha1') +-except WebFault, f: ++ print(client) ++ print(client.service.genSSHA('hello', 'sha1')) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +@@ -180,79 +180,79 @@ try: + start(url) + client = Client(url) + #print client.factory.resolver.schema +- print client +- print 'Logon()' ++ print(client) ++ print('Logon()') + reply = client.service.Logon('testuser','test') +- print reply +-except WebFault, f: ++ print(reply) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://soa.ebrev.info/service.wsdl' + start(url) + client = Client(url) +- print client +-except WebFault, f: ++ print(client) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = 'http://arcweb.esri.com/services/v2/MapImage.wsdl' + start(url) + client = Client(url) +- print client ++ print(client) + env = client.factory.create('ns2:Envelope') +- print env ++ print(env) + options = client.factory.create('ns4:MapImageOptions') +- print options +-except WebFault, f: ++ print(options) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = "http://www.thomas-bayer.com/axis2/services/BLZService?wsdl" + start(url) + client = Client(url) +- print client ++ print(client) + #client.setport(0) +- print client.service.getBank("76251020") +-except WebFault, f: ++ print(client.service.getBank("76251020")) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + url = "http://arcweb.esri.com/services/v2/RouteFinder.wsdl" + start(url) + client = Client(url) +- print client +-except WebFault, f: ++ print(client) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + timer = metrics.Timer() +@@ -264,19 +264,19 @@ try: + client = Client(url) + #client.setport(0) + timer.stop() +- print 'create client: %s' % timer ++ print('create client: %s' % timer) + timer.start() + s = str(client) + timer.stop() +- print 'str(client): %s' % timer +- print 'client:\n%s' % s +-except WebFault, f: ++ print('str(client): %s' % timer) ++ print('client:\n%s' % s) ++except WebFault as f: + errors += 1 +- print f +- print f.fault +-except Exception, e: ++ print(f) ++ print(f.fault) ++except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + +-print '\nFinished: errors = %d' % errors ++print('\nFinished: errors = %d' % errors) +--- tests/external/rhq.py.orig 2021-09-20 17:08:56 UTC ++++ tests/external/rhq.py +@@ -32,8 +32,8 @@ errors = 0 + + def start(url): + global errors +- print '\n________________________________________________________________\n' +- print 'Test @ ( %s ) %d' % (url, errors) ++ print('\n________________________________________________________________\n') ++ print('Test @ ( %s ) %d' % (url, errors)) + + + def rhqTest(): +@@ -43,7 +43,7 @@ def rhqTest(): + url = 'http://localhost.localdomain:7080/rhq-rhq-enterprise-server-ejb3/WebservicesManagerBean?wsdl' + start(url) + client = Client(url) +- print client ++ print(client) + + try: + +@@ -51,7 +51,7 @@ def rhqTest(): + # create name + # + name = client.factory.create('name') +- name.first = u'Jeff'+unichr(1234) ++ name.first = 'Jeff'+chr(1234) + name.last = 'Ortel &lt; Company' + # + # create a phone object using the wsdl +@@ -77,22 +77,22 @@ def rhqTest(): + # create a person object using the wsdl + # + person = client.factory.create('person') +- print person ++ print(person) + person.name = name + person.age = 43 + person.phone.append(phoneA) + person.phone.append(phoneB) + person.pet.append(dog) + person.pet.append(cat) +- print person ++ print(person) + # + # addPerson() + # +- print 'addPersion()' ++ print('addPersion()') + result = client.service.addPerson(person) + sent = client.last_sent() + rcvd = client.last_received() +- print '\nreply(\n%s\n)\n' % result ++ print('\nreply(\n%s\n)\n' % result) + # + # create a new name object used to update the person + # +@@ -102,110 +102,110 @@ def rhqTest(): + # + # update the person's name (using the webservice) + # +- print 'updatePersion()' ++ print('updatePersion()') + result = client.service.updatePerson(person, newname) +- print '\nreply(\n%s\n)\n' % str(result) ++ print('\nreply(\n%s\n)\n' % str(result)) + result = client.service.updatePerson(person, None) +- print '\nreply(\n%s\n)\n' % str(result) +- except WebFault, f: ++ print('\nreply(\n%s\n)\n' % str(result)) ++ except WebFault as f: + errors += 1 +- print f +- print f.fault +- except Exception, e: ++ print(f) ++ print(f.fault) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print "echo('this is cool')" ++ print("echo('this is cool')") + result = client.service.echo('this is cool') +- print '\nreply( %s )\n' % str(result) +- print 'echo(None)' ++ print('\nreply( %s )\n' % str(result)) ++ print('echo(None)') + result = client.service.echo(None) +- print '\nreply( %s )\n' % str(result) +- except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++ except WebFault as f: + errors += 1 +- print f +- print f.fault +- except Exception, e: ++ print(f) ++ print(f.fault) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print 'hello()' ++ print('hello()') + result = client.service.hello() +- print '\nreply( %s )\n' % str(result) +- except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++ except WebFault as f: + errors += 1 +- print f +- print f.fault +- except Exception, e: ++ print(f) ++ print(f.fault) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print 'testVoid()' ++ print('testVoid()') + result = client.service.testVoid() +- print '\nreply( %s )\n' % str(result) +- except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++ except WebFault as f: + errors += 1 +- print f +- print f.fault +- except Exception, e: ++ print(f) ++ print(f.fault) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + mylist = ['my', 'dog', 'likes', 'steak'] +- print 'testListArgs(%s)' % mylist ++ print('testListArgs(%s)' % mylist) + result = client.service.testListArg(mylist) +- print '\nreply( %s )\n' % str(result) +- except WebFault, f: ++ print('\nreply( %s )\n' % str(result)) ++ except WebFault as f: + errors += 1 +- print f +- print f.fault +- except Exception, e: ++ print(f) ++ print(f.fault) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: + s = 'hello' + for n in range(0, 3): +- print 'getList(%s, %d)' % (s, n) ++ print('getList(%s, %d)' % (s, n)) + result = client.service.getList(s, n) +- print '\nreply( %s )\n' % str(result) ++ print('\nreply( %s )\n' % str(result)) + if len(result) != n: + errors += 1 +- print 'expected (%d), reply (%d)' % (n, len(result)) +- except WebFault, f: ++ print('expected (%d), reply (%d)' % (n, len(result))) ++ except WebFault as f: + errors += 1 +- print f +- print f.fault +- except Exception, e: ++ print(f) ++ print(f.fault) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + try: +- print 'testExceptions()' ++ print('testExceptions()') + result = client.service.testExceptions() +- print '\nreply( %s )\n' % tostr(result) ++ print('\nreply( %s )\n' % tostr(result)) + raise Exception('Fault expected and not raised') +- except WebFault, f: +- print f +- print f.fault +- print f.document +- except Exception, e: ++ except WebFault as f: ++ print(f) ++ print(f.fault) ++ print(f.document) ++ except Exception as e: + errors += 1 +- print e ++ print(e) + tb.print_exc() + + + if __name__ == '__main__': + errors = 0 + rhqTest() +- print '\nFinished: errors=%d' % errors ++ print('\nFinished: errors=%d' % errors) +--- tests/external/saxenc.py.orig 2021-09-20 17:08:56 UTC ++++ tests/external/saxenc.py +@@ -26,30 +26,30 @@ def basic(): + p = Parser() + d = p.parse(string=xml) + a = d.root() +- print 'A(parsed)=\n%s' % a ++ print('A(parsed)=\n%s' % a) + assert str(a) == xml + b = Element('a') + b.setText('Me && <b>my</b> shadow\'s <i>dog</i> love to \'play\' and sing "la,la,la";') +- print 'B(encoded)=\n%s' % b ++ print('B(encoded)=\n%s' % b) + assert str(b) == xml +- print 'A(text-decoded)=\n%s' % a.getText() +- print 'B(text-decoded)=\n%s' % b.getText() ++ print('A(text-decoded)=\n%s' % a.getText()) ++ print('B(text-decoded)=\n%s' % b.getText()) + assert a.getText() == b.getText() +- print 'test pruning' ++ print('test pruning') + j = Element('A') + j.set('n', 1) + j.append(Element('B')) +- print j ++ print(j) + j.prune() +- print j ++ print(j) + + def cdata(): + xml = '<a><![CDATA[<b>This is my &<tag></b>]]></a>' + p = Parser() + d = p.parse(string=xml) +- print d ++ print(d) + a = d.root() +- print a.getText() ++ print(a.getText()) + + if __name__ == '__main__': + #basic() diff --git a/net/py-suds-jurko/files/patch-setup.py b/net/py-suds-jurko/files/patch-setup.py new file mode 100644 index 000000000000..bc6ef4ccb236 --- /dev/null +++ b/net/py-suds-jurko/files/patch-setup.py @@ -0,0 +1,20 @@ +--- setup.py.orig 2021-09-20 17:08:56 UTC ++++ setup.py +@@ -91,17 +91,6 @@ if sys.version_info >= (2, 5): + # distutils.setup() 'obsoletes' parameter not introduced until Python 2.5. + extra_setup_params["obsoletes"] = ["suds"] + +-if sys.version_info >= (3, 0): +- extra_setup_params["use_2to3"] = True +- +- # Teach Python's urllib lib2to3 fixer that the old urllib2.__version__ +- # data member is now stored in the urllib.request module. +- import lib2to3.fixes.fix_urllib +- for x in lib2to3.fixes.fix_urllib.MAPPING["urllib2"]: +- if x[0] == "urllib.request": +- x[1].append("__version__") +- break; +- + # Wrap long_description at 72 characters since PKG-INFO package distribution + # metadata file stores this text with an 8 space indentation. + long_description = """ |