Temporal documentation decorator plugin for python
Project description
py-temporal-doc
Sample json structure
{
"callers": {
"Periodic": {
"data": ["Workflow1", "Workflow2"],
"docstring": "comment...",
"path": "project.directory.file.py"
},
"PostMethod": {
"workflows": ["Workflow3", "Workflow4"],
"docstring": "comment...",
"path": "project.directory.file.py"
}
},
"workflows": {
"Workflow1": {
"data": [
"ChildWorkflow1",
"Activity1",
"ChildWorkflow2",
"Activity2"
],
"docstring": "comment...",
"path": "project.directory.file.py"
},
"Workflow2": {
"sequence": [
"Activity2",
"Activity3"
],
"docstring": "comment...",
"path": "project.directory.file.py"
},
"Workflow3": {
"sequence": [
"Activity3",
"Activity4"
],
"docstring": "comment...",
"path": "project.directory.file.py"
},
"Workflow4": {
"sequence": [
"Activity4"
],
"docstring": "comment...",
"path": "project.directory.file.py"
},
"ChildWorkflow1": {
"sequence": [
"Activity1"
],
"docstring": "comment...",
"path": "project.directory.file.py"
},
"ChildWorkflow2": {
"sequence": [
"Activity2"
],
"docstring": "comment...",
"path": "project.directory.file.py"
}
},
"activities": {
"Activity1": {
"docstring": "comment...",
"path": "project.directory.file.py"
},
"Activity2": {
"docstring": "comment...",
"path": "project.directory.file.py"
},
"Activity3": {
"docstring": "comment...",
"path": "project.directory.file.py"
},
"Activity4": {
"docstring": "comment...",
"path": "project.directory.file.py"
}
}
}
Decorator Usage
@activity.defn
async def activity1() -> None:
pass
@activity.defn
async def activity2() -> None:
pass
@activity.defn
async def child_activity1() -> None:
pass
@activity.defn
async def child_activity2() -> None:
pass
@document.workflow_sequence(
child_activity1
)
@workflow.defn
class ChildWorkflow1:
@workflow.run
async def run(self) -> None:
pass
@document.workflow_sequence(
child_activity2
)
@workflow.defn
class ChildWorkflow2:
@workflow.run
async def run(self) -> None:
pass
@document.workflow_sequence( # Decorator to indicate the sequence of activities and child workflows inside a workflow
activity1,
ChildWorkflow1,
activity2,
ChildWorkflow2
)
@workflow.defn
class Workflow1:
@workflow.run
async def run(self) -> None:
pass
@document.workflow_sequence(
ChildWorkflow1,
ChildWorkflow2
)
@workflow.defn
class Workflow2:
@workflow.run
async def run(self) -> None:
pass
@document.workflow_caller( # Decorator to indicate the starting point on when the workflows are called
Workflow1,
)
def call_worklow1():
client = await temporal_client(namespace=TEMPORAL_NAMESPACE)
await temporal.execute_workflow(
Workflow1.run,
...
)
@document.workflow_caller(
Workflow2
)
def call_worklow2():
client = await temporal_client(namespace=TEMPORAL_NAMESPACE)
await temporal.execute_workflow(
Workflow2.run,
...
)
How to run
python main.py generate-json <path>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
py_temporal_doc-0.0.2.tar.gz
(11.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_temporal_doc-0.0.2.tar.gz.
File metadata
- Download URL: py_temporal_doc-0.0.2.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bcc7eea3c9cb4be9b61361b6cfe75034e269b186908cb52955d4e7403f8bcfc
|
|
| MD5 |
6b6a90ec1dd8fb353d2d1710ef376f66
|
|
| BLAKE2b-256 |
1b65cd580b91eec12fe2d1ffcf4690aecd0bd0b18195bdd76ad071141048b548
|
File details
Details for the file py_temporal_doc-0.0.2-py3-none-any.whl.
File metadata
- Download URL: py_temporal_doc-0.0.2-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0152432bc7c77c5a23999baf6be2292fb8465ab81487b3a16de2a9b5150a3047
|
|
| MD5 |
e9e847e08c71bddb8b36ad26b8229d92
|
|
| BLAKE2b-256 |
c8af503b194c242ed77a776f3e3297727d4a959169604cd933d03781b4d3b548
|