A Python DSL for AWS Step Functions
Project description
Steppy Graph - An alpha-quality DSL for Step Functions
Example Usage:
s = StateMachine()
res = Resource(name="foores", type=ResourceType.LAMBDA)
s.next(Task(resource=res, name="Kermit", comment='Foo'))
s.next(Wait(name="Waiting time", comment='Foo', seconds=2))
s.next(Pass(name="Pass the buck"))
s.next(Task(resource=res, name="Miss Piggy", comment='Foo'))
s.build()
print(s.to_json())
should produce output similar to:
{
"StartAt": "Kermit",
"States": {
"Kermit": {
"Comment": "Foo",
"End": false,
"Next": "Waiting time",
"Resource": "arn:aws:lambda:::function:foores",
"TimeoutSeconds": 600,
"Type": "Task"
},
"Miss Piggy": {
"Comment": "Foo",
"End": true,
"Resource": "arn:aws:lambda:::function:foores",
"TimeoutSeconds": 600,
"Type": "Task"
},
"Pass the buck": {
"Comment": "",
"End": false,
"Next": "Miss Piggy",
"Type": "Pass"
},
"Waiting time": {
"Comment": "Foo",
"End": false,
"Next": "Pass the buck",
"Seconds": 2,
"Type": "Wait"
}
},
"TimeoutSeconds": 600
}
Note - states added via the next() method in StateMachine are always "autoconnected", that is they have a boolean flag set which will automatically wire them up to the next state in the graph. Use add_state for states that you want to add without any auto-connection of the Next attribute.
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
steppygraph-0.1.6.tar.gz
(5.4 kB
view hashes)
Built Distribution
Close
Hashes for steppygraph-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a93e33553c76440d5d042cb7ba1ef2acec4b9b40af25a9109344c150d1bdc01 |
|
MD5 | c65ba139991ebde0c19ed9cd3e77a7a8 |
|
BLAKE2b-256 | 7bc5e549b3c1ae73961ec7f243be15efc7a14ec7a257402c5746dc0d4e05ff78 |