NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2329 most downloaded on PyPI
Lightweight SOAP client (community fork)
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 4 weeks to 2.2 years
Nearly every release is documented
notes for 13 of 14 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
16 releases · first in 2018
Remove support from before Python 3.7
Restore last_sent and last_received functions
Use usedforsecurity=False for md5() calls to make suds work on FIPS compliant python
One column per quarter.
Fix undeclared variables, found via linting.
Nothing published for this version
Nothing published for this version
R4201 Any PASSWORD MUST specify a Type attribute
Ensure request headers set in options are used to fetch definitions
* Fix pypi description format
Fix bug introduced in 0.8.0, initialize optional arrays with empty lists (@guifran001)
[Breaking] Objects should not be instantiated with empty optional attributs, see https://github.com/suds-community/suds/issues/14 for more information
Pass header while requesting a WSDL (@guifran001)
* Fix Travis deploy (@btb)
Documentation updates (@phillbaker)
Ubuntu USN-2008-1: Suds vulnerability
suds Python library development project's
Subversion repository.
suds Python library
version - 0.4.1.py2to3 tool during the setup procedure.decimal XSD types.
decimal.Decimal type
instead of float - see the new suds.xsd.sxbuiltin.XDecimal
class.suds library implementation.decimal value formatted correctly in
constructed SOAP request XML documents, pass it to suds as
decimal.Decimal or an int/long.
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.XDecimal implementation using
suds.xsd.sxbuiltin.Factory.maptag() if they want to use
more specialized decimal value handling.suds constructs its cached WSDL & XML identifiers to
allow cached data reuse between different processes with Python's
hash randomization feature enabled.
hash()
function, while now it gets constructed using md5 hash.suds.mx.appender.DictAppender class.
suds.sudsobject.Object instances and report an error in case a
corresponding XSD type can not be found.None - the value would not get marshalled
into the constructed SOAP request at all.None, but passing an empty object will get
marshalled as an actual SOAP request XML element.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).suds could eat up & silently ignore
internal Python exceptions like KeyboardInterrupt or SystemExit.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.
dependency_sort() was actually or could be
easily broken.suds.xsd.deplist module renamed to suds.xsd.depsort.form attribute
values are ignored.
suds.cache module cleanup.
FileCache default cache location related security issue.
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.FileCache.remove_default_location_on_exit class
attribute to False.DocumentCache to never actually cache any
documents since one of the last commits made to the original
suds project.
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.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.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.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().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.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.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.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.
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).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.
suds.client.Client.messages attribute.SoapClient & SimClient classes:
SoapClient --> _SoapClient.SimClient --> _SimClient._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._SoapClient debug log messages a bit.suds.reader module cleanup.
DocumentReader.cache() --> DocumentReader.__cache()DocumentReader.download() --> DocumentReader.__fetch()DefinitionsReader.cache() -->
DefinitionsReader.__cache()BuildError exception message.
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.SoapHeadersNotPermitted exception class.suds to report an invalid extra argument error.HACKING.rst documentation.setup.py improvements.
setup.py in an unsupported Python
environment now reports a clean error message.setuptools 1.4.2 with Python 2.4 & 2.5, and
setuptools 5.1 with all more recent Python releases.setuptools.
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.setuptools is not installed automatically since
one of its test modules contains UTF-8 BOM characters, which
would cause such automated installation to fail.
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.colorama package versions in order to be able to run the
project tests.setup.py test command improvements.
--help-commands
listing.tests package.
suds version found installed in the used
Python environment.suds.suds.cache module related
tests.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.
pytest xdist usage problems,
discovering & explaining the underlying issue as well as
providing an initial project patch for it.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →