From nobody Fri Jun 03 10:53:49 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id F1EF91B6F1FA; Fri, 3 Jun 2022 10:53:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4LF09p0z9mz4bC4; Fri, 3 Jun 2022 10:53:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1654253630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6MwHdkbJKjpgZYMrxxkjBmIiYTZ/uWbwUrxnv2DZcEg=; b=n2rs2458UoS0zMBgPIpcPhA0mhxDyS6U7GtKmT3O5cw9jatPHG4FFh0mbzuxubXTZAiYr/ l7//+ui8MkfNdbC6Xy1HY0rxdwVZ3/GWIGx8j1F2TVapXckevEfE4E4FdPEsFftsKLBuzk jCWuDNllwTKbU7Z1ZfGxpRUk/KpRLDSLlkNL92UBF8h0oZ32JQD2GaI2EH8aQodyymT4lD 9bXriCN8FA1T8+vgfyXUHpFEDZIawMpTNzue3TV+RcQi1qP9frxFCuYKPPFzrXswUIXqSZ F7xQAXGWIvjhHH3BiXYhk14k0v1BTbFn65qnhEewNl8c83HU61ZJAVeOmWYMwA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F4AD27CB0; Fri, 3 Jun 2022 10:53:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 253ArnKR044208; Fri, 3 Jun 2022 10:53:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 253ArnXB044207; Fri, 3 Jun 2022 10:53:49 GMT (envelope-from git) Date: Fri, 3 Jun 2022 10:53:49 GMT Message-Id: <202206031053.253ArnXB044207@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Po-Chuan Hsieh Subject: git: efb306c81c75 - main - net/py-suds-jurko: Remove obsoleted port List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sunpoet X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: efb306c81c7557c93e8dbefb9d8dd49a9a597974 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1654253630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6MwHdkbJKjpgZYMrxxkjBmIiYTZ/uWbwUrxnv2DZcEg=; b=ZuYCr8w4efzH3RutmrcWglkeP+z6nFNGDTa5cMPCxjyyiUkGiYwfKuuD+nRX7UfNTIXl9W vx2kejCx6ewnQT4Evwme4aa61hiD4FQM47WbbyHSmXfAWyXMckW/pvZ+gec3Nw2jJ/TI03 8724wpcOXVgBYFwuG3ey3SfPhhWDwu3E9+fbRVkyAIglHsK1qsqMJfFLvLfPSj6FMooqqH EtFMNAQOytPUeKP5MNZcHV8KoAc5dotv/78rTA4drq/aoL8kWebK2w4KhtfOUmGLSh4+Xi 2kpixiEThX0jTZ8UBtWJM3UuCjJo9OFfYvpqm+TZMwhPGV0ViPN5COBSwQAGyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1654253630; a=rsa-sha256; cv=none; b=OidqvHJaalfepz66HJ9CSJovAUXEohBgkpuE1r1L4oU4Zv9g+wsmbUCC5b0NZV+8Up7t8K usnNt/sSxx16E4+i1WLNNCOY1BKd/eGCFd+D8ipo1nGS/GY6bSyqPuR9Ks0S6y1/62gRV1 DmHJA+Ncb0Pd6kqWlwhw2r4Dv/eoPJAC87zkyu311NCXh32qHpFvVmjHjhUNi808V8y7Wp CF6xinykK3IT2U7/w8/T+qRClwN8rSLMqDSWh+oflkJp4gkfIEpRLS/kA7GOIqM9Ye14Ld aDO4XYHuUl3Jhy63j/ovZmIhwP3pqOq5ArX1bXSAHAzRLKiop2zNfpzOTJzt0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=efb306c81c7557c93e8dbefb9d8dd49a9a597974 commit efb306c81c7557c93e8dbefb9d8dd49a9a597974 Author: Po-Chuan Hsieh AuthorDate: 2022-06-03 10:51:36 +0000 Commit: Po-Chuan Hsieh CommitDate: 2022-06-03 10:51:36 +0000 net/py-suds-jurko: Remove obsoleted port Use net/py-suds instead. --- MOVED | 1 + net/Makefile | 1 - net/py-suds-jurko/Makefile | 43 - net/py-suds-jurko/distinfo | 3 - net/py-suds-jurko/files/patch-2to3 | 1952 -------------------- net/py-suds-jurko/files/patch-setup.cfg | 14 - net/py-suds-jurko/files/patch-setup.py | 29 - .../files/patch-tests_indirect__parametrize.py | 23 - net/py-suds-jurko/pkg-descr | 6 - 9 files changed, 1 insertion(+), 2071 deletions(-) diff --git a/MOVED b/MOVED index 5ed4dc5cc56c..ababc6730fa6 100644 --- a/MOVED +++ b/MOVED @@ -17186,3 +17186,4 @@ net/mpich2|net/mpich|2022-05-31|Has been deprecrated for a long time and build f net-im/jabber.el||2022-06-01|Has expired: is marked as broken: fails to build: jabber-chat.el:25:1: Error: Wrong number of arguments: (3 . 3), 2 x11-fm/Arqiver|x11-fm/arqiver|2022-06-01|Convert PORTNATE to lowercase net/py-suds-community|net/py-suds|2022-06-03|Remove obsoleted port. Use net/py-suds instead +net/py-suds-jurko|net/py-suds|2022-06-03|Remove obsoleted port. Use net/py-suds instead diff --git a/net/Makefile b/net/Makefile index 3578a8d282b2..55b0a762d639 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1139,7 +1139,6 @@ SUBDIR += py-sshuttle SUBDIR += py-stomp.py SUBDIR += py-suds - SUBDIR += py-suds-jurko SUBDIR += py-tacacs_plus SUBDIR += py-terminado SUBDIR += py-tofu diff --git a/net/py-suds-jurko/Makefile b/net/py-suds-jurko/Makefile deleted file mode 100644 index de6ac3a3463f..000000000000 --- a/net/py-suds-jurko/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# Created by: Alexander Nusov - -PORTNAME= suds-jurko -PORTVERSION= 0.6 -PORTREVISION= 3 -CATEGORIES= net python -MASTER_SITES= CHEESESHOP -PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} - -MAINTAINER= sunpoet@FreeBSD.org -COMMENT= Lightweight SOAP client (Jurko's fork) - -LICENSE= LGPL3 -LICENSE_FILE= ${WRKSRC}/LICENSE.txt - -TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} - -USES= dos2unix python:3.6+ tar:bz2 -USE_PYTHON= autoplist concurrent distutils - -NO_ARCH= yes - -# 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 -# -# Must call tests from the build/ dir because the source dir -# hasn't been processed by 2to3, so tests fail to start on Python 3 -# -# Must call the tests from build/lib/suds/tests because -# Defining 'pytest_plugins' in a non-top-level conftest is no longer supported -# https://docs.pytest.org/en/latest/deprecations.html#pytest-plugins-in-non-top-level-conftest-files - -do-test: - cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v -rs -o addopts= \ - -k "not test_document_literal_request_for_single_element_input \ - and not (lambda: locals)()()['test_binding_uses_argument_parsing[binding_style1]'] \ - 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/tests - -.include diff --git a/net/py-suds-jurko/distinfo b/net/py-suds-jurko/distinfo deleted file mode 100644 index 0a74db41156a..000000000000 --- a/net/py-suds-jurko/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1481385855 -SHA256 (suds-jurko-0.6.tar.bz2) = 29edb72fd21e3044093d86f33c66cf847c5aaab26d64cb90e69e528ef014e57f -SIZE (suds-jurko-0.6.tar.bz2) = 143985 diff --git a/net/py-suds-jurko/files/patch-2to3 b/net/py-suds-jurko/files/patch-2to3 deleted file mode 100644 index d220b27c4300..000000000000 --- a/net/py-suds-jurko/files/patch-2to3 +++ /dev/null @@ -1,1952 +0,0 @@ ---- 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 - @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 '' - 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') *** 1171 LINES SKIPPED ***