Install & Compatibility
Where this runs
tested against v1.2.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.184s · 18.9MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.6s · import 0.166s · 19MB
17MB installed
● package 17MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Client
✓ from suds.client import Client
✗ from suds import Client
The Client class is located within the 'client' submodule.
Initialize a `Client` with a WSDL URL to interact with a SOAP web service. The `client.service` object exposes available methods directly, which can be inspected by printing the object itself. The `client.factory` can be used to create complex types if required by the service.
from suds.client import Client
# A public WSDL for a simple calculator service
# NOTE: This WSDL is an example, real-world services require valid endpoints and proper authentication
wsdl_url = 'http://www.dneonline.com/calculator.asmx?WSDL'
try:
client = Client(wsdl_url)
print(f"Connected to service: {client.service}")
print("Available methods:")
print(client.service)
# Example: Call the 'Add' method
result = client.service.Add(10, 5)
print(f"10 + 5 = {result}")
# Example: Call the 'Divide' method
result = client.service.Divide(10, 2)
print(f"10 / 2 = {result}")
except Exception as e:
print(f"An error occurred: {e}")
Debug
Known issues
breakingThe `suds-community` package is a fork of `suds-jurko`, which itself forked the original `suds` library. Ensure you install `suds-community` as 'pip install suds-community' and import from `suds` (e.g., `from suds.client import Client`). Do not confuse it with the unmaintained original `suds` or `suds-jurko`, which may have Python 2 compatibility issues or different behaviors.fixAlways install `suds-community` and use the imports as shown in the quickstart. Review your `requirements.txt` to ensure the correct package is specified.
affects: <= 1.0.0 of original suds, suds-jurko
gotchaWhen dealing with WSDLs that define multiple services or ports, `suds-community` will default to the first service and first port if not explicitly specified. This can lead to unexpected behavior if the desired service or port is not the default.fixExplicitly select the desired service and port using client options or subscripting the service object: `client.set_options(service='MyService', port='MyPort')` or `client.service['MyService']['MyPort'].myMethod()`.
affects: All versions
deprecatedEarlier versions of `suds` (prior to `suds-community` and even `suds-jurko` forks) had a known security vulnerability (CVE-2013-2217) related to the default cache location. `suds-community` has implemented a fix for this by using a separate temporary folder per process.fixEnsure you are using `suds-community` version 0.7.0 or newer to benefit from this fix. Regularly update your packages to mitigate known vulnerabilities.
affects: Original `suds` (<0.4.1) and potentially early `suds-jurko` versions. Not applicable to `suds-community` v0.7.0+.
gotchaDue to how `suds-community` is packaged and named versus the historical `suds` package, a `pip download suds` command might fail with a message like "has inconsistent name: expected 'suds', but metadata has 'suds-community'".fixUse `pip download suds-community` instead of `pip download suds` when explicitly trying to download the `suds-community` package.
affects: All versions
Upgrade
Version history
1.2.0latest on PyPI · released Aug 24, 2024
Audit
Dependencies
pythonrequiredRequires Python 3.7 or newer for compatibility.