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 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
def test_dropna_invalid_axis(): td = TabularData(["col-1", "col-2", "col-3"]) with pytest.raises(ValueError, match="Invalid 'axis' value foo."): td.dropna("foo")
def test_dropna(axis, how, data, expected): td = TabularData(["col-1", "col-2", "col-3"]) td.extend(data) td.dropna(axis, how) assert list(td) == expected
def test_dropna_subset(axis, expected): td = TabularData(["col-1", "col-2", "col-3"]) td.extend([["foo"], ["foo", "bar"], ["foo", "bar", "foobar"]]) td.dropna(axis, subset=["col-1", "col-2"]) assert list(td) == expected