@@ -26,18 +26,19 @@ class ChangeKind(StrEnum):
2626 OTHER = "other"
2727
2828
29- class ChangeMeta :
30- def __init__ (self , date : datetime , kind : ChangeKind , title : str ):
29+ class ChangeEntry :
30+ def __init__ (self , date : datetime , kind : ChangeKind , title : str , contents : str ):
3131 self .date = date
3232 self .kind = kind
3333 self .title = title
34+ self .contents = contents
3435
3536
3637def get_changelog_entries (
3738 previous_version_commit : Commit ,
3839 repo : Repo ,
3940 changelog_sub_path : str ,
40- ) -> list [tuple [ ChangeKind , str ] ]:
41+ ) -> list [ChangeEntry ]:
4142 changelog = []
4243
4344 # Compare previous version commit with current working tree
@@ -51,34 +52,33 @@ def get_changelog_entries(
5152 for diff_item in diff_index .iter_change_type ("A" ):
5253 file_path = diff_item .b_path
5354
54- change_meta , contents = extract_changelog_data (repo .working_dir , file_path )
55-
56- changelog .append ((str (change_meta .kind ), contents ))
55+ change_entry = extract_changelog_entry (repo .working_dir , file_path )
56+ changelog .append (change_entry )
5757
5858 return changelog
5959
6060
61- def extract_changelog_data (working_dir : str , file_path : str ) -> ( ChangeMeta , str ) :
61+ def extract_changelog_entry (working_dir : str , file_path : str ) -> ChangeEntry :
6262 file_name = os .path .basename (file_path )
6363 date , kind = extract_date_and_kind_from_file_name (file_name )
6464
6565 abs_file_path = os .path .join (working_dir , file_path )
6666 with open (abs_file_path , "r" ) as file :
6767 file_content = file .read ()
6868
69- change_meta , contents = strip_changelog_entry_frontmatter (file_content )
69+ change_entry = extract_changelog_entry_from_contents (file_content )
7070
71- if change_meta .date != date :
71+ if change_entry .date != date :
7272 raise Exception (
73- f"{ file_name } - date in front matter { change_meta .date } does not match date extracted from file name { date } "
73+ f"{ file_name } - date in front matter { change_entry .date } does not match date extracted from file name { date } "
7474 )
7575
76- if change_meta .kind != kind :
76+ if change_entry .kind != kind :
7777 raise Exception (
78- f"{ file_name } - kind in front matter { change_meta .kind } does not match kind extracted from file name { kind } "
78+ f"{ file_name } - kind in front matter { change_entry .kind } does not match kind extracted from file name { kind } "
7979 )
8080
81- return change_meta , contents
81+ return change_entry
8282
8383
8484def extract_date_and_kind_from_file_name (file_name : str ) -> (datetime , ChangeKind ):
@@ -119,18 +119,15 @@ def get_change_kind(kind_str: str) -> ChangeKind:
119119 return ChangeKind .OTHER
120120
121121
122- def strip_changelog_entry_frontmatter (file_contents : str ) -> (ChangeMeta , str ):
123- """Strip the front matter from a changelog entry."""
122+ def extract_changelog_entry_from_contents (file_contents : str ) -> ChangeEntry :
124123 data = frontmatter .loads (file_contents )
125124
126125 kind = get_change_kind (str (data ["kind" ]))
127126 date = parse_change_date (str (data ["date" ]), FRONTMATTER_DATE_FORMAT )
128- meta = ChangeMeta (date = date , title = str (data ["title" ]), kind = kind )
129-
130127 ## Add newline to contents so the Markdown file also contains a newline at the end
131128 contents = data .content + "\n "
132129
133- return meta , contents
130+ return ChangeEntry ( date = date , title = str ( data [ "title" ]), kind = kind , contents = contents )
134131
135132
136133def get_changelog_filename (title : str , kind : ChangeKind , date : datetime ) -> str :
0 commit comments