71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import asyncio
 | |
| from uuid import uuid4
 | |
| 
 | |
| from falyx import Falyx
 | |
| from falyx.action import SelectionAction
 | |
| from falyx.selection import SelectionOption
 | |
| from falyx.signals import CancelSignal
 | |
| 
 | |
| selections = {
 | |
|     "1": SelectionOption(
 | |
|         description="Production", value="3bc2616e-3696-11f0-a139-089204eb86ac"
 | |
|     ),
 | |
|     "2": SelectionOption(
 | |
|         description="Staging", value="42f2cd84-3696-11f0-a139-089204eb86ac"
 | |
|     ),
 | |
| }
 | |
| 
 | |
| 
 | |
| select = SelectionAction(
 | |
|     name="Select Deployment",
 | |
|     selections=selections,
 | |
|     title="Select a Deployment",
 | |
|     columns=2,
 | |
|     prompt_message="> ",
 | |
|     return_type="value",
 | |
|     show_table=True,
 | |
| )
 | |
| 
 | |
| list_selections = [uuid4() for _ in range(10)]
 | |
| 
 | |
| list_select = SelectionAction(
 | |
|     name="Select Deployments",
 | |
|     selections=list_selections,
 | |
|     title="Select Deployments",
 | |
|     columns=3,
 | |
|     prompt_message="Select 3 Deployments > ",
 | |
|     return_type="value",
 | |
|     show_table=True,
 | |
|     number_selections=3,
 | |
| )
 | |
| 
 | |
| 
 | |
| flx = Falyx()
 | |
| 
 | |
| flx.add_command(
 | |
|     key="S",
 | |
|     description="Select a deployment",
 | |
|     action=select,
 | |
|     help_text="Select a deployment from the list",
 | |
| )
 | |
| flx.add_command(
 | |
|     key="L",
 | |
|     description="Select deployments",
 | |
|     action=list_select,
 | |
|     help_text="Select multiple deployments from the list",
 | |
| )
 | |
| 
 | |
| if __name__ == "__main__":
 | |
| 
 | |
|     try:
 | |
|         print(asyncio.run(select()))
 | |
|     except CancelSignal:
 | |
|         print("Selection was cancelled.")
 | |
| 
 | |
|     try:
 | |
|         print(asyncio.run(list_select()))
 | |
|     except CancelSignal:
 | |
|         print("Selection was cancelled.")
 | |
| 
 | |
|     asyncio.run(flx.run())
 |