Suds

Latest version: v1.1.2

Safety actively analyzes 638681 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 8

0.7.1

------------------------
* Documentation updates (phillbaker)
* Add travis deploy (phillbaker)

0.7.0

------------------------

- 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+, except for the following
versions:
- Python 3.0.x - not supported by setuptools, pip or pytest.
- Basic sources prepared for Python 2.x.
- For using Python 3 the sources first processed by the Python
`py2to3` tool during the setup procedure.
- Tested in the environments listed in the
[.travis.yml]{.title-ref}
- Improved support for `decimal` XSD types.
- Now modeled internally using Python\'s `decimal.Decimal` type
instead of `float` - see the new `suds.xsd.sxbuiltin.XDecimal`
class.
- Based on a patch included with [454](http://fedorahosted.org/suds/ticket/454) for the original
`suds` library implementation.
- In order to get a `decimal` value formatted correctly in
constructed SOAP request XML documents, pass it to `suds` as
`decimal.Decimal` or an `int`/`long`.
- In general, passing a value of a Python type other than
`decimal.Decimal` causes that type\'s native string
representation to be used which might not strictly match the
lexical representation rules defined in the XSD
specification for the `decimal` XSD type. For instance, a
`float` value may be represented using scientific notation,
or a `fractions.Fraction` may be represented using its
`numerator` & `denominator` values.
- Specific user applications can easily register their own
customized `XDecimal` implementation using
`suds.xsd.sxbuiltin.Factory.maptag()` if they want to use
more specialized `decimal` value handling.
- Updated how `suds` constructs its cached WSDL & XML identifiers to
allow cached data reuse between different processes with Python\'s
hash randomization feature enabled.
- Previously constructed using the built-in Python `hash()`
function, while now it gets constructed using `md5` hash.
- Python\'s hash randomization (implemented since Python 2.6.8,
enabled by default since Python 3.3) was causing different
processes to mangle their cached data names differently.
- Many thanks to Eugene Yakubovich for reporting the issue as well
as providing the initial fix.
- Fixed loading recursive WSDL imports.
- Fixed loading recursive XSD imports/includes.
- Fixed an infinite recursion bug encountered when looking for an XSD
type in an XSD schema that does not contain it but itself defines a
type referencing a recursively defined type from an imported XSD
schema.
- Kudos to Kevin Pors ([krpors]{.title-ref} on BitBucket) for
detecting, analysing & reporting the issue, plus preparing a
working quick-fix.
- Removed never actually used `suds.mx.appender.DictAppender` class.
- All code paths that could potentially lead to this class getting
used convert any encountered dictionaries to
`suds.sudsobject.Object` instances and report an error in case a
corresponding XSD type can not be found.
- Now marshalling passed empty object optional params as empty SOAP
request XML elements.
- Before, passing an empty suds object as an optional parameter
value was treated the same as not passing that parameter\'s
value or passing it `None` - the value would not get marshalled
into the constructed SOAP request at all.
- Now, user can still not have the value marshalled by passing
nothing or `None`, but passing an empty object will get
marshalled as an actual SOAP request XML element.
- Kudos to Nicholas Chen (nicholaschen at BitBucket) & Mark
Saniscalchi (msaniscalchi at BitBucket) for reporting the issue
and preparing the initial fix.
- Made `suds` no longer eat up, log & ignore exceptions raised from
registered user plugins (detected & reported by Ezequiel Ruiz &
Bouke Haarsma, patch & test case contributed by Bouke Haarsma).
- Fixed places in code where `suds` could eat up & silently ignore
internal Python exceptions like `KeyboardInterrupt` or `SystemExit`.
- Fixed the exception message used when attempting to construct a
`suds.sax.element.Element` with a non-`Element` parent.
- `suds.xsd.sxbase.SchemaObject.content()` now runs in linear instead
of quadratic time.
- `DepList` class replaced with a simple `dependency_sort()` function
taking a single dependency dictionary as input.
- The original implementation\'s interface was too heavy-weight
with no added value.
- Anything tried with the original interface outside the basic
use-case covered by `dependency_sort()` was actually or could be
easily broken.
- `suds.xsd.deplist` module renamed to `suds.xsd.depsort`.
- Global XSD elements (i.e. top-level + reference elements) are now
correctly always considered qualified and their `form` attribute
values are ignored.
- Many thanks to Andrew Yager from BitBucket for reporting the
issue.
- `suds.cache` module cleanup.
- Fixed `FileCache` default cache location related security issue.
- Each process now uses a separate temporary folder as its
default cache location.
- Different `FileCache` instances within the same process
still use the same default cache location and user may still
explicitly specify a non-default location for each
`FileCache` instance.
- Default cache location now gets removed automatically on
process exit. User code may disable this removal by setting
the `FileCache.remove_default_location_on_exit` class
attribute to False.
- Additional external information on this issue:
- [Red Hat bug 978696](https://bugzilla.redhat.com/show_bug.cgi?id=978696)
- [CVE-2013-2217](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2217)
- [Ubuntu USN-2008-1: Suds vulnerability](http://www.ubuntu.com/usn/USN-2008-1)
- <http://lists.opensuse.org/opensuse-updates/2013-07/msg00062.html>
- <https://bugzilla.novell.com/show_bug.cgi?id=827568>
- <http://www.openwall.com/lists/oss-security/2013/06/27/8>
- Many thanks to Rolf Krahl for the initial report, providing
links to related external resources as well as helping
brainstorm the whole issue.
- Fixed a bug causing `DocumentCache` to never actually cache any
documents since one of the last commits made to the original
`suds` project.
- That commit refactored `suds.sax.document.Document` so it is
no longer derived from `suds.sax.element.Element` while the
`suds.cache.DocumentCache.put()` implementation simply did
nothing when passed something other than a
`suds.sax.element.Element` instance.
`suds.reader.DocumentReader` on the other hand always passes
`suds.sax.document.Document` instances to its cache\'s
`put()` method.
- Many thanks to bgr\_ at BitBucket for reporting the issue.
- Fixed a bug causing `DocumentCache` & `ObjectCache` to not
remove their cached files when failing to read data from them or
process the data read from them.
- `FileCache` version file operations now take care to close the
file in case of a failed read/write operation.
- Removed `FileCache.setlocation()` method as it was never used
inside `suds` and if used from user code would have caused the
cache to use a specific folder but without making sure that the
data already stored in it has been prepared for the correct
`suds` version, as done when passing a location parameter to the
`FileCache` constructor.
- Private and protected `FileCache` interface methods renamed to
use leading underscores.
- `FileCache.getf()` \--\> `FileCache._getf()`.
- `FileCache.__fn()` \--\> `FileCache.__filename()`.
- `FileCache.checkversion()` \--\>
`FileCache.__check_version()`.
- `FileCache.mktmp()` \--\> `FileCache.__mktmp()`.
- `FileCache.open()` \--\> `FileCache.__open()`.
- `FileCache.setduration()` \--\>
`FileCache.__set_duration()`.
- `FileCache.validate()` \--\>
`FileCache.__remove_if_expired()`.
- Updated `FileCache` duration implementation.
- `FileCache` construction now takes standard
`datetime.timedelta` duration related keyword arguments
instead of just `weeks`, `days`, `hours`, `minutes` &
`seconds`. More to the point, it now also supports
`milliseconds` & `microseconds` keyword arguments.
- Corrected `FileCache` docstring stating that it accepted a
`months` keyword argument. Using that argument would
actually have caused a failure when passing it to a
`datetime.timedelta` initializer internally.
- You may now specify multiple duration keyword arguments in
`FileCache` construction and they will all get summed up
when constructing the internal `datetime.timedelta` duration
representation. Before, you could specify such multiple
arguments, but that would only make the `FileCache` silently
use duration `0`, i.e. its cache entries would never expire.
- Fixed `suds.sax.document.Document` str conversion broken around the
end of 2011 by some accidental interaction between our Python 3
compatibility fixes and one of the final official `suds` project
commits making `suds.sax.document.Document` no longer be derived
from `suds.sax.element.Element`.
- Many thanks to Ezequiel Ruiz (emruiz81 at BitBucket) for
detecting & reporting the issue, as well as providing the
initial patch.
- Cleaned up `suds.transport` ASCII/unicode URL/data handling.
- `suds.transport.Request` now allows specifying its URL input as
either a byte or a unicode string with any Python version.
Internally that URL information is always converted to the used
Python interpreter\'s native `str` data type (byte string for
Python versions prior to 3.0, or unicode string for later ones).
- Given URLs must not contain any non-ASCII characters, and any
attempt to create a `suds.transport.Request` with such an
invalid URL is reported as a `UnicodeError` (either
`UnicodeDecodeError` or `UnicodeEncodeError` depending on the
exact Python version and the given URL data type used).
- `suds.transport.Reply` & `suds.transport.Request` string
representation cleaned up and no longer raises an error when
their message data contains non-ASCII characters.
- `suds.client` module cleanup.
- Removed unused `suds.client.Client.messages` attribute.
- Renamed private `SoapClient` & `SimClient` classes:
- `SoapClient` \--\> `_SoapClient`.
- `SimClient` \--\> `_SimClient`.
- Several private methods renamed:
- `_SoapClient.location()` \--\> `_SoapClient.__location()`.
- `_SoapClient.get_fault()` \--\> `_SoapClient.__get_fault()`.
- `_SoapClient.headers()` \--\> `_SoapClient.__headers()`.
- `RequestContext` no longer has `client` & `original_envelope`
attributes.
- `client` attribute seems unnecessary.
- `original_envelope` was an incorrectly documented bug trap -
it represented the XML request envelope as a `SAX` XML
document from after being processed by registered
`marshalled` plugins, but before being processed by
registered `sending` plugins. Users should use the
`envelope` attribute instead which can easily be converted
into a `SAX` XML document if needed by parsing it using
`suds.sax.parser.Parser.parse()`. That envelope has been
consistently processed by all relevant registered plugins
and matches the data to be sent over the registered
transport exactly.
- Cleaned up `_SoapClient` debug log messages a bit.
- `suds.reader` module cleanup.
- Several private methods renamed:
- `DocumentReader.cache()` \--\> `DocumentReader.__cache()`
- `DocumentReader.download()` \--\> `DocumentReader.__fetch()`
- `DefinitionsReader.cache()` \--\>
`DefinitionsReader.__cache()`
- Updated the `BuildError` exception message.
- Reformatted.
- Converted to a unicode string.
- Marked `suds.mx.core.Core.node()` as abstract since this base class
variant is never actually used (both `Encoded` & `Literal` derived
classes use a different implmentation).
- `suds.binding.Binding` converted to a new-style class.
- `suds.tostr()` utility function may no longer silently eat internal
Python exceptions like `KeyboardInterrupt` or `SystemExit`.
- Removed the unused `SoapHeadersNotPermitted` exception class.
- Extra input arguments now reported when invoking web service
operations taking no input parameters.
- Using injected requests/replies/error-information with a web service
operation taking at least one input parameter no longer causes
`suds` to report an invalid extra argument error.
- Internal project development improvements.
- The project will from now on be distributed as a wheel as well
as a source distribution.
- Added a script for automatically setting up required development
Python environments for this project, hopefully supporting the
full range of supported Python versions out of the box.
- Improved internal project `HACKING.rst` documentation.
- `setup.py` improvements.
- Python 3.0.x releases explicitly marked as not supported.
- Attempting to run `setup.py` in an unsupported Python
environment now reports a clean error message.
- Now uses `setuptools` 1.4.2 with Python 2.4 & 2.5, and
`setuptools` 5.1 with all more recent Python releases.
- Project may now be installed without even in environments when
you can not install `setuptools`.
- In such cases `setup.py` will attempt to use any
preinstalled `setuptools` version, and if none is available,
it will disable some of its features and fall back to using
a plain `distutils` based setup. See the `setup.py` script
comments for a more detailed listing of all `setup.py`
features affected by this.
- Several installation issues fixes when installing into Python
3.x environments prior to Python 3.2.3.
- When installing the project into a Python 3.x environment prior
to Python 3.2, `setuptools` is not installed automatically since
one of its test modules contains UTF-8 BOM characters, which
would cause such automated installation to fail.
- If needed, `setuptools` can still be installed into such
environments by manually running its `ez_setup.py`
installation script. Such an installation will encounter the
same errors but will ignore them, effectively just leaving
the installed `setuptools` package with one defective test
module, but fully operational at run-time.
- When installing the project into a Window Python 2.5
environment, you no longer need to manually install a compatible
`colorama` package versions in order to be able to run the
project tests.
- Package meta-data may now contain non-ASCII characters on
platforms where that is allowed, namely with all Python versions
except Python 3.x prior to 3.2.2.
- `setup.py test` command improvements.
- Now works in Python 2.4.x environments.
- Now reports cleanly if it can not be used for some reason,
both when run and in the command\'s `--help-commands`
listing.
- Better commented the related implementation.
- Test suite improvements.
- Test suite no longer installed together with the project, thus
no longer causing confusion by existing in the target Python
environment as a global `tests` package.
- The tests may now be run from the source archive, and will
always run on the `suds` version found installed in the used
Python environment.
- Refactored the quick & dirty batch script used to run all the
project tests in multiple Python environments to remove much
code duplication.
- Automated project testing in several additional Python
environment versions.
- Added more detailed XSD modeling tests.
- Added tests demonstrating how additional or replacement built-in
XSD types can be registered with `suds`.
- All project tests now using Python 2 & 3 compatible source code
and so no longer need to be built separately for Python 3.
- Added new and updated existing `suds.cache` module related
tests.
- Documented that all `pytest` test parametrizations should be
prepared so they get ordered the same on all test runs. See
`Project implementation note 1` in `HACKING.rst` for more
detailed information.
- Many thanks to Bruno Oliveira (nicoddemus at BitBucket) for
researching related `pytest` `xdist` usage problems,
discovering & explaining the underlying issue as well as
providing an initial project patch for it.

0.6

------------------------

- 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
`py2to3` 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.
- Fixed sending HTTP request containing non-ASCII unicode data using
Python 2.7.
- Many thanks to mduggan1 and Alexey Sveshnikov for reporting the
issue and suggesting patches.
- Fixed unicode data logging issue (contributed by Bouke Haarsma).
- `suds.transport.Request` object string representation cleaned up a
bit -added a missing space before the URL to make it consistent with
how all the other Request & Reply data is represented in such
strings.
- Fixed issue with `suds` client failing to be create its default
cache object (e.g. because a folder it needs is write protected) and
thus preventing the client from being created without any chance for
the user to specify an alternative cache.
- The default client cache is now instantiated only if user does
not explicitly specify some other alternate cache (or even None
to disable the whole data caching system).
- Many thanks to Arthur Clune for reporting the issue.
- Added explicit tests for URL parameters being passed as unicode or
single-byte strings under Python 2 but only unicode strings under
Python 3, and improved how such invalid parameter values are
reported.
- This behaviour matches urllib implementation differences between
Python 3 and earlier Python interpreter versions.
- Many thanks to Mesut Tasci for reporting a related issue and
preparing the initial patch for it.
- Extra arguments used when making a web service operation call are
now reported similar to how this is done for regular Python
functions.
- The extra argument error reporting may be disabled using the new
`extraArgumentErrors` `suds` option.
- Basic idea and the initial implementation for this feature
contributed by Bouke Haarsma.
- Corrected a typo in the `BuildError` exception message.
- Removed partial support for pre-2.4 Python versions since such old
Python versions are no longer officially supported nor are they
tested anywhere.
- Updated documented project links to use HTTP instead of HTTPS
protocol.
- Setup improvements.
- Fixed setup to work with soft links in the current working
folder path (contributed by ryanpetrello).
- Project now installed as a zipped egg folder.
- No longer attempts to work around Python 2.4.3 issues with
urllib HTTPS downloads since now PyPI updated all of its links
to HTTPS and the patch would need to become much more complex to
deal with this, while making the setup much more difficult to
understand and maintain.
- On the other hand, this is now an extremely old Python
version, so the change is not expected to have much impact.
Anyone still using this version will just have to work
around the issue manually, e.g. by downloading the necessary
packages and running their setup procedures directly.
- `long_description` field content wrapped to 72 characters, since
`PKG-INFO` package distribution metadata file stores this text
with an 8 space indentation.
- Improved internal project development documentation.
- `HACKING.txt` updated, converted to .rst format & renamed to
`HACKING.rst`.
- Started internal project design, research & development notes
documentation. Stored in a new `notes/` subfolder, included in
the project\'s source distribution, but not its builds or
installations.
- Internal test suite improvements.
- Added unit tests for transport related `Request` & `Reply`
classes.
- Improved `HTTPTransport` related unit tests.
- Split up some web service operation invocation request
construction tests into:
- parameter definition tests
- argument parsing tests
- binding specific request construction tests
- Many new tests added & existing ones extended.
- Several redundant tests removed.
- Added a basic development script for running the project\'s full
test suite using multiple Python interpreter versions under
Windows.
- Better test support when running with disabled assertion
optimizations enabled.
- Cleaned up support for running test scripts directly as Python
scripts.
- May now be passed pytest command-line options.
- Now return an exit code indicating the test result
(0=success, !0=failure).
- Known defects.
- Extra argument errors not reported for web service operations
taking no input parameters.
- Invalid extra argument error reported when using an injected
request/reply/ error-information with a web service operation
taking at least one input parameter.
- Security issue CVE-2013-2217 - using fixed default cache
location.
- Incorrect referencing XSD element\'s `form` attribute value
handling -global XSD elements (i.e. top-level + reference
elements) sometimes considered unqualified.
- Loading recursive WSDL imports is broken.
- Loading recursive XSD imports/includes is broken.
- Infinite recursion bug encountered when looking for an XSD type
in an XSD schema that does not contain it but itself defines a
type referencing a recursively defined type from an imported XSD
schema.

0.5

------------------------

- 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
`py2to3` 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.
- Known defects.
- Security issue CVE-2013-2217 - using fixed default cache
location.
- Incorrect referencing XSD element\'s `form` attribute value
handling -global XSD elements (i.e. top-level + reference
elements) sometimes considered unqualified.
- Loading recursive WSDL imports is broken.
- Loading recursive XSD imports/includes is broken.
- Infinite recursion bug encountered when looking for an XSD type
in an XSD schema that does not contain it but itself defines a
type referencing a recursively defined type from an imported XSD
schema.

0.4.1

- \<undocumented\>
- Known defects.
- SOAP request parameter XML elements constructed in incorrect
namespaces in case they have been defined by XSD schema elements
referencing XSD schema elements with a different target
namespace.
- Security issue CVE-2013-2217 - using fixed default cache
location.
- Incorrect referencing XSD element\'s `form` attribute value
handling -global XSD elements (i.e. top-level + reference
elements) sometimes considered unqualified.
- Loading recursive WSDL imports is broken.
- Loading recursive XSD imports/includes is broken.
- Infinite recursion bug encountered when looking for an XSD type
in an XSD schema that does not contain it but itself defines a
type referencing a recursively defined type from an imported XSD
schema.

0.4

Not secure
- 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 the way this is 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.

Page 3 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.