From cef9d124bb86a441638ca23344c0196b29663b4c Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 1 Jun 2012 14:50:21 +0200 Subject: [PATCH] sfi show shows the record sorted by keyname --- sfa/client/sfi.py | 4 ++-- sfa/storage/record.py | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index a221b4b4..6b0934d0 100644 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -98,7 +98,7 @@ def display_records(recordList, dump=False): def display_record(record, dump=False): if dump: - record.dump() + record.dump(sort=True) else: info = record.getdict() print "%s (%s)" % (info['hrn'], info['type']) @@ -823,7 +823,7 @@ or version information about sfi itself self.logger.error("No record of type %s"% options.type) records = [ Record(dict=record_dict) for record_dict in record_dicts ] for record in records: - if (options.format == "text"): record.dump() + if (options.format == "text"): record.dump(sort=True) else: print record.save_as_xml() if options.file: save_records_to_file(options.file, record_dicts, options.fileformat) diff --git a/sfa/storage/record.py b/sfa/storage/record.py index ad1c8c76..f3aa8ee9 100644 --- a/sfa/storage/record.py +++ b/sfa/storage/record.py @@ -62,13 +62,13 @@ class Record: xml_record.parse_dict (input_dict) return xml_record.toxml() - def dump(self, format=None, dump_parents=False): + def dump(self, format=None, dump_parents=False, sort=False): if not format: format = 'text' else: format = format.lower() if format == 'text': - self.dump_text(dump_parents) + self.dump_text(dump_parents,sort=sort) elif format == 'xml': print self.save_as_xml() elif format == 'simple': @@ -76,11 +76,13 @@ class Record: else: raise Exception, "Invalid format %s" % format - def dump_text(self, dump_parents=False): - print "".join(['=' for i in range(40)]) + def dump_text(self, dump_parents=False, sort=False): + print 40*'=' print "RECORD" # print remaining fields - for attrib_name in self.fields(): + fields=self.fields() + if sort: fields.sort() + for attrib_name in fields: attrib = getattr(self, attrib_name) # skip internals if attrib_name.startswith('_'): continue -- 2.43.0