Use OrderedDict instead of reinventing it
diff --git a/scripts/assemble_changelog.py b/scripts/assemble_changelog.py
index b9a647f..3d82c11 100755
--- a/scripts/assemble_changelog.py
+++ b/scripts/assemble_changelog.py
@@ -21,6 +21,7 @@
# This file is part of Mbed Crypto (https://tls.mbed.org)
import argparse
+from collections import OrderedDict
import glob
import os
import re
@@ -78,16 +79,6 @@
level = re.match(self._title_re, line).end()
return level, line[level:].strip()
- def add_sections(self, *sections):
- """Add the specified section titles to the list of known sections.
-
- Sections will be printed back out in the order they were added.
- """
- for section in sections:
- if section not in self.section_content:
- self.section_list.append(section)
- self.section_content[section] = []
-
def __init__(self, input_stream):
"""Create a changelog object.
@@ -96,9 +87,9 @@
can be any generator returning the lines to read.
"""
self.header = []
- self.section_list = []
- self.section_content = {}
- self.add_sections(*STANDARD_SECTIONS)
+ self.section_content = OrderedDict()
+ for section in STANDARD_SECTIONS:
+ self.section_content[section] = []
self.trailer = []
self.read_main_file(input_stream)
@@ -121,7 +112,7 @@
self.trailer.append(line)
elif level == 3 and level_2_seen == 1:
current_section = content
- self.add_sections(current_section)
+ self.section_content.setdefault(content, [])
elif level_2_seen == 1 and current_section != None:
if line.strip():
self.section_content[current_section].append(line)
@@ -169,8 +160,7 @@
with open(filename, 'wb') as out:
for line in self.header:
out.write(line)
- for section in self.section_list:
- lines = self.section_content[section]
+ for section, lines in self.section_content.items():
while lines and not lines[0].strip():
del lines[0]
while lines and not lines[-1].strip():