in tools/changelog.py [0:0]
def load_changelog(filename):
'Return structured data from changelog file.'
releases = {}
links = None
name = None
try:
with open(filename) as f:
for l in f.readlines():
l = l.strip()
if l.startswith(LINK_MARKER):
links = {}
continue
if l.startswith('## '):
if l[4:].startswith('Unreleased'):
name, date = 'Unreleased', ''
else:
name, _, date = l[3:].partition(' - ')
name = _strip_relname(name)
if not date.strip():
date = datetime.date.today()
else:
date = datetime.datetime.strptime(date.split()[0],
'%Y-%m-%d').date()
releases[name] = FileRelease(name, date, [l])
elif name and links is None:
releases[name].content.append(l)
elif l.startswith('['):
name, _, _ = l.partition(':')
links[_strip_relname(name)] = l
except (IOError, OSError) as e:
raise Error(f'Cannot open {filename}: {e.args[0]}')
return releases, links