X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=sort_db.py;fp=sort_db.py;h=fce1ac4ba0e6cca48138afc3cc5efe1af6ca6105;hb=62ab6d5ee349ff88ed4995735711e1e3de904302;hp=4418973011c9b1444c2670fdf4e9eebf1efb8566;hpb=3849272541cfc8e42c43fa38b09d60d8c1012c5f;p=bookmarks_db.git diff --git a/sort_db.py b/sort_db.py index 4418973..fce1ac4 100755 --- a/sort_db.py +++ b/sort_db.py @@ -19,23 +19,16 @@ __license__ = "GNU GPL" import sys -class SortBy(object): +class SortKey(object): def __init__(self, sort_by): self.sort_by = sort_by - def __call__(self, o1, o2): + def __call__(self, o1): try: - attr1 = int(getattr(o1, self.sort_by)) + return int(getattr(o1, self.sort_by)) except (AttributeError, TypeError, ValueError): return 1 - try: - attr2 = int(getattr(o2, self.sort_by)) - except (AttributeError, TypeError, ValueError): - return -1 - - return cmp(attr1, attr2) - def walk_linear(linear, walker): for object in linear: @@ -91,8 +84,8 @@ def run(): linear = root_folder.linear del linear[0] # exclude root folder from sorting - by = SortBy(sort_by) - linear.sort(by) + sort_key = SortKey(sort_by) + linear.sort(key=sort_key) from writers import writer output_filename = "%s-sorted_by-%s" % (writer.filename, sort_by)