# HG changeset patch # User Oleksandr Gavenko # Date 1472297878 -10800 # Node ID a70ab6a33bfae753b5ac46b3c16182fe5f294479 # Parent c9f0064d866116c0025be33b8f87929573370c20 Order irregular verbs, noun plural form and adverb/adjective comparison form in headword list. diff -r c9f0064d8661 -r a70ab6a33bfa py/gadict_c5.py --- a/py/gadict_c5.py Sat Aug 27 14:32:25 2016 +0300 +++ b/py/gadict_c5.py Sat Aug 27 14:37:58 2016 +0300 @@ -64,13 +64,39 @@ FOUT.write(PRELUDE.about) FOUT.write("\n") + +def attr_key(item): + (word, (pron, attrs)) = item + if not attrs: + return "zzz" + best_vattr = None + for attr in attrs: + if attr in ["v1", "v2", "v3"]: + if not best_vattr or (best_vattr and best_vattr > attr): + best_vattr = attr + if best_vattr: + return best_vattr + for attr in attrs: # single/plural + if attr in ["s"]: + return attr + for attr in attrs: # comparative/superlative + if attr in ["comp"]: + return attr + for attr in attrs: # Am/Br/Au + if attr in ["Am"]: + return attr + return "zzz" + + for idx in range(1, len(DOM)): article = DOM[idx] FOUT.write("_____\n\n") title = "; ".join(article[0].keys()) FOUT.write(title) FOUT.write("\n\n") - for (word, (pron, attrs)) in article[0].items(): + defs = article[0].items() + defs = sorted(defs, key = attr_key) + for (word, (pron, attrs)) in defs: FOUT.write(" ") FOUT.write(word) if pron is not None: