39 lines
		
	
	
		
			959 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			959 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import asyncio
 | |
| 
 | |
| from falyx import Falyx
 | |
| from falyx.action import Action, ActionGroup
 | |
| 
 | |
| 
 | |
| # Define a shared async function
 | |
| async def say_hello(name: str, excited: bool = False):
 | |
|     if excited:
 | |
|         print(f"Hello, {name}!!!")
 | |
|     else:
 | |
|         print(f"Hello, {name}.")
 | |
| 
 | |
| 
 | |
| # Wrap the same callable in multiple Actions
 | |
| action1 = Action("say_hello_1", action=say_hello)
 | |
| action2 = Action("say_hello_2", action=say_hello)
 | |
| action3 = Action("say_hello_3", action=say_hello)
 | |
| 
 | |
| # Combine into an ActionGroup
 | |
| group = ActionGroup(name="greet_group", actions=[action1, action2, action3])
 | |
| 
 | |
| flx = Falyx("Test Group")
 | |
| flx.add_command(
 | |
|     key="G",
 | |
|     description="Greet someone with multiple variations.",
 | |
|     aliases=["greet", "hello"],
 | |
|     action=group,
 | |
|     arg_metadata={
 | |
|         "name": {
 | |
|             "help": "The name of the person to greet.",
 | |
|         },
 | |
|         "excited": {
 | |
|             "help": "Whether to greet excitedly.",
 | |
|         },
 | |
|     },
 | |
| )
 | |
| asyncio.run(flx.run())
 |