Development Status
- 5 - Production/Stable
Programming Language
- Python :: 3
License
- OSI Approved :: MIT License
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.
References
- Supported Patterns
- Available Features
- Getting Started
- Development Guide
- Azure Functions Durable 2.x
- Contributing Guide
Optional Features
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.
[!NOTE] Python intentionally treats
.NET'sdt:anddto:property strings as ordinary strings, matching the Java SDK. Consequently,datetimevalues do not retain their type across Python/.NET failure-details property round trips; this is a .NET SDK parity gap.
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.