This is the Durable Task Python SDK, providing a client and worker for building durable orchestrations. The repo contains two packages:
durabletask— core SDK (indurabletask/)durabletask.azuremanaged— Azure Durable Task Scheduler provider (indurabletask-azuremanaged/)
- Python 3.10+ is required.
- Use type hints for all public API signatures.
- Follow PEP 8 conventions.
- Use
autopep8for Python formatting.
Before linting, check for and fix any Pylance errors in the files you
changed. Use the editor's diagnostics (or the get_errors tool) to
identify type errors and resolve them first — type safety takes
priority over style.
This repository uses flake8 for Python linting. Run it after making changes to verify there are no issues:
python -m flake8 path/to/changed/file.pyUse GitHub-style callouts for notes, warnings, and tips in Markdown files:
> [!NOTE]
> This is a note.
> [!WARNING]
> This is a warning.
> [!TIP]
> This is a tip.Do not use bold-text callouts like **NOTE:** or > **Note:**.
When providing shell commands in Markdown, include both Bash and
PowerShell examples if the syntax differs between them. Common cases
include multiline commands (Bash uses \ for line continuation while
PowerShell uses a backtick `), environment variable syntax, and
path separators. If a command is identical in both shells, a single
example is sufficient.
This repository uses pymarkdownlnt
for linting Markdown files. Configuration is in .pymarkdown.json at the
repository root.
To lint a single file:
python -m pymarkdown -c .pymarkdown.json scan path/to/file.mdTo lint all Markdown files in the repository:
python -m pymarkdown -c .pymarkdown.json scan **/*.mdInstall the linter via the dev dependencies:
python -m pip install -r dev-requirements.txtInstall the packages locally in editable mode:
python -m pip install -e . -e ./durabletask-azuremanagedRun tests with pytest:
python -m pytestdurabletask/— core SDK sourcepayload/— public payload externalization API (PayloadStoreABC,LargePayloadStorageOptions, helper functions)extensions/azure_blob_payloads/— Azure Blob Storage payload store (installed viapip install durabletask[azure-blob-payloads])entities/— durable entity supporttesting/— in-memory backend for testing without a sidecarinternal/— protobuf definitions, gRPC helpers, tracing (not public API)
durabletask-azuremanaged/— Azure managed provider sourceexamples/— example orchestrations (seeexamples/README.md)tests/— test suitedev-requirements.txt— development dependencies