This is the set of Python samples for the Python SDK.
UNDER DEVELOPMENT
The Python SDK is under development. There are no compatibility guarantees nor proper documentation pages at this time.
Prerequisites:
- Python >= 3.7
- Poetry
- Local Temporal server running
With this repository cloned, run the following at the root of the directory:
poetry install
That loads all required dependencies. Then to run a sample, usually you just run it in Python. For example:
poetry run python hello/hello_activity.py
Some examples require extra dependencies. See each sample's directory for specific instructions.
- hello - All of the basic features.
- hello_activity - Execute an activity from a workflow.
- hello_activity_choice - Execute certain activities inside a workflow based on dynamic input.
- hello_activity_multiprocess - Execute a synchronous activity on a process pool.
- hello_activity_retry - Demonstrate activity retry by failing until a certain number of attempts.
- hello_activity_threaded - Execute a synchronous activity on a thread pool.
- hello_async_activity_completion - Complete an activity outside of the function that was called.
- hello_cancellation - Manually react to cancellation inside workflows and activities.
- hello_child_workflow - Execute a child workflow from a workflow.
- hello_continue_as_new - Use continue as new to restart a workflow.
- hello_cron - Execute a workflow once a minute.
- hello_exception - Execute an activity that raises an error out of the workflow and out of the program.
- hello_local_activity - Execute a local activity from a workflow.
- hello_mtls - Accept URL, namespace, and certificate info as CLI args and use mTLS for connecting to server.
- hello_parallel_activity - Execute multiple activities at once.
- hello_query - Invoke queries on a workflow.
- hello_search_attributes - Start workflow with search attributes then change while running.
- hello_signal - Send signals to a workflow.
- activity_worker - Use Python activities from a workflow in another language.
- custom_converter - Use a custom payload converter to handle custom types.
- custom_decorator - Custom decorator to auto-heartbeat a long-running activity.
- encryption - Apply end-to-end encryption for all input/output.
- open_telemetry - Trace workflows with OpenTelemetry.
- sentry - Report errors to Sentry.
Running the tests requires poe
to be installed.
python -m pip install poethepoet
Once you have poe
installed you can run:
poe test