def _show_table(self): td = TabularData(self.TABLE_COLUMNS, fill_value="-") conf = self.config.read()["machine"] if self.args.name: conf = {self.args.name: conf.get(self.args.name, {})} self._hide_private(conf) for machine, machine_config in conf.items(): machine_config["name"] = machine td.row_from_dict(machine_config) td.dropna("cols", "all") td.render()
def test_table_empty(capsys): td = TabularData(["Col1", "Col2", "Col3"]) assert dict(td.items()) == {"Col1": [], "Col2": [], "Col3": []} assert td.columns == [[], [], []] assert td.keys() == ["Col1", "Col2", "Col3"] assert list(td) == [] assert td.Col1 == [] assert td.Col2 == [] assert td.Col3 == [] assert td[1:] == [] with pytest.raises(IndexError): _ = td[1] assert len(td) == 0 assert td.shape == (3, 0) assert td.to_csv() == """Col1,Col2,Col3\r\n""" td.render() assert capsys.readouterr() == ("", "") td.render(rich_table=True) assert capsys.readouterr() == ("", "") td.render(markdown=True) assert capsys.readouterr() == ( "| Col1 | Col2 | Col3 |\n|--------|--------|--------|\n\n", "", ) td.rename("Col1", "Col11") assert td.keys() == ["Col11", "Col2", "Col3"] td.project("Col3", "Col11") assert td.keys() == ["Col3", "Col11"]
def run(self): if self.repo.machine is None: raise MachineDisabledError td = TabularData(self.INSTANCE_FIELD + self.SHOWN_FIELD, fill_value=self.FILL_VALUE) if self.args.name: all_status = list(self.repo.machine.status(self.args.name)) self._add_row(self.args.name, all_status, td) else: name_set = set() for level in self.repo.config.LEVELS: conf = self.repo.config.read(level)["machine"] name_set.update(conf.keys()) name_list = list(name_set) for name in sorted(name_list): all_status = list(self.repo.machine.status(name)) self._add_row(name, all_status, td) td.dropna("cols", "all") td.render() return 0