Browse Source

sorting, for more reproducible output

... and less bogus commits
boyska 2 years ago
parent
commit
82c9fdafef
1 changed files with 8 additions and 6 deletions
  1. 8 6
      ics2mdwn.py

+ 8 - 6
ics2mdwn.py

@@ -90,7 +90,8 @@ class HugoConverter(Converter):
     """
 
     def output_markdown(self):
-        for uid, talk in self.talks.items():
+        for uid in sorted(self.talks):
+            talk = self.talks[uid]
             fname = "%s.md" % uid
             fpath = self.args.out_md_dir / fname
             self.changed_files.append(fpath)
@@ -112,7 +113,8 @@ class HugoConverter(Converter):
 
     def output_schedule(self):
         days = {}
-        for uid, talk in self.talks.items():
+        for uid in sorted(self.talks):
+            talk = self.talks[uid]
             # TODO: talk just after midnight should belong to the preceding day
             dt = talk.decoded("dtstart")
             after_midnight = dt.time().hour < self.args.night_threshold
@@ -142,13 +144,13 @@ class HugoConverter(Converter):
             days[day]["rooms"][room]["slots"].append(dict(slot=slot, talk=uid))
 
         # convert from our intermediate format to the correct one
-        for d in days:
+        for d in sorted(days):
             # vanity: let's sort
-            for room in days[d]["rooms"]:
+            for room in sorted(days[d]["rooms"]):
                 days[d]["rooms"][room]["slots"].sort(key=lambda x: x["slot"])
             # convert dict to list
-            days[d]["rooms"] = list(days[d]["rooms"].values())
-        out = {"schedule": list(days.values())}
+            days[d]["rooms"] = [days[d]['rooms'][k] for k in sorted(days[d]["rooms"])]
+        out = {"schedule": [days[k] for k in sorted(days)]}
 
         # dump, finally
         with open(str(self.args.out_schedule), "w") as buf: