Add menu
This commit is contained in:
29
menu/main.py
Normal file
29
menu/main.py
Normal file
@ -0,0 +1,29 @@
|
||||
import logging
|
||||
from rich.traceback import install
|
||||
from logging_utils import setup_logging
|
||||
from menu import Menu
|
||||
from hooks import setup_hooks, CircuitBreaker, RetryHandler
|
||||
from task import risky_task
|
||||
|
||||
install(show_locals=True, width=120)
|
||||
setup_logging()
|
||||
|
||||
logger = logging.getLogger("menu")
|
||||
|
||||
menu = Menu(title="Main Menu", never_confirm=True)
|
||||
setup_hooks(menu)
|
||||
breaker = CircuitBreaker(max_failures=2, reset_timeout=10)
|
||||
retry_handler = RetryHandler(max_retries=30, delay=2, backoff=2)
|
||||
menu.add_option(
|
||||
"1",
|
||||
"Run Risky Task",
|
||||
risky_task,
|
||||
before_hooks=[breaker.before_hook],
|
||||
after_hooks=[breaker.after_hook],
|
||||
error_hooks=[retry_handler.retry_on_error, breaker.error_hook],
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
result = menu.run_headless("1")
|
||||
logger.info(f"Headless execution returned: {result}")
|
Reference in New Issue
Block a user