Skip to content

Commit 1f72c98

Browse files
authored
Added more context to the README sections (#225)
1 parent 7236159 commit 1f72c98

File tree

1 file changed

+78
-64
lines changed

1 file changed

+78
-64
lines changed

README.md

Lines changed: 78 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@ execute asynchronous, long-running business logic in a scalable and resilient wa
1010
"Temporal Python SDK" is the framework for authoring workflows and activities using the Python programming language.
1111

1212
Also see:
13-
14-
* [Code Samples](https://github.com/temporalio/samples-python)
15-
* [API Documentation](https://python.temporal.io)
16-
* [Application Development Guide](https://docs.temporal.io/application-development?lang=python)
13+
* [Application Development Guide](https://docs.temporal.io/application-development?lang=python) - Once you've tried our [Quick Start](#quick-start), check out our guide on how to use Temporal in your Python applications, including information around Temporal core concepts.
14+
* [Python Code Samples](https://github.com/temporalio/samples-python)
15+
* [API Documentation](https://python.temporal.io) - Complete Temporal Python SDK Package reference.
1716

1817
In addition to features common across all Temporal SDKs, the Python SDK also has the following interesting features:
1918

@@ -48,68 +47,71 @@ The Python SDK is under development. There are no compatibility guarantees at th
4847
- [Installation](#installation)
4948
- [Implementing a Workflow](#implementing-a-workflow)
5049
- [Running a Workflow](#running-a-workflow)
50+
- [Next Steps](#next-steps)
5151
- [Usage](#usage)
52-
- [Client](#client)
53-
- [Data Conversion](#data-conversion)
54-
- [Workers](#workers)
55-
- [Workflows](#workflows)
56-
- [Definition](#definition)
57-
- [Running](#running)
58-
- [Invoking Activities](#invoking-activities)
59-
- [Invoking Child Workflows](#invoking-child-workflows)
60-
- [Timers](#timers)
61-
- [Conditions](#conditions)
62-
- [Asyncio and Cancellation](#asyncio-and-cancellation)
63-
- [Workflow Utilities](#workflow-utilities)
64-
- [Exceptions](#exceptions)
65-
- [External Workflows](#external-workflows)
66-
- [Testing](#testing)
67-
- [Automatic Time Skipping](#automatic-time-skipping)
68-
- [Manual Time Skipping](#manual-time-skipping)
69-
- [Mocking Activities](#mocking-activities)
70-
- [Workflow Sandbox](#workflow-sandbox)
71-
- [How the Sandbox Works](#how-the-sandbox-works)
72-
- [Avoiding the Sandbox](#avoiding-the-sandbox)
73-
- [Customizing the Sandbox](#customizing-the-sandbox)
74-
- [Passthrough Modules](#passthrough-modules)
75-
- [Invalid Module Members](#invalid-module-members)
76-
- [Known Sandbox Issues](#known-sandbox-issues)
77-
- [Global Import/Builtins](#global-importbuiltins)
78-
- [Sandbox is not Secure](#sandbox-is-not-secure)
79-
- [Sandbox Performance](#sandbox-performance)
80-
- [Extending Restricted Classes](#extending-restricted-classes)
81-
- [Certain Standard Library Calls on Restricted Objects](#certain-standard-library-calls-on-restricted-objects)
82-
- [is_subclass of ABC-based Restricted Classes](#is_subclass-of-abc-based-restricted-classes)
83-
- [Compiled Pydantic Sometimes Using Wrong Types](#compiled-pydantic-sometimes-using-wrong-types)
84-
- [Activities](#activities)
85-
- [Definition](#definition-1)
86-
- [Types of Activities](#types-of-activities)
87-
- [Asynchronous Activities](#asynchronous-activities)
88-
- [Synchronous Activities](#synchronous-activities)
89-
- [Synchronous Multithreaded Activities](#synchronous-multithreaded-activities)
90-
- [Synchronous Multiprocess/Other Activities](#synchronous-multiprocessother-activities)
91-
- [Activity Context](#activity-context)
92-
- [Heartbeating and Cancellation](#heartbeating-and-cancellation)
93-
- [Worker Shutdown](#worker-shutdown)
94-
- [Testing](#testing-1)
95-
- [Workflow Replay](#workflow-replay)
96-
- [OpenTelemetry Support](#opentelemetry-support)
97-
- [Protobuf 3.x vs 4.x](#protobuf-3x-vs-4x)
52+
- [Client](#client)
53+
- [Data Conversion](#data-conversion)
54+
- [Workers](#workers)
55+
- [Workflows](#workflows)
56+
- [Definition](#definition)
57+
- [Running](#running)
58+
- [Invoking Activities](#invoking-activities)
59+
- [Invoking Child Workflows](#invoking-child-workflows)
60+
- [Timers](#timers)
61+
- [Conditions](#conditions)
62+
- [Asyncio and Cancellation](#asyncio-and-cancellation)
63+
- [Workflow Utilities](#workflow-utilities)
64+
- [Exceptions](#exceptions)
65+
- [External Workflows](#external-workflows)
66+
- [Testing](#testing)
67+
- [Automatic Time Skipping](#automatic-time-skipping)
68+
- [Manual Time Skipping](#manual-time-skipping)
69+
- [Mocking Activities](#mocking-activities)
70+
- [Workflow Sandbox](#workflow-sandbox)
71+
- [How the Sandbox Works](#how-the-sandbox-works)
72+
- [Avoiding the Sandbox](#avoiding-the-sandbox)
73+
- [Customizing the Sandbox](#customizing-the-sandbox)
74+
- [Passthrough Modules](#passthrough-modules)
75+
- [Invalid Module Members](#invalid-module-members)
76+
- [Known Sandbox Issues](#known-sandbox-issues)
77+
- [Global Import/Builtins](#global-importbuiltins)
78+
- [Sandbox is not Secure](#sandbox-is-not-secure)
79+
- [Sandbox Performance](#sandbox-performance)
80+
- [Extending Restricted Classes](#extending-restricted-classes)
81+
- [Certain Standard Library Calls on Restricted Objects](#certain-standard-library-calls-on-restricted-objects)
82+
- [is_subclass of ABC-based Restricted Classes](#is_subclass-of-abc-based-restricted-classes)
83+
- [Compiled Pydantic Sometimes Using Wrong Types](#compiled-pydantic-sometimes-using-wrong-types)
84+
- [Activities](#activities)
85+
- [Definition](#definition-1)
86+
- [Types of Activities](#types-of-activities)
87+
- [Asynchronous Activities](#asynchronous-activities)
88+
- [Synchronous Activities](#synchronous-activities)
89+
- [Synchronous Multithreaded Activities](#synchronous-multithreaded-activities)
90+
- [Synchronous Multiprocess/Other Activities](#synchronous-multiprocessother-activities)
91+
- [Activity Context](#activity-context)
92+
- [Heartbeating and Cancellation](#heartbeating-and-cancellation)
93+
- [Worker Shutdown](#worker-shutdown)
94+
- [Testing](#testing-1)
95+
- [Workflow Replay](#workflow-replay)
96+
- [OpenTelemetry Support](#opentelemetry-support)
97+
- [Protobuf 3.x vs 4.x](#protobuf-3x-vs-4x)
9898
- [Development](#development)
99-
- [Building](#building)
100-
- [Prepare](#prepare)
101-
- [Build](#build)
102-
- [Use](#use)
103-
- [Local SDK development environment](#local-sdk-development-environment)
104-
- [Testing](#testing-2)
105-
- [Proto Generation and Testing](#proto-generation-and-testing)
106-
- [Style](#style)
99+
- [Building](#building)
100+
- [Prepare](#prepare)
101+
- [Build](#build)
102+
- [Use](#use)
103+
- [Local SDK development environment](#local-sdk-development-environment)
104+
- [Testing](#testing-2)
105+
- [Proto Generation and Testing](#proto-generation-and-testing)
106+
- [Style](#style)
107107

108108
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
109109

110-
## Quick Start
110+
# Quick Start
111+
112+
We will guide you through the Temporal basics to create a "hello, world!" script on your machine. It is not intended as one of the ways to use Temporal, but in reality it is very simplified and decidedly not "the only way" to use Temporal. For more information, check out the docs references in "Next Steps" below the quick start.
111113

112-
### Installation
114+
## Installation
113115

114116
Install the `temporalio` package from [PyPI](https://pypi.org/project/temporalio).
115117

@@ -124,7 +126,7 @@ The SDK is now ready for use. To build from source, see "Building" near the end
124126

125127
**NOTE: This README is for the current branch and not necessarily what's released on `PyPI`.**
126128

127-
### Implementing a Workflow
129+
## Implementing a Workflow
128130

129131
Create the following script at `run_worker.py`:
130132

@@ -164,7 +166,7 @@ will run the worker:
164166

165167
python run_worker.py
166168

167-
### Running a Workflow
169+
## Running a Workflow
168170

169171
Create the following script at `run_workflow.py`:
170172

@@ -196,7 +198,19 @@ The output will be:
196198

197199
Result: Hello, my-name!
198200

199-
## Usage
201+
## Next Steps
202+
Temporal can be implemented in your code in many different ways, to suit your application's needs. The links below will give you much more information about how Temporal works with Python:
203+
204+
* [Code Samples](https://github.com/temporalio/samples-python) - If you want to start with some code, we have provided some pre-built samples.
205+
* [Application Development Guide](https://docs.temporal.io/application-development?lang=python) Our Python specific Developer's Guide will give you much more information on how to build with Temporal in your Python applications than our SDK README ever could (or should).
206+
* [API Documentation](https://python.temporal.io) - Full Temporal Python SDK package documentation
207+
208+
---
209+
210+
# Usage
211+
212+
From here, you will find reference documentation about specific pieces of the Temporal Python SDK that were built around Temporal concepts.
213+
*This section is not intended as a how-to guide* -- For more how-to oriented information, check out the links in the [Next Steps](#next-steps) section above.
200214

201215
### Client
202216

@@ -1066,7 +1080,7 @@ versions can cause issues with the sandbox due to global state sharing. Temporal
10661080
protobuf 4.x library unless you absolutely cannot at which point some proto libraries may have to be marked as
10671081
[Passthrough Modules](#passthrough-modules).
10681082

1069-
## Development
1083+
# Development
10701084

10711085
The Python SDK is built to work with Python 3.7 and newer. It is built using
10721086
[SDK Core](https://github.com/temporalio/sdk-core/) which is written in Rust.

0 commit comments

Comments
 (0)