30 lines
801 B
Python
30 lines
801 B
Python
import asyncio
|
|
|
|
from falyx import Action, ActionGroup, ChainedAction
|
|
|
|
# Actions can be defined as synchronous functions
|
|
# Falyx will automatically convert them to async functions
|
|
def hello() -> None:
|
|
print("Hello, world!")
|
|
|
|
hello = Action(name="hello_action", action=hello)
|
|
|
|
# Actions can be run by themselves or as part of a command or pipeline
|
|
asyncio.run(hello())
|
|
|
|
# Actions are designed to be asynchronous first
|
|
async def goodbye() -> None:
|
|
print("Goodbye!")
|
|
|
|
goodbye = Action(name="goodbye_action", action=goodbye)
|
|
|
|
asyncio.run(goodbye())
|
|
|
|
# Actions can be run in parallel
|
|
group = ActionGroup(name="greeting_group", actions=[hello, goodbye])
|
|
asyncio.run(group())
|
|
|
|
# Actions can be run in a chain
|
|
chain = ChainedAction(name="greeting_chain", actions=[hello, goodbye])
|
|
asyncio.run(chain())
|