{"id":2794,"library":"suds-community","title":"suds-community","description":"suds-community is a lightweight SOAP-based web service client for Python, designed to provide an RPC-like interface to SOAP services and abstract away the complexities of WSDLs. It is a community-maintained fork of the 'suds-jurko' project, which itself originated from the unmaintained 'suds' library. The project is actively developed, with the current version being 1.2.0, released in August 2024.","status":"active","version":"1.2.0","language":"en","source_language":"en","source_url":"https://github.com/suds-community/suds","tags":["SOAP","web service","client","WSDL","XML"],"install":[{"cmd":"pip install suds-community","lang":"bash","label":"Install with pip"}],"dependencies":[{"reason":"Requires Python 3.7 or newer for compatibility.","package":"python","optional":false}],"imports":[{"note":"The Client class is located within the 'client' submodule.","wrong":"from suds import Client","symbol":"Client","correct":"from suds.client import Client"}],"quickstart":{"code":"from suds.client import Client\n\n# A public WSDL for a simple calculator service\n# NOTE: This WSDL is an example, real-world services require valid endpoints and proper authentication\nwsdl_url = 'http://www.dneonline.com/calculator.asmx?WSDL'\n\ntry:\n    client = Client(wsdl_url)\n    print(f\"Connected to service: {client.service}\")\n    print(\"Available methods:\")\n    print(client.service)\n\n    # Example: Call the 'Add' method\n    result = client.service.Add(10, 5)\n    print(f\"10 + 5 = {result}\")\n\n    # Example: Call the 'Divide' method\n    result = client.service.Divide(10, 2)\n    print(f\"10 / 2 = {result}\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")","lang":"python","description":"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."},"warnings":[{"fix":"Always install `suds-community` and use the imports as shown in the quickstart. Review your `requirements.txt` to ensure the correct package is specified.","message":"The `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.","severity":"breaking","affected_versions":"<= 1.0.0 of original suds, suds-jurko"},{"fix":"Explicitly 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()`.","message":"When 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.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure you are using `suds-community` version 0.7.0 or newer to benefit from this fix. Regularly update your packages to mitigate known vulnerabilities.","message":"Earlier 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.","severity":"deprecated","affected_versions":"Original `suds` (<0.4.1) and potentially early `suds-jurko` versions. Not applicable to `suds-community` v0.7.0+."},{"fix":"Use `pip download suds-community` instead of `pip download suds` when explicitly trying to download the `suds-community` package.","message":"Due 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'\".","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-10T00:00:00.000Z","next_check":"2026-07-09T00:00:00.000Z"}