def make_view_menu(): """ Submenu consisting of... [X] <Page 1> [ ] <Page 2> [ ] etc... Color (Submenu) """ view_menu = nyx.menu.item.Submenu('View') control = nyx.controller.get_controller() if control.get_page_count() > 0: page_group = nyx.menu.item.SelectionGroup(control.set_page, control.get_page()) for i in range(control.get_page_count()): page_panels = control.get_display_panels(page_number = i, include_sticky = False) label = ' / '.join([str_tools._to_camel_case(panel.get_name()) for panel in page_panels]) view_menu.add(nyx.menu.item.SelectionMenuItem(label, page_group, i)) if ui_tools.is_color_supported(): color_menu = nyx.menu.item.Submenu('Color') color_group = nyx.menu.item.SelectionGroup(ui_tools.set_color_override, ui_tools.get_color_override()) color_menu.add(nyx.menu.item.SelectionMenuItem('All', color_group, None)) for color in ui_tools.COLOR_LIST: color_menu.add(nyx.menu.item.SelectionMenuItem(str_tools._to_camel_case(color), color_group, color)) view_menu.add(color_menu) return view_menu
def make_view_menu(): """ Submenu consisting of... [X] <Page 1> [ ] <Page 2> [ ] etc... Color (Submenu) """ view_menu = Submenu('View') control = nyx.controller.get_controller() if control.get_page_count() > 0: page_group = SelectionGroup(control.set_page, control.get_page()) for i in range(control.get_page_count()): page_panels = control.get_display_panels(page_number = i) label = ' / '.join([type(panel).__name__.replace('Panel', '') for panel in page_panels]) view_menu.add(SelectionMenuItem(label, page_group, i)) if nyx.curses.is_color_supported(): color_menu = Submenu('Color') color_group = SelectionGroup(nyx.curses.set_color_override, nyx.curses.get_color_override()) color_menu.add(SelectionMenuItem('All', color_group, None)) for color in nyx.curses.Color: color_menu.add(SelectionMenuItem(str_tools._to_camel_case(color), color_group, color)) view_menu.add(color_menu) return view_menu
def make_graph_menu(graph_panel): """ Submenu for the graph panel, consisting of... [X] <Stat 1> [ ] <Stat 2> [ ] <Stat 2> Resize... Interval (Submenu) Bounds (Submenu) Arguments: graph_panel - instance of the graph panel """ graph_menu = Submenu('Graph') # stats options stat_group = SelectionGroup(functools.partial(setattr, graph_panel, 'displayed_stat'), graph_panel.displayed_stat) available_stats = graph_panel.stat_options() available_stats.sort() for stat_key in ['None'] + available_stats: label = str_tools._to_camel_case(stat_key, divider = ' ') stat_key = None if stat_key == 'None' else stat_key graph_menu.add(SelectionMenuItem(label, stat_group, stat_key)) # resizing option graph_menu.add(MenuItem('Resize...', graph_panel.resize_graph)) # interval submenu interval_menu = Submenu('Interval') interval_group = SelectionGroup(functools.partial(setattr, graph_panel, 'update_interval'), graph_panel.update_interval) for interval in nyx.panel.graph.Interval: interval_menu.add(SelectionMenuItem(interval, interval_group, interval)) graph_menu.add(interval_menu) # bounds submenu bounds_menu = Submenu('Bounds') bounds_group = SelectionGroup(functools.partial(setattr, graph_panel, 'bounds_type'), graph_panel.bounds_type) for bounds_type in nyx.panel.graph.Bounds: bounds_menu.add(SelectionMenuItem(bounds_type, bounds_group, bounds_type)) graph_menu.add(bounds_menu) return graph_menu
def test_to_camel_case(self): """ Checks the _to_camel_case() function. """ # test the pydoc example self.assertEquals('I Like Pepperjack!', str_tools._to_camel_case('I_LIKE_PEPPERJACK!')) # check a few edge cases self.assertEquals('', str_tools._to_camel_case('')) self.assertEquals('Hello', str_tools._to_camel_case('hello')) self.assertEquals('Hello', str_tools._to_camel_case('HELLO')) self.assertEquals('Hello World', str_tools._to_camel_case('hello__world')) self.assertEquals('Hello\tworld', str_tools._to_camel_case('hello\tWORLD')) self.assertEquals('Hello\t\tWorld', str_tools._to_camel_case('hello__world', '_', '\t'))
def test_to_camel_case(self): """ Checks the _to_camel_case() function. """ # test the pydoc example self.assertEqual('I Like Pepperjack!', str_tools._to_camel_case('I_LIKE_PEPPERJACK!')) # check a few edge cases self.assertEqual('', str_tools._to_camel_case('')) self.assertEqual('Hello', str_tools._to_camel_case('hello')) self.assertEqual('Hello', str_tools._to_camel_case('HELLO')) self.assertEqual('Hello World', str_tools._to_camel_case('hello__world')) self.assertEqual('Hello\tworld', str_tools._to_camel_case('hello\tWORLD')) self.assertEqual('Hello\t\tWorld', str_tools._to_camel_case('hello__world', '_', '\t'))
def test_to_camel_case(self): """ Checks the _to_camel_case() function. """ # test the pydoc example self.assertEquals("I Like Pepperjack!", str_tools._to_camel_case("I_LIKE_PEPPERJACK!")) # check a few edge cases self.assertEquals("", str_tools._to_camel_case("")) self.assertEquals("Hello", str_tools._to_camel_case("hello")) self.assertEquals("Hello", str_tools._to_camel_case("HELLO")) self.assertEquals("Hello World", str_tools._to_camel_case("hello__world")) self.assertEquals("Hello\tworld", str_tools._to_camel_case("hello\tWORLD")) self.assertEquals("Hello\t\tWorld", str_tools._to_camel_case("hello__world", "_", "\t"))
def __init__(self, *args): from stem.util.str_tools import _to_camel_case # ordered listings of our keys and values keys, values = [], [] for entry in args: if isinstance(entry, (bytes, str_type)): key, val = entry, _to_camel_case(entry) elif isinstance(entry, tuple) and len(entry) == 2: key, val = entry else: raise ValueError('Unrecognized input: %s' % args) keys.append(key) values.append(val) setattr(self, key, val) self._keys = tuple(keys) self._values = tuple(values)
def __init__(self, *args: Union[str, Tuple[str, Any]]) -> None: from stem.util.str_tools import _to_camel_case # ordered listings of our keys and values keys = [] # type: List[str] values = [] # type: List[Any] for entry in args: if isinstance(entry, str): key, val = entry, _to_camel_case(entry) elif isinstance(entry, tuple) and len(entry) == 2: key, val = entry else: raise ValueError('Unrecognized input: %s' % args) keys.append(key) values.append(val) setattr(self, key, val) self._keys = tuple(keys) self._values = tuple(values)
def submenu(self): """ Submenu consisting of... [X] <Stat 1> [ ] <Stat 2> [ ] <Stat 2> Resize... Interval (Submenu) Bounds (Submenu) """ stat_group = RadioGroup(functools.partial(setattr, self, '_displayed_stat'), self._displayed_stat) interval_group = RadioGroup(functools.partial(setattr, self, '_update_interval'), self._update_interval) bounds_group = RadioGroup(functools.partial(setattr, self, '_bounds_type'), self._bounds_type) return Submenu('Graph', [ RadioMenuItem('None', stat_group, None), [RadioMenuItem(str_tools._to_camel_case(opt, divider = ' '), stat_group, opt) for opt in sorted(self.stat_options())], MenuItem('Resize...', self._resize_graph), Submenu('Interval', [RadioMenuItem(opt, interval_group, opt) for opt in Interval]), Submenu('Bounds', [RadioMenuItem(opt, bounds_group, opt) for opt in Bounds]), ])
def _view_menu(): """ Submenu consisting of... [X] <Page 1> [ ] <Page 2> [ ] etc... Color (Submenu) """ interface = nyx_interface() view_menu = Submenu('View') page_group = RadioGroup(interface.set_page, interface.get_page()) for i in range(interface.page_count()): page_panels = interface.page_panels(page_number=i)[1:] label = ' / '.join([ type(panel).__name__.replace('Panel', '') for panel in page_panels ]) view_menu.add(RadioMenuItem(label, page_group, i)) if nyx.curses.is_color_supported(): color_group = RadioGroup(nyx.curses.set_color_override, nyx.curses.get_color_override()) view_menu.add( Submenu('Color', [ RadioMenuItem('All', color_group, None), [ RadioMenuItem(str_tools._to_camel_case(opt), color_group, opt) for opt in nyx.curses.Color ], ])) return view_menu