pybragerone.models.menu_manager¶
Refactored menu system with clear separation of concerns.
New design: 1. MenuParser - parses raw JS and stores raw menu data 2. MenuProcessor - applies filtering, validation, i18n etc. 3. ProcessedMenu - final clean result with all transformations applied
Classes
|
High-level menu management with caching and convenience methods. |
|
Processes raw menu data with various filters and transformations. |
|
Raw menu data parsed from JavaScript asset. |
- class pybragerone.models.menu_manager.MenuManager(logger: Logger | None = None)[source]¶
Bases:
objectHigh-level menu management with caching and convenience methods.
- Parameters:
logger (logging.Logger | None)
- get_menu(device_menu: int, *, permissions: set[str] | None = None, debug_mode: bool = False)[source]¶
Get processed menu for device_menu.
- Parameters:
- Returns:
MenuResult– Processed MenuResult- Return type:
- class pybragerone.models.menu_manager.MenuProcessor(raw_menu: RawMenuData, logger: Logger | None = None)[source]¶
Bases:
objectProcesses raw menu data with various filters and transformations.
- Parameters:
raw_menu (RawMenuData)
logger (logging.Logger | None)
- get_clean_menu(*, filter_permissions: set[str] | None = None, include_invisible: bool = False, apply_i18n: bool = True, resolve_tokens: bool = True)[source]¶
Get processed menu with specified transformations.
- Parameters:
filter_permissions (
set[str] |None) – Set of user permissions to filter by. If None, no filtering.include_invisible (
bool) – If True, keeps routes that user can’t access (for debug)apply_i18n (
bool) – If True, applies internationalization transformationsresolve_tokens (
bool) – If True, resolves parameter tokens to clean format
- Returns:
MenuResult– Processed MenuResult with clean Pydantic models- Return type: