Authored by: Grub4K
This commit is contained in:
Simon Sawicki 2023-03-03 22:39:09 +01:00 committed by GitHub
parent bfc861a91e
commit 9344964281
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -127,7 +127,9 @@ class Changelog:
def _format_group(self, group): def _format_group(self, group):
sorted_group = sorted(group, key=CommitInfo.key) sorted_group = sorted(group, key=CommitInfo.key)
detail_groups = itertools.groupby(sorted_group, lambda item: (item.details or '').lower()) detail_groups = itertools.groupby(sorted_group, lambda item: (item.details or '').lower())
for details, items in detail_groups: for _, items in detail_groups:
items = list(items)
details = items[0].details
if not details: if not details:
indent = '' indent = ''
else: else:
@ -137,15 +139,15 @@ class Changelog:
if details == 'cleanup': if details == 'cleanup':
items, cleanup_misc_items = self._filter_cleanup_misc_items(items) items, cleanup_misc_items = self._filter_cleanup_misc_items(items)
sub_detail_groups = itertools.groupby(items, lambda item: item.sub_details) sub_detail_groups = itertools.groupby(items, lambda item: tuple(map(str.lower, item.sub_details)))
for sub_details, entries in sub_detail_groups: for sub_details, entries in sub_detail_groups:
if not sub_details: if not sub_details:
for entry in entries: for entry in entries:
yield f'{indent}- {self.format_single_change(entry)}' yield f'{indent}- {self.format_single_change(entry)}'
continue continue
prefix = f'{indent}- {", ".join(sub_details)}'
entries = list(entries) entries = list(entries)
prefix = f'{indent}- {", ".join(entries[0].sub_details)}'
if len(entries) == 1: if len(entries) == 1:
yield f'{prefix}: {self.format_single_change(entries[0])}' yield f'{prefix}: {self.format_single_change(entries[0])}'
continue continue
@ -232,12 +234,12 @@ class CommitRange:
(?:/(?P<details>[^\]:,]+))? (?:/(?P<details>[^\]:,]+))?
(?:[:,](?P<sub_details>[^\]]+))? (?:[:,](?P<sub_details>[^\]]+))?
\]\ )? \]\ )?
(?:`?(?P<sub_details_alt>[^:`]+)`?: )? (?:(?P<sub_details_alt>`?[^:`]+`?): )?
(?P<message>.+?) (?P<message>.+?)
(?:\ \((?P<issues>\#\d+(?:,\ \#\d+)*)\))? (?:\ \((?P<issues>\#\d+(?:,\ \#\d+)*)\))?
''', re.VERBOSE | re.DOTALL) ''', re.VERBOSE | re.DOTALL)
EXTRACTOR_INDICATOR_RE = re.compile(r'(?:Fix|Add)\s+Extractors?', re.IGNORECASE) EXTRACTOR_INDICATOR_RE = re.compile(r'(?:Fix|Add)\s+Extractors?', re.IGNORECASE)
FIXES_RE = re.compile(r'(?i:Fix(?:es)?(?:\s+for)?|Revert)\s+([\da-f]{40})') FIXES_RE = re.compile(r'(?i:Fix(?:es)?(?:\s+bugs?)?(?:\s+in|\s+for)?|Revert)\s+([\da-f]{40})')
UPSTREAM_MERGE_RE = re.compile(r'Update to ytdl-commit-([\da-f]+)') UPSTREAM_MERGE_RE = re.compile(r'Update to ytdl-commit-([\da-f]+)')
def __init__(self, start, end, default_author=None) -> None: def __init__(self, start, end, default_author=None) -> None:
@ -391,7 +393,7 @@ class CommitRange:
else: else:
group = CommitGroup.CORE group = CommitGroup.CORE
sub_details = f'{sub_details or ""},{sub_details_alt or ""}'.lower().replace(':', ',') sub_details = f'{sub_details or ""},{sub_details_alt or ""}'.replace(':', ',')
sub_details = tuple(filter(None, map(str.strip, sub_details.split(',')))) sub_details = tuple(filter(None, map(str.strip, sub_details.split(','))))
issues = [issue.strip()[1:] for issue in issues.split(',')] if issues else [] issues = [issue.strip()[1:] for issue in issues.split(',')] if issues else []