Typo corrections & other minor stylistic comment changes. Updated todo list.

This commit is contained in:
Jurko Gospodnetić 2011-12-21 19:55:25 +01:00
parent b533f784a2
commit da3862e6be
14 changed files with 89 additions and 92 deletions

2
README
View File

@ -248,7 +248,7 @@ version 0.3 (2008-09-30)
addition, provides for multiple services to define the *same* method and
suds will handle it properly. See section 'SERVICES WITH MULTIPLE PORTS:'.
* Add support for multi-document document/literal soap binding style. See
section 'MULTI-DOCUMENT Docuemnt/Literal:'.
section 'MULTI-DOCUMENT Document/Literal:'.
* Add support for (xs:group, xs:attributeGroup) tags.
* Add Client.last_sent() and Client.last_received().

30
TODO
View File

@ -15,20 +15,22 @@ PRIORETIZED:
(+) repository at BitBucket and accessible from
(+) 'https://bitbucket.org/bernh/suds-python-3-patches'.
(+) * Already documented in HACKING.
* (Jurko) Minor stylistic changes & typo corrections.
* Code.
* 'tranparent' --> 'transparent'.
* 'if tns' --> 'if tns'.
* 'docuemnt' --> 'document'.
* '('restriction', 'any', 'list',)' --> '('restriction', 'any',
'list')'.
* 'Qualfied' --> 'Qualified'.
* 'Resolveds' --> 'Resolves'.
* 'describe a port and it's list of methods' --> 'describe a port
and its list of methods'.
* 'dependancies' --> 'dependencies'.
* 'imcoming' --> 'incoming'.
(+) * (Jurko) Minor stylistic changes & typo corrections.
(+) * Code.
(+) * 'tranparent' --> 'transparent'.
(+) * 'if tns' --> 'if tns'.
(+) * 'docuemnt' --> 'document'.
(+) * '('restriction', 'any', 'list',)' --> '('restriction', 'any',
(+) 'list')'.
(+) * And other unnecessary trailing tuple commas.
(+) * 'Qualfied' --> 'Qualified'.
(+) * 'Resolveds' --> 'Resolves'.
(+) * 'describe a port and it's list of methods' --> 'describe a port
(+) and its list of methods'.
(+) * 'dependancies' --> 'dependencies'.
(+) * 'imcoming' --> 'incoming'.
(+) * 'relavent' --> 'relevant'.
(+) * 'indicat' --> 'inidcat'.
* (Jurko) Prepare for the initial forked project release.
* Research release procedure.

View File

@ -208,6 +208,6 @@ rm -rf $RPM_BUILD_ROOT
provides for multiple services to define the *same* method and suds will
handle it properly. See section 'SERVICES WITH MULTIPLE PORTS:'
- Add support for multi-document document/literal soap binding style.
See section 'MULTI-DOCUMENT Docuemnt/Literal:'
See section 'MULTI-DOCUMENT Document/Literal:'
- Add support for (xs:group, xs:attributeGroup) tags.
- Add Client.last_sent() and Client.last_received().

View File

@ -43,8 +43,8 @@ envns = ('SOAP-ENV', 'http://schemas.xmlsoap.org/soap/envelope/')
class Binding:
"""
The soap binding class used to process outgoing and imcoming
soap messages per the WSDL port binding.
The SOAP binding class used to process outgoing and incoming SOAP messages
per the WSDL port binding.
@cvar replyfilter: The reply filter function.
@type replyfilter: (lambda s,r: r)
@ivar wsdl: The wsdl.
@ -103,8 +103,8 @@ class Binding:
def get_message(self, method, args, kwargs):
"""
Get the soap message for the specified method, args and soapheaders.
This is the entry point for creating the outbound soap message.
Get a SOAP message for the specified method, args and SOAP headers.
This is the entry point for creating an outbound SOAP message.
@param method: The method being invoked.
@type method: I{service.Method}
@param args: A list of args for the method invoked.

View File

@ -54,8 +54,8 @@ class DocumentContext(Context):
class MessageContext(Context):
"""
The context for sending the soap envelope.
@ivar envelope: The soap envelope to be sent.
The context for sending the SOAP envelope.
@ivar envelope: The SOAP envelope to be sent.
@type envelope: (str|L{sax.element.Element})
@ivar reply: The reply.
@type reply: (str|L{sax.element.Element}|object)
@ -114,7 +114,7 @@ class DocumentPlugin(Plugin):
class MessagePlugin(Plugin):
"""
The base class for suds I{soap message} plugins.
The base class for suds I{SOAP message} plugins.
"""
def marshalled(self, context):
@ -123,14 +123,14 @@ class MessagePlugin(Plugin):
Provides the plugin with the opportunity to inspect/modify
the envelope Document before it is sent.
@param context: The send context.
The I{envelope} is the envelope docuemnt.
The I{envelope} is the envelope document.
@type context: L{MessageContext}
"""
pass
def sending(self, context):
"""
Suds will send the specified soap envelope.
Suds will send the specified SOAP envelope.
Provides the plugin with the opportunity to inspect/modify
the message text it is sent.
@param context: The send context.

View File

@ -62,12 +62,12 @@ class DocumentReader(Reader):
def open(self, url):
"""
Open an XML document at the specified I{url}.
Open an XML document at the specified I{URL}.
First, the document attempted to be retrieved from
the I{object cache}. If not found, it is downloaded and
parsed using the SAX parser. The result is added to the
cache for the next open().
@param url: A document url.
@param url: A document URL.
@type url: str.
@return: The specified XML document.
@rtype: I{Document}
@ -83,10 +83,10 @@ class DocumentReader(Reader):
def download(self, url):
"""
Download the docuemnt.
@param url: A document url.
Download the document.
@param url: A document URL.
@type url: str.
@return: A file pointer to the docuemnt.
@return: A file pointer to the document.
@rtype: file-like
"""
store = DocumentStore()
@ -134,13 +134,13 @@ class DefinitionsReader(Reader):
def open(self, url):
"""
Open a WSDL at the specified I{url}.
Open a WSDL at the specified I{URL}.
First, the WSDL attempted to be retrieved from
the I{object cache}. After unpickled from the cache, the
I{options} attribute is restored.
If not found, it is downloaded and instantiated using the
I{fn} constructor and added to the cache for the next open().
@param url: A WSDL url.
@param url: A WSDL URL.
@type url: str.
@return: The WSDL object.
@rtype: I{Definitions}

View File

@ -69,7 +69,7 @@ class Resolver:
class PathResolver(Resolver):
"""
Resolveds the definition object for the schema type located at the specified path.
Resolves the definition object for the schema type located at a given path.
The path may contain (.) dot notation to specify nested types.
@ivar wsdl: A wsdl object.
@type wsdl: L{wsdl.Definitions}
@ -138,7 +138,7 @@ class PathResolver(Resolver):
def branch(self, root, parts):
"""
Traverse the path until the leaf is reached.
Traverse the path until a leaf is reached.
@param parts: A list of path parts.
@type parts: [str,..]
@param root: The root.
@ -292,7 +292,7 @@ class TreeResolver(Resolver):
return len(self.stack)
def getchild(self, name, parent):
""" get a child by name """
"""Get a child by name."""
log.debug('searching parent (%s) for (%s)', Repr(parent), name)
if name.startswith('@'):
return parent.get_attribute(name[1:])
@ -368,7 +368,7 @@ class NodeResolver(TreeResolver):
return result
def query(self, name, node):
""" blindly query the schema by name """
"""Blindly query the schema by name."""
log.debug('searching schema for (%s)', name)
qref = qualify(name, node, node.namespace())
query = BlindQuery(qref)
@ -376,7 +376,7 @@ class NodeResolver(TreeResolver):
return (result, [])
def known(self, node):
""" resolve type referenced by @xsi:type """
"""Resolve type referenced by @xsi:type."""
ref = node.get('type', Namespace.xsins)
if ref is None:
return None
@ -436,7 +436,7 @@ class GraphResolver(TreeResolver):
return result
def query(self, name):
""" blindly query the schema by name """
"""Blindly query the schema by name."""
log.debug('searching schema for (%s)', name)
schema = self.schema
wsdl = self.wsdl()
@ -449,7 +449,7 @@ class GraphResolver(TreeResolver):
return (result, [])
def wsdl(self):
""" get the wsdl """
"""Get the wsdl."""
container = self.schema.container
if container is None:
return None
@ -457,7 +457,7 @@ class GraphResolver(TreeResolver):
return container.wsdl
def known(self, object):
""" get the type specified in the object's metadata """
"""Get the type specified in the object's metadata."""
try:
md = object.__metadata__
known = md.sxtype

View File

@ -709,7 +709,7 @@ class Element(UnicodeMixin):
"""
Set this node to I{nil} as defined by having an
attribute I{xsi:nil}=I{flag}.
@param flag: A flag inidcating how I{xsi:nil} will be set.
@param flag: A flag indicating how I{xsi:nil} will be set.
@type flag: boolean
@return: self
@rtype: L{Element}

View File

@ -30,7 +30,7 @@ class Text(unicode):
@ivar escaped: The (optional) XML special character escaped flag.
@type escaped: bool
"""
__slots__ = ('lang', 'escaped',)
__slots__ = ('lang', 'escaped')
@classmethod
def __valid(cls, *args):

View File

@ -43,7 +43,7 @@ class ServiceDefinition(UnicodeMixin):
def __init__(self, wsdl, service):
"""
@param wsdl: A wsdl object
@param wsdl: A WSDL object
@type wsdl: L{Definitions}
@param service: A service B{name}.
@type service: str
@ -62,18 +62,18 @@ class ServiceDefinition(UnicodeMixin):
def pushprefixes(self):
"""
Add our prefixes to the wsdl so that when users invoke methods
and reference the prefixes, the will resolve properly.
Add our prefixes to the WSDL so that when users invoke methods
and reference the prefixes, they will resolve properly.
"""
for ns in self.prefixes:
self.wsdl.root.addPrefix(ns[0], ns[1])
def addports(self):
"""
Look through the list of service ports and construct a list of tuples where
each tuple is used to describe a port and it's list of methods as:
(port, [method]). Each method is tuple: (name, [pdef,..] where each pdef is
a tuple: (param-name, type).
Look through the list of service ports and construct a list of tuples
where each tuple is used to describe a port and its list of methods as:
(port, [method]). Each method is a tuple: (name, [pdef,..]) where each
pdef is a tuple: (param-name, type).
"""
timer = metrics.Timer()
timer.start()
@ -104,9 +104,7 @@ class ServiceDefinition(UnicodeMixin):
return p
def getprefixes(self):
"""
Add prefixes foreach namespace referenced by parameter types.
"""
"""Add prefixes for each namespace referenced by parameter types."""
namespaces = []
for l in (self.params, self.types):
for t,r in l:
@ -129,7 +127,7 @@ class ServiceDefinition(UnicodeMixin):
self.prefixes.append(ns)
def paramtypes(self):
""" get all parameter types """
"""Get all parameter types."""
for m in [p[1] for p in self.ports]:
for p in [p[1] for p in m]:
for pd in p:
@ -138,7 +136,7 @@ class ServiceDefinition(UnicodeMixin):
self.params.append(item)
def publictypes(self):
""" get all public types """
"""Get all public types."""
for t in self.wsdl.schema.types.values():
if t in self.params: continue
if t in self.types: continue
@ -149,8 +147,8 @@ class ServiceDefinition(UnicodeMixin):
def nextprefix(self):
"""
Get the next available prefix. This means a prefix starting with 'ns' with
a number appended as (ns0, ns1, ..) that is not already defined on the
wsdl document.
a number appended as (ns0, ns1, ..) that is not already defined in the
WSDL document.
"""
used = [ns[0] for ns in self.prefixes]
used += [ns[0] for ns in self.wsdl.root.nsprefixes.items()]
@ -162,8 +160,8 @@ class ServiceDefinition(UnicodeMixin):
def getprefix(self, u):
"""
Get the prefix for the specified namespace (uri)
@param u: A namespace uri.
Get the prefix for the specified namespace (URI)
@param u: A namespace URI.
@type u: str
@return: The namspace.
@rtype: (prefix, uri).

View File

@ -15,7 +15,7 @@
# written by: Jeff Ortel ( jortel@redhat.com )
"""
The I{depsolve} module defines a class for performing dependancy solving.
The I{depsolve} module defines a class for performing dependency solving.
"""
from logging import getLogger
@ -26,7 +26,7 @@ log = getLogger(__name__)
class DepList:
"""
Dependancy solving list.
Dependency solving list.
Items are tuples: (object, (deps,))
@ivar raw: The raw (unsorted) items.
@type raw: list
@ -65,7 +65,7 @@ class DepList:
def sort(self):
"""
Sort the list based on dependancies.
Sort the list based on dependencies.
@return: The sorted items.
@rtype: list
"""

View File

@ -15,11 +15,11 @@
# written by: Jeff Ortel ( jortel@redhat.com )
"""
The I{schema} module provides a intelligent representation of
The I{schema} module provides an intelligent representation of
an XSD schema. The I{raw} model is the XML tree and the I{model}
is the denormalized, objectified and intelligent view of the schema.
Most of the I{value-add} provided by the model is centered around
tranparent referenced type resolution and targeted denormalization.
transparent referenced type resolution and targeted denormalization.
"""
@ -109,7 +109,7 @@ class SchemaCollection(UnicodeMixin):
for s in self.children:
for ns in namespaces:
tns = s.root.get('targetNamespace')
if tns == ns:
if tns == ns:
continue
for imp in s.root.getChildren('import'):
if imp.get('namespace') == ns:

View File

@ -15,8 +15,7 @@
# written by: Jeff Ortel ( jortel@redhat.com )
"""
The I{sxbase} module provides I{base} classes that represent
schema objects.
The I{sxbase} module provides I{base} classes representing schema objects.
"""
from logging import getLogger
@ -36,10 +35,10 @@ class SchemaObject(UnicodeMixin):
@type root: L{Element}
@ivar schema: The schema containing this object.
@type schema: L{schema.Schema}
@ivar form_qualified: A flag that inidcates that @elementFormDefault
@ivar form_qualified: A flag that indicates that @elementFormDefault
has a value of I{qualified}.
@type form_qualified: boolean
@ivar nillable: A flag that inidcates that @nillable
@ivar nillable: A flag that indicates that @nillable
has a value of I{true}.
@type nillable: boolean
@ivar default: The default value.
@ -343,8 +342,8 @@ class SchemaObject(UnicodeMixin):
def dependencies(self):
"""
Get a list of dependancies for dereferencing.
@return: A merge dependancy index and a list of dependancies.
Get a list of dependencies for dereferencing.
@return: A merge dependency index and a list of dependencies.
@rtype: (int, [L{SchemaObject},...])
"""
return (None, [])
@ -361,9 +360,9 @@ class SchemaObject(UnicodeMixin):
def qualify(self):
"""
Convert attribute values, that are references to other
objects, into I{qref}. Qualfied using default document namespace.
Since many wsdls are written improperly: when the document does
not define a default namespace, the schema target namespace is used
objects, into I{qref}. Qualified using the default document namespace.
Since many WSDLs are written improperly: when the document does
not define its default namespace, the schema target namespace is used
to qualify references.
"""
defns = self.root.defaultNamespace()
@ -402,7 +401,7 @@ class SchemaObject(UnicodeMixin):
def content(self, collection=None, filter=Filter(), history=None):
"""
Get a I{flattened} list of this nodes contents.
Get a I{flattened} list of this node's contents.
@param collection: A list to fill.
@type collection: list
@param filter: A filter used to constrain the result.
@ -464,7 +463,7 @@ class SchemaObject(UnicodeMixin):
def description(self):
"""
Get the names used for str() and repr() description.
@return: A dictionary of relavent attributes.
@return: A dictionary of relevant attributes.
@rtype: [str,...]
"""
return ()
@ -604,7 +603,7 @@ class Iter:
class XBuiltin(SchemaObject):
"""
Represents an (xsd) schema <xs:*/> node
Represents an (xsd) schema <xs:*/> node.
"""
def __init__(self, schema, name):
@ -637,7 +636,7 @@ class Content(SchemaObject):
class NodeFinder:
"""
Find nodes based on flexable criteria. The I{matcher} is
Find nodes based on flexable criteria. The I{matcher}
may be any object that implements a match(n) method.
@ivar matcher: An object used as criteria for match.
@type matcher: I{any}.match(n)

View File

@ -75,7 +75,7 @@ class TypedContent(Content):
"""
Get the I{type} qualified reference to the referenced xsd type.
This method takes into account simple types defined through
restriction with are detected by determining that self is simple
restriction which are detected by determining that self is simple
(len=0) and by finding a restriction child.
@return: The I{type} qualified reference.
@rtype: qref
@ -154,7 +154,7 @@ class Group(SchemaObject):
self.rawchildren = other.rawchildren
def description(self):
return ('name', 'ref',)
return ('name', 'ref')
class AttributeGroup(SchemaObject):
@ -185,16 +185,16 @@ class AttributeGroup(SchemaObject):
self.rawchildren = other.rawchildren
def description(self):
return ('name', 'ref',)
return ('name', 'ref')
class Simple(SchemaObject):
"""
Represents an (xsd) schema <xs:simpleType/> node
Represents an (xsd) schema <xs:simpleType/> node.
"""
def childtags(self):
return ('restriction', 'any', 'list',)
return ('restriction', 'any', 'list')
def enum(self):
for child, ancestry in self.children():
@ -223,7 +223,7 @@ class Simple(SchemaObject):
class List(SchemaObject):
"""
Represents an (xsd) schema <xs:list/> node
Represents an (xsd) schema <xs:list/> node.
"""
def childtags(self):
@ -238,7 +238,7 @@ class List(SchemaObject):
class Restriction(SchemaObject):
"""
Represents an (xsd) schema <xs:restriction/> node
Represents an (xsd) schema <xs:restriction/> node.
"""
def __init__(self, schema, root):
@ -356,7 +356,7 @@ class SimpleContent(SchemaObject):
class Enumeration(Content):
"""
Represents an (xsd) schema <xs:enumeration/> node
Represents an (xsd) schema <xs:enumeration/> node.
"""
def __init__(self, schema, root):
@ -397,7 +397,7 @@ class Element(TypedContent):
return self
def childtags(self):
return ('attribute', 'simpleType', 'complexType', 'any',)
return ('attribute', 'simpleType', 'complexType', 'any')
def extension(self):
for c in self.rawchildren:
@ -486,7 +486,7 @@ class Extension(SchemaObject):
class Import(SchemaObject):
"""
Represents an (xsd) schema <xs:import/> node
Represents an (xsd) schema <xs:import/> node.
@cvar locations: A dictionary of namespace locations.
@type locations: dict
@ivar ns: The imported namespace.
@ -572,7 +572,7 @@ class Import(SchemaObject):
class Include(SchemaObject):
"""
Represents an (xsd) schema <xs:include/> node
Represents an (xsd) schema <xs:include/> node.
@ivar location: The (optional) location.
@type location: namespace-uri
@ivar opened: Opened and I{imported} flag.
@ -639,7 +639,7 @@ class Include(SchemaObject):
class Attribute(TypedContent):
"""
Represents an (xsd) <attribute/> node
Represents an (xsd) <attribute/> node.
"""
def __init__(self, schema, root):
@ -682,7 +682,7 @@ class Attribute(TypedContent):
class Any(Content):
"""
Represents an (xsd) <any/> node
Represents an (xsd) <any/> node.
"""
def get_child(self, name):
@ -809,8 +809,6 @@ class Factory:
return (children, imports, attributes, elements, types, groups, agrps)
#######################################################
# Static Import Bindings :-(
#######################################################