Durable Task SDK for Python
This repository contains Python SDKs for building durable orchestrations with Azure Durable Task Scheduler and Azure Durable Functions:
durabletaskis the core orchestration SDK.durabletask.azuremanagedis the Azure Durable Task Scheduler provider.azure-functions-durableis a preview Azure Durable Functions provider built ondurabletask.
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
- Supported Patterns
- Available Features
- Getting Started
- Development Guide
- Azure Functions Durable 2.x
- Contributing Guide
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.