1097 lines
49 KiB
ReStructuredText
1097 lines
49 KiB
ReStructuredText
Overview
|
|
=================================================
|
|
|
|
"Suds" is a lightweight SOAP-based web service client for Python licensed under
|
|
LGPL (see the ``LICENSE.txt`` file included in the distribution).
|
|
|
|
This is hopefully just a temporary fork of the original suds Python library
|
|
project created because the original project development seems to have stalled.
|
|
Should be reintegrated back into the original project if it ever gets revived
|
|
again.
|
|
|
|
**Forked project information**
|
|
|
|
* Project site: https://bitbucket.org/jurko/suds
|
|
* Epydocs documentation: needs to be built from sources
|
|
* Official releases can be downloaded from:
|
|
|
|
* BitBucket - https://bitbucket.org/jurko/suds/downloads
|
|
* PyPI - http://pypi.python.org/pypi/suds-jurko
|
|
|
|
**Original suds Python library development project information**
|
|
|
|
* Project site: https://fedorahosted.org/suds
|
|
* Documentation: https://fedorahosted.org/suds/wiki/Documentation
|
|
* Epydocs: http://jortel.fedorapeople.org/suds/doc
|
|
|
|
For development notes see the ``HACKING.txt`` document included in the
|
|
distribution.
|
|
|
|
|
|
Installation
|
|
=================================================
|
|
|
|
Standard Python installation.
|
|
|
|
Here are the basic instructions for 3 different installation methods:
|
|
|
|
#. Using pip
|
|
|
|
* Have the 'pip' package installed.
|
|
* Run 'pip install suds-jurko'.
|
|
|
|
#. Using easy-install
|
|
|
|
* Have the 'setuptools' package installed.
|
|
* Run 'easy_install suds-jurko'.
|
|
|
|
#. From sources
|
|
|
|
* Unpack the source package somewhere.
|
|
* Run ``python setup.py install`` from the source distribution's top level
|
|
folder.
|
|
|
|
Installation troubleshooting:
|
|
-----------------------------
|
|
|
|
* If automated ``setuptools`` Python package installation fails (used in
|
|
releases ``0.4.1 jurko 5`` and later), e.g. due to PyPI web site not being
|
|
available, user might need to install it manually and then rerun the
|
|
installation.
|
|
* Releases prior to ``0.4.1. jurko 5`` will fail if the ``distribute`` Python
|
|
package is not already installed on the system.
|
|
* Python 2.4.3 on Windows has been seen to have problems using automated
|
|
``setuptools`` Python package downloads via the HTTPS protocol. The same does
|
|
not occur when using Python version 2.4.4.
|
|
|
|
* This mostly affects newer ``setuptools``/``distribute`` Python package
|
|
versions which use the HTTPS protocol by default.
|
|
* Our package installation attempts to workaround this problem by switching to
|
|
using the HTTP protocol internally when necessary.
|
|
* If this occurs, install the required packages manually from their sources or
|
|
by using ``easy_install``/``pip`` and specifying that they should use the
|
|
HTTP protocol instead of HTTPS, e.g.::
|
|
|
|
easy_install -i "http://pypi.python.org/simple" ...
|
|
pip install -i "http://pypi.python.org/simple" ...
|
|
|
|
|
|
Release notes
|
|
=================================================
|
|
|
|
version 0.5 (development)
|
|
-------------------------
|
|
|
|
* Based on revision 712 (1e48fd79a1fc323006826439e469ba7b3d2b5a68) from the
|
|
original suds Python library development project's Subversion repository.
|
|
|
|
* Last officially packaged & released suds Python library version - 0.4.1.
|
|
|
|
* Supported Python versions.
|
|
|
|
* Intended to work with Python 2.4+.
|
|
* Basic sources prepared for Python 2.x.
|
|
* For using Python 3 the sources first processed by the Python 2to3 tool
|
|
during the setup procedure.
|
|
* Tested in the following environments:
|
|
|
|
* Python 2.4.3/x86, on Windows 7/SP1/x64.
|
|
* Python 2.4.4/x86, on Windows 7/SP1/x64.
|
|
* Python 2.7.6/x64, on Windows 7/SP1/x64.
|
|
* Python 3.2.5/x64, on Windows 7/SP1/x64.
|
|
* Python 3.3.3/x86, on Windows 7/SP1/x64.
|
|
* Python 3.3.3/x64, on Windows 7/SP1/x64.
|
|
|
|
* Updated the project's versioning scheme and detached it from the original
|
|
suds project. The original project's stall seems to be long-term (likely
|
|
permanent) and making our version information match the original one was
|
|
getting to be too much of a hassle.
|
|
|
|
* For example, with our original versioning scheme, latest pip versions
|
|
recognize our package releases as 'development builds' and refuse to install
|
|
them by default (supply the '--pre' command-line option to force the install
|
|
anyway).
|
|
|
|
* Improved the suds date/time handling (contributed by MDuggan1, based on a
|
|
patch attached to issue `#353 <http://fedorahosted.org/suds/ticket/353>`_ on
|
|
the original suds project issue tracker).
|
|
|
|
* Replaces the timezone handling related fix made in the previous release.
|
|
* More detailed testing.
|
|
* Corrected subsecond to microsecond conversion, including rounding.
|
|
* ``DateTime`` class no longer derived from ``Date`` & ``Time`` classes.
|
|
* Recognizes more date/time strings valid 'by intuition'.
|
|
* Rejects more invalid date/time strings.
|
|
|
|
* Time zone specifiers containing hours and minutes but without a colon are
|
|
rejected to avoid confusion, e.g. whether ``+121`` should be interpreted
|
|
as ``+12:01`` or ``+01:21``.
|
|
* Time zone specifiers limited to under 24 hours. Without this Python's
|
|
timezone UTC offset calculation would raise an exception on some
|
|
operations, e.g. timezone aware datetime.datetime/time comparisons.
|
|
|
|
* Removed several project files related to the original developer's development
|
|
environment.
|
|
* Removed several internal Mercurial version control system related files from
|
|
the project's source distribution package.
|
|
* Better documented the project's development & testing environment.
|
|
|
|
version 0.4.1 jurko 5 (2013-11-11)
|
|
----------------------------------
|
|
|
|
* Based on revision 712 (1e48fd79a1fc323006826439e469ba7b3d2b5a68) from the
|
|
original suds Python library development project's Subversion repository.
|
|
|
|
* Last officially packaged & released suds Python library version - 0.4.1.
|
|
|
|
* Supported Python versions.
|
|
|
|
* Intended to work with Python 2.4+.
|
|
* Basic sources prepared for Python 2.x.
|
|
* For using Python 3 the sources first processed by the Python 2to3 tool
|
|
during the setup procedure.
|
|
* Tested in the following environments:
|
|
|
|
* Python 2.4.3/x86, on Windows 7/SP1/x64.
|
|
* Python 2.4.4/x86, on Windows 7/SP1/x64.
|
|
* Python 2.7.3/x64, on Windows 7/SP1/x64.
|
|
* Python 3.2.3/x64, on Windows 7/SP1/x64.
|
|
* Python 3.3.2/x86, on Windows 7/SP1/x64.
|
|
* Python 3.3.2/x64, on Windows 7/SP1/x64.
|
|
|
|
* Improved Python 3 support.
|
|
|
|
* Cache files now used again.
|
|
|
|
* Problems caused by cache files being stored in text mode, but attempting
|
|
to write a bytes object in them. Too eager error handling was then causing
|
|
all such cached file usage to fail silently.
|
|
|
|
* WebFaults containing non-ASCII data now get constructed correctly.
|
|
* Fixed issue with encoding of authentication in ``transport/http.py``
|
|
(contributed by Phillip Alday).
|
|
* Unicode/byte string handling fixes.
|
|
|
|
* Fixed encoding long user credentials for basic HTTP authentication in
|
|
``transport/http.py`` (contributed by Jan-Wijbrand Kolman).
|
|
* Fixed an IndexError occurring when calling a web service operation with only a
|
|
single input parameter.
|
|
* Fixed a log formatting error, originated in the original suds (contributed by
|
|
Guy Rozendorn).
|
|
* Fixed local timezone detection code (contributed by Tim Savage).
|
|
* Setup updated.
|
|
|
|
* Fixed a problem with running the project setup on non-Windows platforms.
|
|
|
|
* ``version.py`` file loading no longer sensitive to the line-ending type
|
|
used in that file.
|
|
* Stopped using the ``distribute`` setup package since it has been merged
|
|
back into the original ``setuptools`` project. Now using ``setuptools``
|
|
version 0.7.2 or later.
|
|
* Automatically downloads & installs an appropriate ``setuptools`` package
|
|
version if needed.
|
|
|
|
* ``distutils`` ``obsoletes`` setup parameter usage removed when run using
|
|
this Python versions earlier than 2.5 as that is the first version
|
|
implementing support for this parameter.
|
|
|
|
* Removed different programming techniques & calls breaking compatibility with
|
|
Python 2.4.
|
|
|
|
* String ``format()`` method.
|
|
* Ternary if operator.
|
|
|
|
* Project ``README`` file converted to .rst format (contributed by Phillip
|
|
Alday).
|
|
* Corrected internal input/output binding usage. Output binding was being used
|
|
in several places where the input one was expected.
|
|
* HTTP status code 200 XML replies containing a ``Fault`` element now
|
|
consistently as a SOAP fault (plus a warning about the non-standard HTTP
|
|
status code) both when reporting such faults using exceptions or by returning
|
|
a (status, reason) tuple.
|
|
|
|
* Before this was done only when reporting them using exceptions.
|
|
|
|
* Reply XML processing now checks the namespace used for ``Envelope`` & ``Body``
|
|
elements.
|
|
* SOAP fault processing now checks the namespaces used for all relevant tags.
|
|
* Plugins now get a chance to process ``received()`` & ``parsed()`` calls for
|
|
both success & error replies.
|
|
* SOAP fault reports with invalid Fault structure no longer cause suds code to
|
|
break with an 'invalid attribute' exception.
|
|
* SOAP fault reports with no ``<detail>`` tag (optional) no longer cause suds
|
|
code to break with an 'invalid attribute' exception when run with the suds
|
|
``faults`` option set to false.
|
|
* Added correct handling for HTTP errors containing no input file information.
|
|
Previously such cases caused suds to break with an 'invalid attribute'
|
|
exception.
|
|
* ``SimClient`` injection keywords reorganized:
|
|
|
|
* ``msg`` - request message.
|
|
* ``reply`` - reply message ('msg' must not be set).
|
|
* ``status`` - HTTP status code accompanying the 'reply' message.
|
|
* ``description`` - description string accompanying the 'reply' message.
|
|
|
|
* Added ``unwrap`` option, allowing the user to disable suds library's
|
|
automated simple document interface unwrapping (contributed by Juraj Ivančić).
|
|
* Fixed a problem with suds constructing parameter XML elements in its SOAP
|
|
requests in incorrect namespaces in case they have been defined by XSD schema
|
|
elements referencing XSD schema elements with a different target namespace.
|
|
* ``DocumentStore`` instance updated.
|
|
|
|
* Separate ``DocumentStore`` instances now hold separate data with every
|
|
instance holding all the hardcoded suds library XML document data.
|
|
* ``DocumentStore`` now supports a dict-like update() method for adding new
|
|
documents to it.
|
|
* ``Client`` instances may now be given a specific ``DocumentStore`` instance
|
|
using the 'documentStore' option. Not specifying the option uses a shared
|
|
singleton instance. Specifying the option as ``None`` avoids using any
|
|
document store whatsoever.
|
|
* Suds tests no longer have to modify the global shared ``DocumentStore`` data
|
|
in order to avoid loading its known data from external files and so may no
|
|
longer affect each other by leaving behind data in that global shared
|
|
``DocumentStore``.
|
|
* Documents may now be fetched from a ``DocumentStore`` using a transport
|
|
protocol other than ``suds``. When using the ``suds`` protocol an exception
|
|
is raised if the document could not be found in the store while in all other
|
|
cases ``None`` is returned instead.
|
|
* Documents in a ``DocumentStore`` are now accessed as bytes instead file-like
|
|
stream objects.
|
|
* Made more ``DocumentStore`` functions private.
|
|
|
|
* Corrected error message displayed in case of a transport error.
|
|
* Many unit tests updated and added.
|
|
* Unit tests may now be run using the setuptools 'setup.py test' command.
|
|
|
|
* Note that this method does not allow passing additional pytest testing
|
|
framework command-line arguments. To specify any such parameters invoke the
|
|
pytest framework directly, e.g. using 'python -m pytest' in the project's
|
|
root folder.
|
|
|
|
* Internal code cleanup.
|
|
|
|
* Removed undocumented, unused and unused ``binding.replyfilter``
|
|
functionality.
|
|
* Binding classes no longer have anything to do with method independent Fault
|
|
element processing.
|
|
* Removed SoapClient ``last_sent()`` and ``last_received()`` functions.
|
|
* Fixed file closing in ``reader.py`` & ``cache.py`` modules - used files now
|
|
closed explicitly in case of failed file operations instead of relying on
|
|
the Python GC to close them 'some time later on'.
|
|
* Fixed silently ignoring internal exceptions like ``KeyboardInterrupt`` in
|
|
the ``cache.py`` module.
|
|
* Removed unused Cache module ``getf()`` & ``putf()`` functions. ``getf()``
|
|
left only in ``FileCache`` and its derived classes.
|
|
|
|
version 0.4.1 jurko 4 (2012-04-17)
|
|
----------------------------------
|
|
|
|
* Based on revision 712 (1e48fd79a1fc323006826439e469ba7b3d2b5a68) from the
|
|
original suds Python library development project's Subversion repository.
|
|
|
|
* Last officially packaged & released suds Python library version - 0.4.1.
|
|
|
|
* Supported Python versions.
|
|
|
|
* Intended to work with Python 2.4+.
|
|
* Basic sources prepared for Python 2.x.
|
|
* For using Python 3 the sources first processed by the Python 2to3 tool
|
|
during the setup procedure.
|
|
* Installation procedure requires the ``distribute`` Python package to be
|
|
installed on the system.
|
|
* Tested in the following environments:
|
|
|
|
* Python 2.7.1/x64 on Windows XP/SP3/x64.
|
|
* Python 3.2.2/x64 on Windows XP/SP3/x64.
|
|
|
|
* Cleaned up how the distribution package maintainer name string is specified so
|
|
it does not contain characters causing the setup procedure to fail when run
|
|
using Python 3+ on systems using CP1250 or UTF-8 as their default code-page.
|
|
* Internal cleanup - renamed bounded to single_occurrence and unbounded to
|
|
multi_occurrence.
|
|
* Original term unbounded meant that its object has more than one occurrence
|
|
while its name inferred that 'it has no upper limit on its number of
|
|
occurrences'.
|
|
|
|
version 0.4.1 jurko 3 (2011-12-26)
|
|
----------------------------------
|
|
|
|
* Based on revision 711 (1be817c8a7672b001eb9e5cce8842ebd0bf424ee) from the
|
|
original suds Python library development project's Subversion repository.
|
|
|
|
* Last officially packaged & released suds Python library version - 0.4.1.
|
|
|
|
* Supported Python versions.
|
|
|
|
* Intended to work with Python 2.4+.
|
|
* Basic sources prepared for Python 2.x.
|
|
* For using Python 3 the sources first processed by the Python 2to3 tool
|
|
during the setup procedure.
|
|
* Installation procedure requires the ``distribute`` Python package to be
|
|
installed on the system.
|
|
* Tested in the following environments:
|
|
|
|
* Python 2.7.1/x86 on Windows XP/SP3/x86.
|
|
* Python 3.2.2/x86 on Windows XP/SP3/x86.
|
|
|
|
* Operation parameter specification string no longer includes a trailing comma.
|
|
* suds.xsd.xsbasic.Enumeration objects now list their value in their string
|
|
representation.
|
|
* ``suds.sudsobject.Metadata`` ``__unicode__()`` / ``__str__()`` /
|
|
``__repr__()`` functions no longer raise an AttributeError when the object is
|
|
not empty.
|
|
* Fixed a bug with suds.xsd.sxbasic.TypedContent.resolve() returning an
|
|
incorrect type when called twice on the same node referencing a builtin type
|
|
with the parameter ``nobuiltin=True``.
|
|
* Added more test cases.
|
|
|
|
version 0.4.1 jurko 2 (2011-12-24)
|
|
----------------------------------
|
|
|
|
* Based on revision 711 (1be817c8a7672b001eb9e5cce8842ebd0bf424ee) from the
|
|
original suds Python library development project's Subversion repository.
|
|
|
|
* Last officially packaged & released suds Python library version - 0.4.1.
|
|
|
|
* Supported Python versions.
|
|
|
|
* Intended to work with Python 2.4+.
|
|
* Basic sources prepared for Python 2.x.
|
|
* For using Python 3 the sources first processed by the Python 2to3 tool
|
|
during the setup procedure.
|
|
* Installation procedure requires the ``distribute`` Python package to be
|
|
installed on the system.
|
|
* Tested in the following environments:
|
|
|
|
* Python 2.7.1/x86 on Windows XP/SP3/x86.
|
|
* Python 3.2.2/x86 on Windows XP/SP3/x86.
|
|
|
|
* Fixed a bug causing converting a ``suds.client.Client`` object to a string to
|
|
fail & raise an ``IndexError`` exception.
|
|
|
|
* Changed the way ``suds.client.Client to-string`` conversion outputs build
|
|
info. This fixes a bug in the original ``0.4.1 jurko 1`` forked project
|
|
release causing printing out a ``suds.client.Client`` object to raise an
|
|
exception due to the code in question making some undocumented assumptions
|
|
on how the build information string should be formatted.
|
|
|
|
version 0.4.1 jurko 1 (2011-12-24)
|
|
----------------------------------
|
|
|
|
* Based on revision 711 (1be817c8a7672b001eb9e5cce8842ebd0bf424ee) from the
|
|
original suds Python library development project's Subversion repository.
|
|
|
|
* Last officially packaged & released suds Python library version - 0.4.1.
|
|
|
|
* Supported Python versions.
|
|
|
|
* Intended to work with Python 2.4+.
|
|
* Basic sources prepared for Python 2.x.
|
|
* For using Python 3 the sources first processed by the Python 2to3 tool
|
|
during the setup procedure.
|
|
* Installation procedure requires the ``distribute`` Python package to be
|
|
installed on the system.
|
|
* Tested in the following environments:
|
|
|
|
* Python 2.7.1/x86 on Windows XP/SP3/x86.
|
|
* Python 3.2.2/x86 on Windows XP/SP3/x86.
|
|
|
|
* Added Python 3 support:
|
|
|
|
* Based on patches integrated from a Mercurial patch queue maintained by
|
|
`Bernhard Leiner <https://bitbucket.org/bernh/suds-python-3-patches>`_.
|
|
|
|
* Last collected patch series commit:
|
|
``96ffba978d5c74df28846b4273252cf1f94f7c78``.
|
|
|
|
* Original sources compatible with Python 2. Automated conversion to Python 3
|
|
sources during setup.
|
|
|
|
* Automated conversion implemented by depending on the ``distribute`` setup
|
|
package.
|
|
|
|
* Made suds work with operations taking choice parameters.
|
|
|
|
* Based on a patch by michaelgruenewald & bennetb01 attached to ticket `#342
|
|
<http://fedorahosted.org/suds/ticket/342>`_ on the original suds project
|
|
issue tracker. Comments listed related to that ticket seem to indicate that
|
|
there may be additional problems with this patch but so far we have not
|
|
encountered any.
|
|
|
|
* Fixed the ``DateTimeTest.testOverflow`` test to work correctly in all
|
|
timezones.
|
|
|
|
* This test would fail if run directly when run on a computer with a positive
|
|
timezone time adjustment while it would not fail when run together with all
|
|
the other tests in this module since some other test would leave behind a
|
|
nonpositive timezone adjustment setting. Now the test explicitly sets its
|
|
own timezone time adjustment to a negative value.
|
|
* Fixes a bug referenced in the original suds project issue tracker as ticket
|
|
`#422 <http://fedorahosted.org/suds/ticket/422>`_.
|
|
|
|
* Corrected accessing suds.xsd.sxbase.SchemaObject subitems by index.
|
|
|
|
* Fixes a bug referenced in the original suds project issue tracker as ticket
|
|
`#420 <http://fedorahosted.org/suds/ticket/420>`_.
|
|
|
|
* Internal code & project data cleanup.
|
|
|
|
* Extracted version information into a separate module.
|
|
* Added missing release notes for the original suds Python library project.
|
|
* Ported unit tests to the pytest testing framework.
|
|
* Cleaned up project tests.
|
|
|
|
* Separated standalone tests from those requiring an external web service.
|
|
* Added additional unit tests.
|
|
* Added development related documentation - ``HACKING.txt``.
|
|
* Setup procedure cleaned up a bit.
|
|
|
|
* Known defects.
|
|
|
|
* Converting a ``suds.client.Client`` object to a string fails & raises an
|
|
``IndexError`` exception.
|
|
|
|
|
|
Original suds library release notes
|
|
=================================================
|
|
|
|
version 0.4.1 (2010-10-15)
|
|
* <undocumented>
|
|
|
|
version 0.4 (2010-09-08)
|
|
* Fix spelling errors in spec description.
|
|
* Fix source0 URL warning.
|
|
* Updated caching to not cache intermediate WSDLs.
|
|
* Added DocumentCache which caches verified XML documents as text. User can
|
|
choose.
|
|
* Added ``cachingpolicy`` option to allow user to specify whether to cache
|
|
XML documents or WSDL objects.
|
|
* Provided for repeating values in reply for message parts consistent with way
|
|
handled in nested objects.
|
|
* Added charset=utf-8 to stock content-type http header.
|
|
* Added <?xml version="1.0" encoding="UTF-8"?> to outgoing SOAP messages.
|
|
* Detection of faults in successful (http=200) replies and raise WebFault.
|
|
Search for <soapenv:Fault/>.
|
|
* Add plugins facility.
|
|
* Fixed Tickets: #251, #313, #314, #334.
|
|
|
|
version 0.3.9 (2009-12-17)
|
|
* Bumped python requires to 2.4.
|
|
* Replaced stream-based caching in the transport package with document-based
|
|
caching.
|
|
* Caches pickled Document objects instead of XML text. 2x Faster!
|
|
* No more SAX parsing exceptions on damaged or incomplete cached files.
|
|
* Cached WSDL objects. Entire Definitions object including contained Schema
|
|
object cached via pickle.
|
|
* Copy of SOAP encoding schema packaged with suds.
|
|
* Refactor Transports to use ProxyHandler instead of
|
|
urllib2.Request.set_proxy().
|
|
* Added WSSE enhancements <Timestamp/> and <Expires/> support. See: Timestamp
|
|
token.
|
|
* Fixed Tickets: #256, #291, #294, #295, #296.
|
|
|
|
version 0.3.8 (2009-12-09)
|
|
* Included Windows NTLM Transport.
|
|
* Add missing self.messages in Client.clone().
|
|
* Changed default behavior for WSDL PartElement to be optional.
|
|
* Add support for services/ports defined without <address/> element in WSDL.
|
|
* Fix sax.attribute.Element.attrib() to find by name only when ns is not
|
|
specified; renamed to Element.getAttribute().
|
|
* Update HttpTransport to pass timeout parameter to urllib2 open() methods
|
|
when supported by urllib2.
|
|
* Add null class to pass explicit NULL values for parameters and optional
|
|
elements.
|
|
* Soap encoded array (soap-enc:Array) enhancement for rpc/encoded. Arrays
|
|
passed as python arrays - works like document/literal now. No more using the
|
|
factory to create the Array. Automatically includes arrayType attribute.
|
|
E.g. soap-enc:arrayType="Array[2]".
|
|
* Reintroduced ability to pass complex (objects) using python dict instead of
|
|
suds object via factory.
|
|
* Fixed tickets: #84, #261, #262, #263, #265, #266, #278, #280, #282.
|
|
|
|
version 0.3.7 (2009-10-16)
|
|
* Better soap header support
|
|
* Added new transport HttpAuthenticated for active (not passive) basic
|
|
authentication.
|
|
* New options (prefixes, timeout, retxml).
|
|
* WSDL processing enhancements.
|
|
* Expanded builtin XSD type support.
|
|
* Fixed <xs:include/>.
|
|
* Better XML date/datetime conversion.
|
|
* Client.clone() method added for lightweight copy of client object.
|
|
* XSD processing fixes/enhancements.
|
|
* Better <simpleType/> by <xs:restriction/> support.
|
|
* Performance enhancements.
|
|
* Fixed tickets: #65, #232, #233, #235, #241, #242, #244, #247, #254, #254,
|
|
#256, #257, #258.
|
|
|
|
version 0.3.6 (2009-04-31)
|
|
* Change hard coded /tmp/suds to tempfile.gettempdir() and create suds/ on
|
|
demand.
|
|
* Fix return type for Any.get_attribute().
|
|
* Update http caching to ignore file:// urls.
|
|
* Better logging of messages when only the reply is injected.
|
|
* Fix XInteger and XFloat types to translate returned arrays properly.
|
|
* Fix xs:import schema with same namespace.
|
|
* Update parser to not load external references and add Import.bind() for
|
|
XMLSchema.xsd location.
|
|
* Add schema doctor - used to patch XSDs at runtime. (See Option.doctor)
|
|
* Fix deprecation warnings in python 2.6.
|
|
* Add behavior for @default defined on <element/>.
|
|
* Change @xsi:type value to always be qualified for doc/literal (reverts 0.3.5
|
|
change).
|
|
* Add Option.xstq option to control when @xsi:type is qualified.
|
|
* Fixed Tickets: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228,
|
|
#229, #230.
|
|
|
|
version 0.3.5 (2009-04-16)
|
|
* Adds http caching. Default is (1) day. Does not apply to method invocation.
|
|
See: documentation for details.
|
|
* Removed checking fedora version check in spec since no longer building <
|
|
fc9.
|
|
* Updated makefile to roll tarball with tar.sh.
|
|
* Moved bare/wrapped determination to WSDL for document/literal.
|
|
* Refactored Transport into a package (provides better logging of http
|
|
headers).
|
|
* Fixed Tickets: #207, #209, #210, #212, #214, #215.
|
|
|
|
version 0.3.4 (2009-02-24)
|
|
* Static (automatic) Import.bind('http://schemas.xmlsoap.org/soap/encoding/'),
|
|
users no longer need to do this.
|
|
* Basic ws-security with {{{UsernameToken}}} and clear-text password only.
|
|
* Add support for ``sparse`` soap headers via passing dictionary.
|
|
* Add support for arbitrary user defined soap headers.
|
|
* Fixes service operations with multiple soap header entries.
|
|
* Schema loading and dereferencing algorithm enhancements.
|
|
* Nested soap multirefs fixed.
|
|
* Better (true) support for elementFormDefault="unqualified" provides more
|
|
accurate namespacing.
|
|
* WSDL part types no longer default to WSDL targetNamespace.
|
|
* Fixed Tickets: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201.
|
|
|
|
version 0.3.3 (2008-11-31)
|
|
* No longer installs (tests) package.
|
|
* Implements API-3 proposal (https://fedorahosted.org/suds/wiki/Api3Proposal).
|
|
|
|
* Pluggable transport.
|
|
* Keyword method arguments.
|
|
* Basic http authentication in default transport.
|
|
|
|
* Add namespace prefix normalization in soap message.
|
|
* Better soap message pruning of empty nodes.
|
|
* Fixed Tickets: #51 - #60.
|
|
|
|
version 0.3.2 (2008-11-07)
|
|
* SOAP {{{MultiRef}}} support ``(1st pass added r300)``.
|
|
* Add support for new schema tags:
|
|
|
|
* ``<xs:include/>``
|
|
* ``<xs:simpleContent/>``
|
|
* ``<xs:group/>``
|
|
* ``<xs:attributeGroup/>``
|
|
|
|
* Added support for new xs <--> python type conversions:
|
|
|
|
* ``xs:int``
|
|
* ``xs:long``
|
|
* ``xs:float``
|
|
* ``xs:double``
|
|
|
|
* Revise marshaller and binding to further sharpen the namespacing of nodes
|
|
produced.
|
|
* Infinite recursion fixed in ``xsd`` package dereference() during schema
|
|
loading.
|
|
* Add support for <wsdl:import/> of schema files into the WSDL root
|
|
<definitions/>.
|
|
* Fix double encoding of (&).
|
|
* Add Client API:
|
|
|
|
* ``setheaders()`` - same as keyword but works for all invocations.
|
|
* ``addprefix()`` - mapping of namespace prefixes.
|
|
* ``setlocation()`` - Override the location in the WSDL; same as keyword
|
|
except for all calls.
|
|
* ``setproxy()`` - same as proxy keyword but for all invocations.
|
|
|
|
* Add proper namespace prefix for soap headers.
|
|
* Fixed Tickets: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51.
|
|
|
|
version 0.3.1 (2008-10-01)
|
|
* Quick follow up to the 0.3 release that made working multi-port service
|
|
definitions harder then necessary. After consideration (and a good night
|
|
sleep), it seemed obvious that a few changes would make this much easier:
|
|
|
|
1) filter out the non-soap bindings - they were causing the real trouble;
|
|
2) since most servers are happy with any of the soap bindings (soap 1.1 and
|
|
1.2), ambiguous references to methods when invoking then without the port
|
|
qualification will work just fine in almost every case. So, why not just
|
|
allow suds to select the port. Let us not make the user do it when it is
|
|
not necessary. In most cases, users on 0.2.9 and earlier will not have to
|
|
update their code when moving to 0.3.1 as they might have in 0.3.
|
|
|
|
version 0.3 (2008-09-30)
|
|
* Extends the support for multi-port services introduced in 0.2.9. This
|
|
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 Document/Literal:'.
|
|
* Add support for (xs:group, xs:attributeGroup) tags.
|
|
* Add Client.last_sent() and Client.last_received().
|
|
|
|
version 0.2.9 (2008-09-09)
|
|
* Support for multiple ports within a service.
|
|
* Attribute references <xs:attribute ref=""/>.
|
|
* Make XML special character encoder in sax package - pluggable.
|
|
|
|
version 0.2.8 (2008-08-28)
|
|
* Update document/literal binding to always send the document root referenced
|
|
by the <part/>. After yet another review of the space and user input, seems
|
|
like the referenced element is ALWAYS the document root.
|
|
* Add support for 'binding' schemaLocations to namespace-uri. This is for
|
|
imports that do not specify a schemaLocation and still expect the schema to
|
|
be downloaded. E.g. Axis references
|
|
'http://schemas.xmlsoap.org/soap/encoding/' without a schemaLocation. So,
|
|
by doing this::
|
|
|
|
>
|
|
> from suds.xsd.sxbasic import Import
|
|
> Import.bind('http://schemas.xmlsoap.org/soap/encoding/')
|
|
>
|
|
|
|
The schema is bound to a schemaLocation and it is downloaded.
|
|
* Basic unmarshaller does not need a `schema`. Should have been removed during
|
|
refactoring but was missed.
|
|
* Update client to pass kwargs to send() and add `location` kwarg for
|
|
overriding the service location in the WSDL.
|
|
* Update marshaller to NOT emit XML for object attributes that represent
|
|
elements and/or attributes that are *both* optional and value=None.
|
|
|
|
* Update factory (builder) to include all attributes.
|
|
* Add optional() method to SchemaObject.
|
|
|
|
* Update WSDL to override namespace in operation if specified.
|
|
* Fix schema loading issue - build all schemas before processing imports.
|
|
* Update packaging in preparation of submission to fedora.
|
|
|
|
version 0.2.7 (2008-08-11)
|
|
* Add detection/support for document/literal - wrapped and unwrapped.
|
|
* Update document/literal {wrapped} to set document root (under <body/>) to be
|
|
the wrapper element (w/ proper namespace).
|
|
* Add support for <sequence/>, <all/> and <choice/> having maxOccurs and have
|
|
the. This causes the unmarshaller to set values for elements contained in an
|
|
unbounded collection as a list.
|
|
* Update client.factory (builder) to omit children of <choice/> since the
|
|
'user' really needs to decide which children to include.
|
|
* Update flattening algorithm to prevent re-flattening of types from imported
|
|
schemas.
|
|
* Adjustments to flattening/merging algorithms.
|
|
|
|
version 0.2.6 (2008-08-05)
|
|
* Fix ENUMs broken during xsd package overhaul.
|
|
* Fix type as defined in ticket #24.
|
|
* Fix duplicate param names in method signatures as reported in ticket #30.
|
|
* Suds licensed as LGPL.
|
|
* Remove logging setup in suds.__init__() as suggested by patch in ticket #31.
|
|
Users will now need to configure the logger.
|
|
* Add support for Client.Factory.create() alt: syntax for fully qualifying the
|
|
type to be built as: {namespace}name. E.g.::
|
|
|
|
> client.factory.create('{http://blabla.com/ns}Person')
|
|
|
|
version 0.2.5 (2008-08-01)
|
|
* Overhauled the (XSD) package. This new (merging) approach is simpler and
|
|
should be more reliable and maintainable. Also, should provide better
|
|
performance since the merged schema performs lookups via dictionary lookup.
|
|
This overhaul should fix current TypeNotFound and <xs:extension/> problems,
|
|
I hope :-).
|
|
* Fixed dateTime printing bug.
|
|
* Added infinite recursion prevention in builder.Builder for xsd types that
|
|
contain themselves.
|
|
|
|
version 0.2.4 (2008-07-28)
|
|
* Added support for WSDL imports: <wsdl:import/>.
|
|
* Added support for xsd<->python type conversions (thanks: Nathan Van Gheem)
|
|
for:
|
|
|
|
* ``xs:date``
|
|
* ``xs:time``
|
|
* ``xs:dateTime``
|
|
|
|
* Fixed:
|
|
|
|
* Bug: Schema <import/> with schemaLocation specified.
|
|
* Bug: Namespaces specified in service description not valid until client/
|
|
proxy is printed.
|
|
|
|
version 0.2.3 (2008-07-23)
|
|
* Optimizations.
|
|
|
|
version 0.2.2 (2008-07-08)
|
|
* Update exceptions to be more /standard/ python by using
|
|
Exception.__init__() to set Exception.message as suggested by Ticket #14;
|
|
update bindings to raise WebFault passing (p).
|
|
* Add capability in bindings to handle multiple root nodes in the returned
|
|
values; returned as a composite object unlike when lists are returned.
|
|
* Fix soapAction to be enclosed by quotes.
|
|
* Add support for <xs:all/>.
|
|
* Fix unbounded() method in SchemaObject.
|
|
* Refactored schema into new (xsd) package. Files just getting too big. Added
|
|
execute() to Query and retrofitted suds to execute() query instead of using
|
|
Schema.find() directly. Also, moved hokey start() methods from schema, as
|
|
well as, query incrementation.
|
|
* Add inject keyword used to inject outbound soap messages and/or inbound
|
|
reply messages.
|
|
* Refactored SoapClient and
|
|
|
|
1) rename send() to invoke()
|
|
2) split message sending from invoke() and place in send()
|
|
|
|
* Add TestClient which allows for invocation kwargs to have inject={'msg=, and
|
|
reply='} for message and reply injection.
|
|
* Add Namespace class to sax for better management of namespace behavior;
|
|
retrofix suds to import and use Namespace.
|
|
* Change the default namespace used to resolve referenced types (having
|
|
attributes @base="", @type="") so that when no prefix is specified: uses XML
|
|
(node) namespace instead of the targetNamespace.
|
|
* Apply fix as defined by davidglick@onenw.org in ticket #13.
|
|
* Update service definition to print to display service methods as
|
|
' my_method(xs:int arg0, Person arg1) ' instead of
|
|
' my_method(arg0{xs:int}, arg1{Person}) ' which is more like traditional
|
|
method signatures.
|
|
* Add xsd/python type conversion to unmarshaller (XBoolean only); refactor
|
|
unmarshaller to use Content class which makes APIs cleaner, adds symmetry
|
|
between marshaller(s) and unmarshaller(s), provides good mechanism for
|
|
schema-property based type conversions.
|
|
* Refactored marshaller with Appenders; add nobuiltin flag to resolve() to
|
|
support fix for returned_type() and returned_collection() in bindings.
|
|
* Add support for (202, 204) http codes.
|
|
* Add XBoolean and mappings; add findattr() to TreeResolver in preparation for
|
|
type conversions.
|
|
* Updated schema and schema property loading (deep recursion stopped); Changed
|
|
Imported schemas so then no longer copy imported schemas, rather the import
|
|
proxies find requests; Add ServiceDefinition class which provides better
|
|
service inspection; also provides namespace mapping and show types; schema
|
|
property API simplified; support for xs:any and xs:anyType added; Some
|
|
schema lookup problems fixed; Binding classes refactored slightly; A lot of
|
|
debug logging added (might have to comment some out for performance - some
|
|
of the args are expensive).
|
|
* Add sudsobject.Property; a property is a special Object that contains a
|
|
(value) attribute and is returned by the Builder (factory) for schema-types
|
|
without children such as: <element/> and <simpleType/>; Builder, Marshallers
|
|
and Resolvers updated to handle Properties; Resolver, Schema also updated to
|
|
handle attribute lookups (this was missing).
|
|
* Add groundwork for user defined soap headers.
|
|
* Fix elementFormDefault per ticket #7
|
|
* Remove unused kwargs from bindings; cache bindings in WSDL; retrofit legacy
|
|
ServiceProxy to delegate to {new} Client API; remove keyword nil_supported
|
|
in favor of natural handling by 'nillable' attribute on <element/> within
|
|
schemas.
|
|
* Add support for <element/> attribute flags (nillable and form).
|
|
* Add the Proxy (2nd generation API) class.
|
|
* Add accessor/conversion functions to that user do not need to access __x__
|
|
attributes. Also add todict() and get_items() for easy conversion to
|
|
dictionary and iteration.
|
|
* Search top-level elements for @ref before looking deeper.
|
|
* Add derived() to SchemaObject. This is needed to ensure that all derived
|
|
types (WSDL classes) are qualified by xsi:type without specifying the
|
|
xsi:type for all custom types as did in earlier releases of suds. Update
|
|
the literal marshaller to only add the xsi:type when the type needs to be
|
|
specified.
|
|
* Change ns promotion in sax to prevent ns promoted to parent when parent has
|
|
the prefix.
|
|
* Changed binding returned_type() to return the (unresolved) Element.
|
|
* In order to support the new features and fix reported bugs, I'm in the
|
|
process of refactoring and hopefully evolving the components in Suds that
|
|
provide the input/output translations:
|
|
|
|
* Builder (translates: XSD objects => python objects)
|
|
* Marshaller (translates: python objects => XML/SOAP)
|
|
* Unmarshaller (translates: XML/SOAP => python objects)
|
|
|
|
This evolution will provide better symmetry between these components as
|
|
follows:
|
|
|
|
The Builder and Unmarshaller will produce python (subclass of
|
|
sudsobject.Object) objects with:
|
|
|
|
* __metadata__.__type__ = XSD type (SchemaObject)
|
|
* subclass name (__class__.__name__) = schema-type name
|
|
|
|
and
|
|
|
|
The Marshaller(s), while consuming python objects produced by the Builder or
|
|
Unmarshaller, will leverage this standard information to produce the
|
|
appropriate output (XML/SOAP).
|
|
|
|
The 0.2.1 code behaves *mostly* like this but ... not quite. Also, the
|
|
implementations have some redundancy.
|
|
|
|
While doing this, it made sense to factor out the common schema-type
|
|
"lookup" functionality used by the Builder, Marshaller and Unmarshaller
|
|
classes into a hierarchy of "Resolver" classes. This reduces the complexity
|
|
and redundancy of the Builder, Marshaller and Unmarshaller classes and
|
|
allows for better modularity. Once this refactoring was complete, the
|
|
difference between the literal/encoded Marshallers became very small. Given
|
|
that the amount of code in the bindings.literal and bindings.encoded
|
|
packages was small (and getting smaller) and in the interest of keeping the
|
|
Suds code base compact, I moved all of the marshalling classes to the
|
|
bindings.marshaller module. All of the bindings.XX sub-packages will be
|
|
removed.
|
|
|
|
The net effect:
|
|
|
|
All of the Suds major components:
|
|
|
|
* client (old: service proxy)
|
|
* WSDL
|
|
|
|
* schema (xsd package)
|
|
* resolvers
|
|
|
|
* output (marshalling)
|
|
* builder
|
|
* input (unmarshalling)
|
|
|
|
Now have better:
|
|
|
|
* modularity
|
|
* symmetry with regard to Object metadata.
|
|
* code re-use (< 1% code duplication --- I hope)
|
|
* looser coupling
|
|
|
|
and better provide for the following features/bug-fix:
|
|
|
|
* Proper level of XML element qualification based on
|
|
<schema elementFormDefault=""/> attribute. This will ensure that when
|
|
elementFormDefault="qualified", Suds will include the proper namespace on
|
|
root elements for both literal and encoded bindings. In order for this to
|
|
work properly, the literal marshaller (like the encoded marshaller) needed
|
|
to be schema-type aware. Had I added the same schema-type lookup as the
|
|
encoded marshaller instead of the refactoring described above, the two
|
|
classes would have been almost a complete duplicate of each other :-(
|
|
|
|
* The builder and unmarshaller used the schema.Schema.find() to resolve
|
|
schema-types. They constructed a path as "person.name.first" to resolve
|
|
types in proper context. Since the Schema.find() was stateless, it resolved
|
|
the intermediate path elements on every call. The new resolver classes are
|
|
stateful and resolve child types *much* more efficiently.
|
|
* Prevent name collisions in sudsobject.Object like the items() method. I've
|
|
moved all methods (including class methods) to a Factory class that is
|
|
included in the Object class as a class attr (__factory__). Now that *all*
|
|
attributes have python built-in naming, we should not have any more name
|
|
collisions. This of course assumes that no WSDL/schema entity names will
|
|
have a name with the python built-in naming convention but I have to draw
|
|
the line somewhere. :-)
|
|
|
|
version 0.2.1 (2008-05-08)
|
|
* Update the schema.py SchemaProperty loading sequence so that the schema is
|
|
loaded in 3 steps:
|
|
|
|
1) Build the raw tree.
|
|
2) Resolve dependencies such as @ref and @base.
|
|
3) Promote grandchildren as needed to flatten (denormalize) the tree.
|
|
|
|
The WSDL was also changed to only load the schema once and store it. The
|
|
schema collection was changed to load schemas in 2 steps:
|
|
|
|
1) Create all raw schema objects.
|
|
2) Load schemas.
|
|
|
|
This ensures that local <import/>'d schemas can be found when referenced out
|
|
of order. The sax.py Element interface changed: attribute() replaced by
|
|
get() and set(). Also, __getitem__ and __setitem__ can be used to access
|
|
attribute values. Epydocs updated for sax.py. And ... last <element ref=/>
|
|
now supported properly.
|
|
* Fix logging by: NOT setting to info in suds.__init__.logger(); set handler
|
|
on root logger only; moved logger (log) from classes to modules and use
|
|
__name__ for logger name. NOTE: This means that to enable soap message
|
|
logging one should use::
|
|
|
|
>
|
|
> logger('suds.serviceproxy').setLevel(logging.DEBUG)
|
|
>
|
|
|
|
instead of::
|
|
|
|
>
|
|
> logger('serviceproxy').setLevel(logging.DEBUG)
|
|
>
|
|
|
|
* Add support for (xsd) schema <attribute/> nodes which primarily affects
|
|
objects returned by the Builder.
|
|
* Update serviceproxy.py:set_proxies() to log DEBUG instead of INFO.
|
|
* Enhance schema __str__ to show both the raw XML and the model (mostly for
|
|
debugging).
|
|
|
|
version 0.2 (2008-04-28)
|
|
* Contains the first cut at the rpc/encoded soap style.
|
|
* Replaced Property class with suds.sudsobject.Object. The Property class was
|
|
developed a long time ago with a slightly different purpose. The suds
|
|
Object is a simpler (more straight forward) approach that requires less code
|
|
and works better in the debugger.
|
|
* The Binding (and the encoding) is selected on a per-method basis which is
|
|
more consistent with the WSDL. In <= 0.1.7, the binding was selected when
|
|
the ServiceProxy was constructed and used for all service methods. The
|
|
binding was stored as self.binding. Since the WSDL provides for a separate
|
|
binding style and encoding for each operation, Suds needed to be change to
|
|
work the same way.
|
|
* The (nil_supported) and (faults) flag(s) passed into the service proxy using
|
|
\**kwargs. In addition to these flags, a (http_proxy) flag has been added
|
|
and is passed to the urllib2.Request object. The following args are
|
|
supported:
|
|
|
|
* faults = Raise faults raised by server (default:True), else return tuple
|
|
from service method invocation as (http code, object).
|
|
* nil_supported = The bindings will set the xsi:nil="true" on nodes that
|
|
have a value=None when this flag is True (default:True). Otherwise, an
|
|
empty node <x/> is sent.
|
|
* proxy = An http proxy to be specified on requests (default:{}). The
|
|
proxy is defined as {protocol:proxy,}
|
|
|
|
* Http proxy supported (see above).
|
|
* ServiceProxy refactored to delegate to a SoapClient. Since the service
|
|
proxy exposes web services via getattr(), any attribute (including methods)
|
|
provided by the ServiceProxy class hides WS operations defined by the WSDL.
|
|
So, by moving everything to the SoapClient, WSDL operations are no longer
|
|
hidden without having to use *hokey* names for attributes and methods in the
|
|
service proxy. Instead, the service proxy has __client__ and __factory__
|
|
attributes (which really should be at low risk for name collision). For now
|
|
the get_instance() and get_enum() methods have not been moved to preserve
|
|
backward compatibility. Although, the preferred API change would to
|
|
replace::
|
|
|
|
> service = ServiceProxy('myurl')
|
|
> person = service.get_instance('person')
|
|
|
|
with something like::
|
|
|
|
> service = ServiceProxy('myurl')
|
|
> person = service.__factory__.get_instance('person')
|
|
|
|
After a few releases giving time for users to switch the new API, the
|
|
get_instance() and get_enum() methods may be removed with a notice in big
|
|
letters.
|
|
* Fixed problem where a WSDL does not define a <schema/> section and Suds can
|
|
not resolve the prefixes for the http://www.w3.org/2001/XMLSchema namespace
|
|
to detect builtin types such as (xs:string).
|
|
|
|
version 0.1.7 (2008-04-08)
|
|
* Added Binding.nil_supported to controls how property values (out) = None and
|
|
empty tag (in) are processed.
|
|
|
|
* service.binding.nil_supported = True -- means that property values = None
|
|
are marshalled (out) as <x xsi:nil=true/> and <x/> is unmarshalled as ''
|
|
and <x xsi:nil/> is unmarshalled as None.
|
|
* service.binding.nil_supported = False -- means that property values = None
|
|
are marshalled (out) as <x/> and <x/> *and* <x xsi:nil=true/> is
|
|
unmarshalled as None. The xsi:nil is really ignored.
|
|
* THE DEFAULT IS (TRUE).
|
|
|
|
* Sax handler updated to handle multiple character() callbacks when the sax
|
|
parser "chunks" the text. When the node.text is None, the node.text is set
|
|
to the characters. Else, the characters are appended. Thanks -
|
|
'andrea.spinelli@imteam.it'.
|
|
* Replaced special (text) attribute with __text__ to allow for natural
|
|
elements named "text".
|
|
* Add unicode support by:
|
|
|
|
* Add __unicode__ to all classes with __str__.
|
|
* Replace all str() calls with unicode().
|
|
* __str__() returns UTF-8 encoded result of __unicode__.
|
|
|
|
* XML output encoded as UTF-8 which matches the HTTP header and supports
|
|
unicode.
|
|
* SchemaCollection changed to provide the builtin() and custom() methods. To
|
|
support this, findPrefixes() was added to the Element in sax.py. This is a
|
|
better approach anyway since the WSDL and schemas may have many prefixes to
|
|
'http://www.w3.org/2001/XMLSchema'. Tested using both doc/lit and rpc/lit
|
|
bindings.
|
|
* Refactored bindings packages from document & rpc to literal & encoded.
|
|
* Contains the completion of *full* namespace support as follows:
|
|
|
|
* Namespace prefixes are no longer stripped from attribute values that
|
|
reference types defined in the WSDL.
|
|
* Schema's imported using <import/> should properly handle namespace and
|
|
prefix mapping and re-mapping as needed.
|
|
* All types are resolved, using fully qualified (w/ namespaces) lookups.
|
|
* Schema.get_type() supports paths with and without ns prefixes. When no
|
|
prefix is specified the type is matched using the schema's target
|
|
namespace.
|
|
|
|
* Property maintains attribute names (keys) in the order added. This also
|
|
means that get_item() and get_names() return ordered values. Although, I
|
|
suspect ordering really needs to be done in the marshaller using the order
|
|
specified in the WSDL/schema.
|
|
* Major refactoring of the schema.py. The primary goals is preparation for
|
|
type lookups that are fully qualified by namespace. Once completed, the
|
|
prefixes on attribute values will no longer be stripped (purged). Change
|
|
summary:
|
|
|
|
1) SchemaProperty overlay classes created at __init__ instead of on-demand.
|
|
2) schema imports performed by new Import class instead of by Schema.
|
|
3) Schema loads top level properties using a factory.
|
|
4) All SchemaProperty /children/ lists are sorted by __cmp__ in
|
|
SchemaProperty derived classes. This ensures that types with the same
|
|
name are resolved in the following order (Import, Complex, Simple,
|
|
Element).
|
|
5) All /children/ SchemaProperty lists are constructed at __init__ instead
|
|
of on-demand.
|
|
6) The SchemaGroup created and WSDL class updated. This works better then
|
|
having the WSDL aggregate the <schema/> nodes which severs linkage to the
|
|
WSDL parent element that have namespace prefix mapping.
|
|
7) <import/> element handles properly in that both namespace remapping and
|
|
prefix re-mapping of the imported schema's targetNamespace and
|
|
associated prefix mapping - is performed. E.g. SCHEMA-A has prefix (tns)
|
|
mapped as xmlns:tns=http://nsA and has targetNamespace='http://nsA'.
|
|
SCHEMA-B is importing schema A and has prefix (abc) mapped as
|
|
xmlns:abc='http://nsABC'. SCHEMA-B imports A as <import
|
|
namespace=http://nsB xxx schemaLocation=http://nsA/schema-a.xsd>. So,
|
|
since SCHEMA-B will be referencing elements of SCHEMA-A with prefix (abc)
|
|
such as abc:something, SCHEMA-A's targetNamespace must be updated as
|
|
'http://nsABC' and all elements with type=tns:something must be updated
|
|
to be type=abc:something so they can be resolved.
|
|
|
|
* Fixes unmarshalling problem where nodes are added to property as (text,
|
|
value). This as introduced when the bindings were refactored.
|
|
* Fixed various Property print problems.
|
|
|
|
Notes:
|
|
|
|
Thanks to Jesper Noehr of Coniuro for the majority of the rpc/literal
|
|
binding and for lots of collaboration on #suds.
|
|
|
|
version 0.1.6 (2008-03-06)
|
|
* Provides proper handling of WSDLs that contain schema sections containing
|
|
xsd schema imports: <import namespace="" schemaLocation=""?>. The
|
|
referenced schemas are imported when a schemaLocation is specified.
|
|
* Raises exceptions for http status codes not already handled.
|
|
|
|
version 0.1.5 (2008-02-21)
|
|
* Provides better logging in the modules get logger by hierarchal names.
|
|
* Refactored as needed to truly support other bindings.
|
|
* Add sax module which replaces ElementTree. This is faster, simpler and
|
|
handles namespaces (prefixes) properly.
|
|
|
|
version 0.1.4 (2007-12-21)
|
|
* Provides for service method parameters to be None.
|
|
* Add proper handling of method params that are lists of property objects.
|
|
|
|
version 0.1.3 (2007-12-19)
|
|
* Fixes problem where nodes marked as a collection (maxOccurs > 1) not
|
|
creating property objects with value=[] when mapped-in with < 2 values by
|
|
the DocumentReader. Caused by missing the
|
|
bindings.Document.ReplyHint.stripns() (which uses DocumentReader.stripns())
|
|
conversion to DocumentReader.stripn() now returning a tuple (ns, tag) as of
|
|
0.1.2.
|
|
|
|
version 0.1.2 (2007-12-18)
|
|
* This release contains an update to property adds:
|
|
|
|
- Metadata support.
|
|
- Overrides: __getitem__, __setitem__, __contains__.
|
|
- Changes property(reader|writer) to use the property.metadata to handle
|
|
namespaces for XML documents.
|
|
- Fixes setup.py requires.
|
|
|
|
version 0.1.1 (2007-12-17)
|
|
* This release marks the first release in fedora hosted.
|