py3_forced
idziubenko 3 years ago
parent 41762d2519
commit 69094e8971

@ -4,9 +4,9 @@ import sys
if not any("calculate/contrib" in x for x in sys.path):
for sitedir in site.getsitepackages():
if sitedir.endswith("python2.7/site-packages"):
if sitedir.endswith("python3.9/site-packages"):
for i, syspathdir in enumerate(sys.path):
if syspathdir.endswith("python2.7/site-packages"):
if syspathdir.endswith("python3.9/site-packages"):
contribpath = "%s/calculate/contrib" % syspathdir
if os.path.exists(contribpath):
sys.path.insert(i, contribpath)

@ -25,7 +25,7 @@ import sys
# Project properties
#
from version import __build__, __version__
from .version import __build__, __version__
#
@ -34,23 +34,23 @@ from version import __build__, __version__
class MethodNotFound(Exception):
def __init__(self, name):
Exception.__init__(self, u"Method not found: '%s'" % (name,))
Exception.__init__(self, "Method not found: '%s'" % (name,))
class PortNotFound(Exception):
def __init__(self, name):
Exception.__init__(self, u"Port not found: '%s'" % (name,))
Exception.__init__(self, "Port not found: '%s'" % (name,))
class ServiceNotFound(Exception):
def __init__(self, name):
Exception.__init__(self, u"Service not found: '%s'" % (name,))
Exception.__init__(self, "Service not found: '%s'" % (name,))
class TypeNotFound(Exception):
def __init__(self, name):
Exception.__init__(self, u"Type not found: '%s'" % (tostr(name),))
Exception.__init__(self, "Type not found: '%s'" % (tostr(name),))
class BuildError(Exception):
def __init__(self, name, exception):
Exception.__init__(self, u"An error occurred while building an "
Exception.__init__(self, "An error occurred while building an "
"instance of (%s). As a result the object you requested could not "
"be constructed. It is recommended that you construct the type "
"manually using a Suds object. Please open a ticket with a "
@ -59,7 +59,7 @@ class BuildError(Exception):
class WebFault(Exception):
def __init__(self, fault, document):
if hasattr(fault, "faultstring"):
Exception.__init__(self, u"Server raised fault: '%s'" %
Exception.__init__(self, "Server raised fault: '%s'" %
(fault.faultstring,))
self.fault = fault
self.document = document
@ -89,7 +89,7 @@ def objid(obj):
def tostr(object, encoding=None):
"""Get a unicode safe string representation of an object."""
if isinstance(object, basestring):
if isinstance(object, str):
if encoding is None:
return object
return object.encode(encoding)
@ -109,7 +109,7 @@ def tostr(object, encoding=None):
return "".join(s)
if isinstance(object, dict):
s = ["{"]
for item in object.items():
for item in list(object.items()):
s.append(tostr(item[0]))
s.append(" = ")
s.append(tostr(item[1]))
@ -117,7 +117,7 @@ def tostr(object, encoding=None):
s.append("}")
return "".join(s)
try:
return unicode(object)
return str(object)
except Exception:
return str(object)
@ -127,7 +127,7 @@ def tostr(object, encoding=None):
#
if sys.version_info < (3, 0):
from cStringIO import StringIO as BytesIO
from io import StringIO as BytesIO
else:
from io import BytesIO
@ -137,7 +137,7 @@ class UnicodeMixin(object):
# For Python 3, __str__() and __unicode__() should be identical.
__str__ = lambda x: x.__unicode__()
else:
__str__ = lambda x: unicode(x).encode("utf-8")
__str__ = lambda x: str(x).encode("utf-8")
# Used instead of byte literals as they are not supported on Python versions
# prior to 2.6.
@ -149,8 +149,8 @@ def byte_str(s="", encoding="utf-8", input_encoding="utf-8", errors="strict"):
strings encoded using the given input encoding.
"""
assert isinstance(s, basestring)
if isinstance(s, unicode):
assert isinstance(s, str)
if isinstance(s, str):
return s.encode(encoding, errors)
if s and encoding != input_encoding:
return s.decode(input_encoding, errors).encode(encoding, errors)

@ -161,7 +161,7 @@ class _ArgParser:
return
if self.__kwargs:
param_name = self.__kwargs.keys()[0]
param_name = list(self.__kwargs.keys())[0]
if param_name in self.__params_with_arguments:
msg = "got multiple values for parameter '%s'"
else:
@ -263,7 +263,7 @@ class _ArgParser:
if len(stack) == 1:
return stack[0], ancestry
previous = stack[0]
for frame, n in zip(stack[1:], xrange(len(ancestry))):
for frame, n in zip(stack[1:], range(len(ancestry))):
if frame.id() is not ancestry[n]:
return previous, ancestry[n:]
previous = frame

@ -34,7 +34,7 @@ class Builder:
def build(self, name):
""" build a an object for the specified typename as defined in the schema """
if isinstance(name, basestring):
if isinstance(name, str):
type = self.resolver.find(name)
if type is None:
raise TypeNotFound(name)

@ -25,7 +25,7 @@ import suds.sax.parser
import datetime
import os
try:
import cPickle as pickle
import pickle as pickle
except Exception:
import pickle
import shutil

@ -36,11 +36,11 @@ import suds.transport
import suds.transport.https
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
import http.client
from logging import getLogger
log = getLogger(__name__)
@ -192,7 +192,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)
@ -239,7 +239,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()
@ -340,20 +340,20 @@ class ServiceSelector:
"""
service = None
if not 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):
@ -450,13 +450,13 @@ class PortSelector:
"""
port = None
if not 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:
@ -464,7 +464,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)
@ -532,7 +532,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)
@ -564,10 +564,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."""
@ -750,7 +750,7 @@ class _SoapClient:
reply = self.options.transport.send(request)
timer.stop()
metrics.log.debug("waited %s on server reply", timer)
except suds.transport.TransportError, e:
except suds.transport.TransportError as e:
content = e.fp and e.fp.read() or ""
return self.process_reply(content, e.httpcode, tostr(e))
return self.process_reply(reply.message, None, None)
@ -774,15 +774,15 @@ class _SoapClient:
"""
if status is None:
status = httplib.OK
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (httplib.ACCEPTED, httplib.NO_CONTENT):
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == httplib.OK:
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)
@ -804,19 +804,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.warning("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.
raise Exception((status, description))
@ -831,7 +831,7 @@ class _SoapClient:
result = ctx.reply
if self.options.faults:
return result
return httplib.OK, result
return http.client.OK, result
def __get_fault(self, replyroot):
"""
@ -861,7 +861,7 @@ class _SoapClient:
"""
action = self.method.soap.action
if isinstance(action, unicode):
if isinstance(action, str):
action = action.encode("utf-8")
result = {
"Content-Type": "text/xml; charset=utf-8",
@ -889,7 +889,7 @@ class _SimClient(_SoapClient):
@classmethod
def simulation(cls, kwargs):
"""Get whether injected data has been specified in I{kwargs}."""
return kwargs.has_key(_SimClient.__injkey)
return _SimClient.__injkey in kwargs
def invoke(self, args, kwargs):
"""

@ -45,7 +45,7 @@ class Content(Object):
Object.__init__(self)
self.tag = tag
self.value = value
for k, v in kwargs.iteritems():
for k, v in kwargs.items():
setattr(self, k, v)
def __getattr__(self, name):

@ -206,7 +206,7 @@ class PropertyAppender(Appender):
child = self.node(content)
child.setText(p.get())
parent.append(child)
for item in p.items():
for item in list(p.items()):
cont = Content(tag=item[0], value=item[1])
Appender.append(self, child, cont)

@ -36,10 +36,10 @@ class Typer:
bool: ("boolean", Namespace.xsdns),
float: ("float", Namespace.xsdns),
int: ("int", Namespace.xsdns),
long: ("long", Namespace.xsdns),
int: ("long", Namespace.xsdns),
str: ("string", Namespace.xsdns),
Text: ("string", Namespace.xsdns),
unicode: ("string", Namespace.xsdns)}
str: ("string", Namespace.xsdns)}
@classmethod
def auto(cls, node, value=None):

@ -143,9 +143,9 @@ class Options(Skin):
Definition('allowUnknownMessageParts', bool, False),
Definition('faults', bool, True),
Definition('transport', Transport, None, TpLinker()),
Definition('service', (int, basestring), None),
Definition('port', (int, basestring), None),
Definition('location', basestring, None),
Definition('service', (int, str), None),
Definition('port', (int, str), None),
Definition('location', str, None),
Definition('soapheaders', (), ()),
Definition('wsse', Security, None),
Definition('doctor', Doctor, None),

@ -219,7 +219,7 @@ class PluginContainer:
def __getattr__(self, name):
domain = self.domains.get(name)
if not domain:
raise Exception, 'plugin domain (%s), invalid' % (name,)
raise Exception('plugin domain (%s), invalid' % (name,))
ctx, pclass = domain
plugins = [p for p in self.plugins if isinstance(p, pclass)]
return PluginDomain(ctx, plugins)

@ -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)

@ -45,7 +45,7 @@ def splitPrefix(name):
@rtype: (I{prefix}, I{name})
"""
if isinstance(name, basestring) and ":" in name:
if isinstance(name, str) and ":" in name:
return tuple(name.split(":", 1))
return None, name

@ -170,4 +170,4 @@ class Attribute(UnicodeMixin):
def __unicode__(self):
"""XML string representation."""
return u'%s="%s"' % (self.qname(), self.value and self.value.escape())
return '%s="%s"' % (self.qname(), self.value and self.value.escape())

@ -67,7 +67,7 @@ class Date(UnicodeMixin):
self.value = value.date()
elif isinstance(value, datetime.date):
self.value = value
elif isinstance(value, basestring):
elif isinstance(value, str):
self.value = self.__parse(value)
else:
raise ValueError("invalid type for Date(): %s" % type(value))
@ -117,7 +117,7 @@ class DateTime(UnicodeMixin):
"""
if isinstance(value, datetime.datetime):
self.value = value
elif isinstance(value, basestring):
elif isinstance(value, str):
self.value = self.__parse(value)
else:
raise ValueError("invalid type for DateTime(): %s" % type(value))
@ -175,7 +175,7 @@ class Time(UnicodeMixin):
"""
if isinstance(value, datetime.time):
self.value = value
elif isinstance(value, basestring):
elif isinstance(value, str):
self.value = self.__parse(value)
else:
raise ValueError("invalid type for Time(): %s" % type(value))

@ -52,7 +52,7 @@ class Document(UnicodeMixin):
the document root element.
@type node: (L{Element}|str|None)
"""
if isinstance(node, basestring):
if isinstance(node, str):
self.__root = Element(node)
return
if isinstance(node, Element):

@ -170,7 +170,7 @@ class Element(UnicodeMixin):
root.append(a.clone(self))
for c in self.children:
root.append(c.clone(self))
for ns in self.nsprefixes.items():
for ns in list(self.nsprefixes.items()):
root.addPrefix(ns[0], ns[1])
return root
@ -621,10 +621,10 @@ class Element(UnicodeMixin):
@rtype: basestring
"""
for item in self.nsprefixes.items():
for item in list(self.nsprefixes.items()):
if item[1] == uri:
return item[0]
for item in self.specialprefixes.items():
for item in list(self.specialprefixes.items()):
if item[1] == uri:
return item[0]
if self.parent is not None:
@ -647,11 +647,11 @@ class Element(UnicodeMixin):
"""
result = []
for item in self.nsprefixes.items():
for item in list(self.nsprefixes.items()):
if self.matcher[match](item[1], uri):
prefix = item[0]
result.append(prefix)
for item in self.specialprefixes.items():
for item in list(self.specialprefixes.items()):
if self.matcher[match](item[1], uri):
prefix = item[0]
result.append(prefix)
@ -675,7 +675,7 @@ class Element(UnicodeMixin):
c.promotePrefixes()
if self.parent is None:
return
for p, u in self.nsprefixes.items():
for p, u in list(self.nsprefixes.items()):
if p in self.parent.nsprefixes:
pu = self.parent.nsprefixes[p]
if pu == u:
@ -806,7 +806,7 @@ class Element(UnicodeMixin):
result.append("%s<%s" % (tab, self.qname()))
result.append(self.nsdeclarations())
for a in self.attributes:
result.append(" %s" % (unicode(a),))
result.append(" %s" % (str(a),))
if self.isempty():
result.append("/>")
return "".join(result)
@ -831,7 +831,7 @@ class Element(UnicodeMixin):
"""
result = ["<%s" % (self.qname(),), self.nsdeclarations()]
for a in self.attributes:
result.append(" %s" % (unicode(a),))
result.append(" %s" % (str(a),))
if self.isempty():
result.append("/>")
return "".join(result)
@ -861,7 +861,7 @@ class Element(UnicodeMixin):
if myns[1] != pns[1]:
if self.expns is not None:
s.append(' xmlns="%s"' % (self.expns,))
for item in self.nsprefixes.items():
for item in list(self.nsprefixes.items()):
p, u = item
if self.parent is not None:
ns = self.parent.resolvePrefix(p)
@ -965,13 +965,13 @@ class Element(UnicodeMixin):
return len(self.children)
def __getitem__(self, index):
if isinstance(index, basestring):
if isinstance(index, str):
return self.get(index)
if index < len(self.children):
return self.children[index]
def __setitem__(self, index, value):
if isinstance(index, basestring):
if isinstance(index, str):
self.set(index, value)
else:
if index < len(self.children) and isinstance(value, Element):
@ -1011,7 +1011,7 @@ class NodeIterator:
self.pos = 0
self.children = parent.children
def next(self):
def __next__(self):
"""
Get the next child.
@ -1093,7 +1093,7 @@ class PrefixNormalizer:
"""
s = set()
for ns in n.nsprefixes.items():
for ns in list(n.nsprefixes.items()):
if self.permit(ns):
s.add(ns[1])
return s
@ -1173,7 +1173,7 @@ class PrefixNormalizer:
for n in self.branch:
n.nsprefixes = {}
n = self.node
for u, p in self.prefixes.items():
for u, p in list(self.prefixes.items()):
n.addPrefix(p, u)
def permit(self, ns):

@ -58,7 +58,7 @@ class Encoder:
@rtype: str
"""
if isinstance(s, basestring) and self.__needs_encoding(s):
if isinstance(s, str) and self.__needs_encoding(s):
for x in self.encodings:
s = re.sub(x[0], x[1], s)
return s
@ -73,7 +73,7 @@ class Encoder:
@rtype: str
"""
if isinstance(s, basestring) and "&" in s:
if isinstance(s, str) and "&" in s:
for x in self.decodings:
s = s.replace(x[0], x[1])
return s
@ -88,7 +88,7 @@ class Encoder:
@rtype: boolean
"""
if isinstance(s, basestring):
if isinstance(s, str):
for c in self.special:
if c in s:
return True

@ -46,10 +46,10 @@ class Handler(ContentHandler):
def startElement(self, name, attrs):
top = self.top()
node = Element(unicode(name))
node = Element(str(name))
for a in attrs.getNames():
n = unicode(a)
v = unicode(attrs.getValue(a))
n = str(a)
v = str(attrs.getValue(a))
attribute = Attribute(n, v)
if self.mapPrefix(node, attribute):
continue
@ -61,27 +61,27 @@ class Handler(ContentHandler):
def mapPrefix(self, node, attribute):
if attribute.name == "xmlns":
if len(attribute.value):
node.expns = unicode(attribute.value)
node.expns = str(attribute.value)
return True
if attribute.prefix == "xmlns":
prefix = attribute.name
node.nsprefixes[prefix] = unicode(attribute.value)
node.nsprefixes[prefix] = str(attribute.value)
return True
return False
def endElement(self, name):
name = unicode(name)
name = str(name)
current = self.pop()
if name != current.qname():
raise Exception("malformed document")
if current.charbuffer:
current.text = Text(u"".join(current.charbuffer))
current.text = Text("".join(current.charbuffer))
del current.charbuffer
if current:
current.trim()
def characters(self, content):
text = unicode(content)
text = str(content)
node = self.top()
node.charbuffer.append(text)

@ -22,7 +22,7 @@ from suds import *
from suds.sax import *
class Text(unicode):
class Text(str):
"""
An XML text object used to represent text content.
@ivar lang: The (optional) language flag.
@ -75,7 +75,7 @@ class Text(unicode):
return Text(post, lang=self.lang, escaped=self.escaped)
def __add__(self, other):
joined = u''.join((self, other))
joined = ''.join((self, other))
result = Text(joined, lang=self.lang, escaped=self.escaped)
if isinstance(other, Text):
result.escaped = self.escaped or other.escaped
@ -112,5 +112,5 @@ class Raw(Text):
return self
def __add__(self, other):
joined = u''.join((self, other))
joined = ''.join((self, other))
return Raw(joined, lang=self.lang)

@ -83,7 +83,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))
@ -144,7 +144,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)
@ -158,7 +158,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:

@ -70,7 +70,7 @@ class ServiceProxy(UnicodeMixin):
return self.__client__.factory.create(name)
def __unicode__(self):
return unicode(self.__client__)
return str(self.__client__)
def __getattr__(self, name):
builtin = name.startswith('__') and name.endswith('__')

@ -566,7 +566,7 @@ class DocumentStore(object):
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):

@ -121,7 +121,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
@ -156,7 +156,7 @@ class Object(UnicodeMixin):
self.__keylist__.remove(name)
except Exception:
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):
@ -189,7 +189,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:
@ -278,7 +278,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),)
@ -333,7 +333,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)):

@ -68,11 +68,11 @@ class Request(UnicodeMixin):
self.timeout = timeout
def __unicode__(self):
result = [u"URL: %s\nHEADERS: %s" % (self.url, self.headers)]
result = ["URL: %s\nHEADERS: %s" % (self.url, self.headers)]
if self.message is not None:
result.append(u"MESSAGE:")
result.append("MESSAGE:")
result.append(self.message.decode("raw_unicode_escape"))
return u"\n".join(result)
return "\n".join(result)
def __set_URL(self, url):
"""
@ -120,7 +120,7 @@ class Reply(UnicodeMixin):
self.message = message
def __unicode__(self):
return u"""\
return """\
CODE: %s
HEADERS: %s
MESSAGE:

@ -22,11 +22,11 @@ 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
import urllib.request, urllib.error, urllib.parse
import gzip
import zlib
@ -64,10 +64,10 @@ class HttpTransport(Transport):
url = self.__get_request_url_for_urllib(request)
headers = request.headers
log.debug('opening (%s)', url)
u2request = urllib2.Request(url, headers=headers)
u2request = urllib.request.Request(url, headers=headers)
self.proxy = self.options.proxy
return self.u2open(u2request)
except urllib2.HTTPError as e:
except urllib.error.HTTPError as e:
raise TransportError(str(e), e.code, e.fp)
def send(self, request):
@ -81,7 +81,7 @@ class HttpTransport(Transport):
elif encoding == 'deflate':
msg = zlib.compress(msg)
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)
@ -98,11 +98,11 @@ class HttpTransport(Transport):
message = gzip.decompress(message)
elif encoding == 'deflate':
message = zlib.decompress(message)
reply = Reply(httplib.OK, headers, message)
reply = Reply(http.client.OK, headers, message)
log.debug('received:\n%s', reply)
return reply
except urllib2.HTTPError as e:
if e.code not in (httplib.ACCEPTED, httplib.NO_CONTENT):
except urllib.error.HTTPError as e:
if e.code not in (http.client.ACCEPTED, http.client.NO_CONTENT):
raise TransportError(e.msg, e.code, e.fp)
def addcookies(self, u2request):
@ -151,7 +151,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):
@ -162,7 +162,7 @@ class HttpTransport(Transport):
@rtype: [Handler,...]
"""
return [urllib2.ProxyHandler(self.proxy)]
return [urllib.request.ProxyHandler(self.proxy)]
def u2ver(self):
"""
@ -173,7 +173,7 @@ class HttpTransport(Transport):
"""
try:
part = urllib2.__version__.split('.', 1)
part = urllib.request.__version__.split('.', 1)
return float('.'.join(part))
except Exception as e:
log.exception(e)

@ -21,7 +21,7 @@ Contains classes for authenticated HTTP transport implementations.
from suds.transport import *
from suds.transport.http import HttpTransport
import urllib2
import urllib.request, urllib.error, urllib.parse
class HttpAuthenticated(HttpTransport):
@ -55,7 +55,7 @@ class HttpAuthenticated(HttpTransport):
"""
HttpTransport.__init__(self, **kwargs)
self.pm = urllib2.HTTPPasswordMgrWithDefaultRealm()
self.pm = urllib.request.HTTPPasswordMgrWithDefaultRealm()
def open(self, request):
self.addcredentials(request)
@ -77,7 +77,7 @@ class HttpAuthenticated(HttpTransport):
def u2handlers(self):
handlers = HttpTransport.u2handlers(self)
handlers.append(urllib2.HTTPBasicAuthHandler(self.pm))
handlers.append(urllib.request.HTTPBasicAuthHandler(self.pm))
return handlers

@ -53,6 +53,6 @@ class Options(Skin):
Definition('proxy', dict, {}),
Definition('timeout', (int,float), 90),
Definition('headers', dict, {}),
Definition('username', basestring, None),
Definition('password', basestring, None)]
Definition('username', str, None),
Definition('password', str, None)]
Skin.__init__(self, domain, definitions, kwargs)

@ -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

@ -95,7 +95,7 @@ class Core:
return None
else:
return Text('', lang=lang)
if isinstance(content.text, basestring):
if isinstance(content.text, str):
return Text(content.text, lang=lang)
else:
return content.text

@ -32,8 +32,8 @@ from suds.xsd.query import ElementQuery
from suds.xsd.schema import Schema, SchemaCollection
import re
import soaparray
from urlparse import urljoin
from . import soaparray
from urllib.parse import urljoin
from logging import getLogger
log = getLogger(__name__)
@ -267,7 +267,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
@ -283,8 +283,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:
@ -528,7 +528,7 @@ class PortType(NamedObject):
@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:
@ -704,7 +704,7 @@ class Binding(NamedObject):
"""
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)
@ -932,7 +932,7 @@ class Service(NamedObject):
"""
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

@ -59,8 +59,8 @@ def isqref(object):
return (\
isinstance(object, tuple) and \
len(object) == 2 and \
isinstance(object[0], basestring) and \
isinstance(object[1], basestring))
isinstance(object[0], str) and \
isinstance(object[1], str))
class Filter:

@ -52,7 +52,7 @@ def dependency_sort(dependency_tree):
"""
sorted = []
processed = set()
for key, deps in dependency_tree.iteritems():
for key, deps in dependency_tree.items():
_sort_r(sorted, processed, key, deps, dependency_tree)
return sorted

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save