Loading cccli/command.py +8 −6 Original line number Diff line number Diff line Loading @@ -203,24 +203,24 @@ class RemoteCommand(OptionCommand): '''Return a set of needed remote functions''' raise NotImplementedError def print_objects(self, objectlist, ignore=None, index=False): def print_objects(self, objectlist, index=None): '''Trivial objectlist printing of tag''' if objectlist is None: return # get default index from local options _order = objectlist.get("order", None) for (i,o) in enumerate(objectlist["objects"]): if index: if index or (index is None and self.options.index): self.printer.out("[%s] "%i, nl="") self.print_tags(o, order=_order, ignore=ignore) self.print_tags(o, order=_order) def print_tags(self, taglist, order=None, ignore=None): def print_tags(self, taglist, order=None): '''Display a tag with tagdisplay settings''' ignore = () if ignore is None else ignore order = () if order is None else order # copy dict to show tl = taglist.copy() # remove ignore tags for tn in ignore: for tn in self.options.ignore: tl.pop(tn, None) # list to print pls = [] Loading Loading @@ -258,6 +258,8 @@ class TqlCommand(RemoteCommand): # tql printer option self.add_option("--print-tql", action="store_true", dest="tql_print", help="Print TQL before sending to server") self.add_option("-I", "--ignore-tag", action="append", dest="ignore", default=[], help="Don't display a tag") # set tagdisplay stuff self.tdr = self.cli.tagdisplay.resolve self.tdc = self.cli.tagdisplay.color Loading cccli/commands/list.py +29 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ class Command_list(TqlCommand): elif self.options.vertical: self.list_vertical(objs) else: self.print_objects(objs, index=self.options.index) self.print_objects(objs) def remote_functions(self): return set(("list",)) Loading @@ -53,6 +53,13 @@ class Command_list(TqlCommand): def list_align(self, objs): '''Listing line aligned''' term_height, term_width = self.printer.get_term_size() # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # get max size by tag tags = dict() for o in objs["objects"]: Loading Loading @@ -110,6 +117,13 @@ class Command_list(TqlCommand): def list_table(self, objs): '''Listing table style''' term_height, term_width = self.printer.get_term_size() # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # get max size by tag tags = dict() for o in objs["objects"]: Loading Loading @@ -167,6 +181,13 @@ class Command_list(TqlCommand): term_height, term_width = self.printer.get_term_size() # set margin for tags margin = 3 # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # build full tag order list: tags = set((t for o in objs['objects'] for t in o.keys())) order = [t for t in objs.get("order", []) if t in tags] Loading Loading @@ -204,6 +225,13 @@ class Command_list(TqlCommand): # 10 seem to be a good minimum value: if term_width < 10: raise cmdError("term width is too small") # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # calculate the size of the marge, the taken value is equal to the # maximum id length, capped to the 1/3 of the terminal width: list_id = [len(o['id']) for o in objs['objects'] if len(o['id']) < term_width / 3] Loading Loading
cccli/command.py +8 −6 Original line number Diff line number Diff line Loading @@ -203,24 +203,24 @@ class RemoteCommand(OptionCommand): '''Return a set of needed remote functions''' raise NotImplementedError def print_objects(self, objectlist, ignore=None, index=False): def print_objects(self, objectlist, index=None): '''Trivial objectlist printing of tag''' if objectlist is None: return # get default index from local options _order = objectlist.get("order", None) for (i,o) in enumerate(objectlist["objects"]): if index: if index or (index is None and self.options.index): self.printer.out("[%s] "%i, nl="") self.print_tags(o, order=_order, ignore=ignore) self.print_tags(o, order=_order) def print_tags(self, taglist, order=None, ignore=None): def print_tags(self, taglist, order=None): '''Display a tag with tagdisplay settings''' ignore = () if ignore is None else ignore order = () if order is None else order # copy dict to show tl = taglist.copy() # remove ignore tags for tn in ignore: for tn in self.options.ignore: tl.pop(tn, None) # list to print pls = [] Loading Loading @@ -258,6 +258,8 @@ class TqlCommand(RemoteCommand): # tql printer option self.add_option("--print-tql", action="store_true", dest="tql_print", help="Print TQL before sending to server") self.add_option("-I", "--ignore-tag", action="append", dest="ignore", default=[], help="Don't display a tag") # set tagdisplay stuff self.tdr = self.cli.tagdisplay.resolve self.tdc = self.cli.tagdisplay.color Loading
cccli/commands/list.py +29 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ class Command_list(TqlCommand): elif self.options.vertical: self.list_vertical(objs) else: self.print_objects(objs, index=self.options.index) self.print_objects(objs) def remote_functions(self): return set(("list",)) Loading @@ -53,6 +53,13 @@ class Command_list(TqlCommand): def list_align(self, objs): '''Listing line aligned''' term_height, term_width = self.printer.get_term_size() # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # get max size by tag tags = dict() for o in objs["objects"]: Loading Loading @@ -110,6 +117,13 @@ class Command_list(TqlCommand): def list_table(self, objs): '''Listing table style''' term_height, term_width = self.printer.get_term_size() # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # get max size by tag tags = dict() for o in objs["objects"]: Loading Loading @@ -167,6 +181,13 @@ class Command_list(TqlCommand): term_height, term_width = self.printer.get_term_size() # set margin for tags margin = 3 # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # build full tag order list: tags = set((t for o in objs['objects'] for t in o.keys())) order = [t for t in objs.get("order", []) if t in tags] Loading Loading @@ -204,6 +225,13 @@ class Command_list(TqlCommand): # 10 seem to be a good minimum value: if term_width < 10: raise cmdError("term width is too small") # remove ignored tags for tag in self.options.ignore: if tag in objs["order"]: objs["order"].remove(tag) for row in objs["objects"]: if tag in row: row.pop(tag) # calculate the size of the marge, the taken value is equal to the # maximum id length, capped to the 1/3 of the terminal width: list_id = [len(o['id']) for o in objs['objects'] if len(o['id']) < term_width / 3] Loading