# Python interface to SWF
Typed Python interface to AWS Simple Workflow service
* Type annotations
* Explicit exceptions
* Execution state construction
* Consistent method/attribute/parameter names (see below)
* Consistent model struture
* Automatic flattening of paged-list responses
* next-page calls are run concurrently and on-demand
* Better execution filtering
### See also
* [py-swf](https://pypi.org/project/py-swf/) - typed and object-oriented interface layer
* [mypy-boto3-swf](https://pypi.org/project/mypy-boto3-swf/) - type-annotated layer
* [python-simple-workflow](https://pypi.org/project/simple-workflow/) - higher-level
interface layer
## Installation
```shell
pip install swf-typed
```
## Usage
See [the full documentation](https://python-swf-typed.readthedocs.io/).
### Example
```python
import swf_typed
execution = swf_typed.ExecutionId(id="spam", run_id="abcd1234")
execution_details = swf_typed.describe_execution(execution, domain="eggs")
print(execution_details.configuration)
events = swf_typed.get_execution_history(execution, domain="eggs")
state = swf_typed.build_state(events)
for task in state.tasks:
print(task.status)
```
### Terminology
This library uses a slight terminology change from SWF SDKs/APIs:
* Workflow type -> workflow
* Workflow execution -> execution
* Workflow execution `workflowId` -> execution ID
* Activity type -> activity
* Activity task -> task
* Activity worker -> worker
* Activity task `activityId` -> task ID
Raw data
{
"_id": null,
"home_page": "https://github.com/EpicWink/python-swf-typed",
"name": "swf-typed",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.7",
"maintainer_email": "",
"keywords": "swf,typed",
"author": "Laurie",
"author_email": "laurie_opperman@hotmail.com",
"download_url": "https://files.pythonhosted.org/packages/27/66/b0070242c86aa2a67a9d8da62bf2ecb4787042a59554e1e72bb5059f0434/swf-typed-1.1.1.tar.gz",
"platform": null,
"description": "# Python interface to SWF\nTyped Python interface to AWS Simple Workflow service\n\n* Type annotations\n* Explicit exceptions\n* Execution state construction\n* Consistent method/attribute/parameter names (see below)\n* Consistent model struture\n* Automatic flattening of paged-list responses\n * next-page calls are run concurrently and on-demand\n* Better execution filtering\n\n### See also\n* [py-swf](https://pypi.org/project/py-swf/) - typed and object-oriented interface layer\n* [mypy-boto3-swf](https://pypi.org/project/mypy-boto3-swf/) - type-annotated layer\n* [python-simple-workflow](https://pypi.org/project/simple-workflow/) - higher-level\n interface layer\n\n## Installation\n```shell\npip install swf-typed\n```\n\n## Usage\nSee [the full documentation](https://python-swf-typed.readthedocs.io/).\n\n### Example\n```python\nimport swf_typed\n\nexecution = swf_typed.ExecutionId(id=\"spam\", run_id=\"abcd1234\")\nexecution_details = swf_typed.describe_execution(execution, domain=\"eggs\")\nprint(execution_details.configuration)\n\nevents = swf_typed.get_execution_history(execution, domain=\"eggs\")\nstate = swf_typed.build_state(events)\nfor task in state.tasks:\n print(task.status)\n```\n\n### Terminology\nThis library uses a slight terminology change from SWF SDKs/APIs:\n* Workflow type -> workflow\n* Workflow execution -> execution\n* Workflow execution `workflowId` -> execution ID\n* Activity type -> activity\n* Activity task -> task\n* Activity worker -> worker\n* Activity task `activityId` -> task ID\n",
"bugtrack_url": null,
"license": "\"MIT\"",
"summary": "Typed Python interface to AWS Simple Workflow service",
"version": "1.1.1",
"project_urls": {
"Changelog": "https://github.com/EpicWink/python-swf-typed/releases",
"Documentation": "https://python-swf-typed.readthedocs.io/",
"Homepage": "https://github.com/EpicWink/python-swf-typed",
"Source": "https://github.com/EpicWink/python-swf-typed",
"Tracker": "https://github.com/EpicWink/python-swf-typed/issues"
},
"split_keywords": [
"swf",
"typed"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dd621cbd6c58da12507e68e7ccde2ea97445d6f705babade1c557236b466fc7d",
"md5": "05c3bd44cd4e33c87d2bf55a61cab578",
"sha256": "24db35d8bbde65c1b4595fa536c796c11912ac06dc43bd62f7dee4ce670e5290"
},
"downloads": -1,
"filename": "swf_typed-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "05c3bd44cd4e33c87d2bf55a61cab578",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.7",
"size": 31931,
"upload_time": "2022-10-26T04:10:16",
"upload_time_iso_8601": "2022-10-26T04:10:16.522483Z",
"url": "https://files.pythonhosted.org/packages/dd/62/1cbd6c58da12507e68e7ccde2ea97445d6f705babade1c557236b466fc7d/swf_typed-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2766b0070242c86aa2a67a9d8da62bf2ecb4787042a59554e1e72bb5059f0434",
"md5": "10abd4bad248b5231fc46817170e7be4",
"sha256": "9e3ec6c9b009a34eba8b4218d70adbd2b2b877bd96167685fbb921b56d4802c7"
},
"downloads": -1,
"filename": "swf-typed-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "10abd4bad248b5231fc46817170e7be4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.7",
"size": 32364,
"upload_time": "2022-10-26T04:10:17",
"upload_time_iso_8601": "2022-10-26T04:10:17.628799Z",
"url": "https://files.pythonhosted.org/packages/27/66/b0070242c86aa2a67a9d8da62bf2ecb4787042a59554e1e72bb5059f0434/swf-typed-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-10-26 04:10:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "EpicWink",
"github_project": "python-swf-typed",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "swf-typed"
}