Skip to main content

Durable Task SDK for Python

License: MIT Build Validation PyPI version

This repository contains Python SDKs for building durable orchestrations with Azure Durable Task Scheduler and Azure Durable Functions:

Python Requirements

The core SDK and Azure Managed provider require Python 3.11 or later. The Azure Functions Durable provider requires Python 3.13 or later.

References

Optional Features

Task Hub Query Filters

Set OrchestrationQuery.task_hub_names to filter orchestration queries by one or more task hubs. The filter is available through synchronous and asynchronous core and Azure Managed clients; filtering support depends on the backend.

from durabletask.client import OrchestrationQuery

query = OrchestrationQuery(task_hub_names=["orders", "billing"])

Set Serialization

The default JsonDataConverter serializes sets and frozensets as JSON arrays ordered by their canonical JSON representation, not numeric order. For example, {2, 10} serializes as [10, 2]. To reconstruct annotated sets and frozensets instead of receiving lists, configure the same converter on clients and workers:

from durabletask.serialization import JsonDataConverter

converter = JsonDataConverter(enable_generic_sets=True)

Pass it using the data_converter parameter on core or Azure Managed clients and workers. enable_set_coercion=True is an alias for the same option. Azure Functions uses its own shared codec rather than this converter.

Entity IDs

EntityInstanceId values are immutable, hashable, and usable as dictionary keys or set elements. Construct a new ID to change an entity name or key; attribute assignment and deletion raise AttributeError.

Large Payload Externalization

Install the azure-blob-payloads extra to automatically offload oversized orchestration payloads to Azure Blob Storage:

pip install durabletask[azure-blob-payloads]

See the feature documentation and the example for usage details.

Failure Details Properties

Configure an ExceptionPropertiesProvider to attach portable diagnostic properties to activity, entity, and orchestration failures:

from durabletask import ExceptionPropertiesProvider
from durabletask.worker import TaskHubGrpcWorker


class FailureProperties(ExceptionPropertiesProvider):
    def get_exception_properties(self, exception: Exception):
        return {"error_code": getattr(exception, "error_code", None)}


worker = TaskHubGrpcWorker(exception_properties_provider=FailureProperties())

Properties support None, booleans, numbers, strings, nested mappings, and lists. They are available from TaskFailedError.details, orchestration state, and history as FailureDetails.properties.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Metadata

Release files for durabletask 1.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for durabletask 1.13.0
File Size Uploaded Provenance Actions
durabletask-1.13.0.tar.gz 194.7 kB Without provenance Details for durabletask-1.13.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for durabletask 1.13.0
File Interpreter ABI Platform Actions
durabletask-1.13.0-py3-none-any.whl Python 3 none any Details for durabletask-1.13.0-py3-none-any.whl

Total release size: 416.1 kB

Release files / durabletask-1.13.0.tar.gz

Download URL durabletask-1.13.0.tar.gz
Size 194.7 kB
Tags Source
SHA-256 checksum
How to use checksums
34963931cd15fe5bbdea3b746507d7606d89a2f498cceb29c966459e5ec38423
BLAKE2b-256 checksum
How to use checksums
4479443975638c8ad1c8bd76a073e93ecd3660abe1708268403a397b9e85e579
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via RestSharp/106.13.0.0

Release files / durabletask-1.13.0-py3-none-any.whl

Download URL durabletask-1.13.0-py3-none-any.whl
Size 221.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
451bce3b15a0fb076a9cc30e20f03334c49ee5eca832afc89037557fb7065482
BLAKE2b-256 checksum
How to use checksums
aa0dec9c9cb01c7ec663b2455e2de30b2ef6c902d867eea5910e1a8baab6e884
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via RestSharp/106.13.0.0

Security for durabletask 1.13.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.13.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page