diff --git a/src/app_model/registries/_menus_reg.py b/src/app_model/registries/_menus_reg.py index 6da4dc2..3386615 100644 --- a/src/app_model/registries/_menus_reg.py +++ b/src/app_model/registries/_menus_reg.py @@ -5,6 +5,7 @@ Callable, Dict, Final, + Iterable, Iterator, List, Optional, @@ -28,7 +29,7 @@ class MenusRegistry: menus_changed = Signal(set) def __init__(self) -> None: - self._menu_items: Dict[str, List[MenuOrSubmenu]] = {} + self._menu_items: Dict[MenuId, List[MenuOrSubmenu]] = {} def append_menu_items( self, items: Sequence[Tuple[MenuId, MenuOrSubmenu]] @@ -73,13 +74,13 @@ def _dispose() -> None: def __iter__( self, - ) -> Iterator[Tuple[str, List[MenuOrSubmenu]]]: + ) -> Iterator[Tuple[MenuId, Iterable[MenuOrSubmenu]]]: yield from self._menu_items.items() def __contains__(self, id: object) -> bool: return id in self._menu_items - def get_menu(self, menu_id: str) -> List[MenuOrSubmenu]: + def get_menu(self, menu_id: MenuId) -> List[MenuOrSubmenu]: """Return menu items for `menu_id`.""" # using method rather than __getitem__ so that subclasses can use arguments return self._menu_items[menu_id] @@ -117,7 +118,7 @@ def _render(self) -> List[str]: lines.append("") return lines - def iter_menu_groups(self, menu_id: str) -> Iterator[List[MenuOrSubmenu]]: + def iter_menu_groups(self, menu_id: MenuId) -> Iterator[List[MenuOrSubmenu]]: """Iterate over menu groups for `menu_id`. Groups are broken into sections (lists of menu or submenu items) based on