From 60475f3c3b0489085d1adc705dfcb4038e83413d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 5 Nov 2025 23:15:34 +0000 Subject: [PATCH] Cleanup: minor changes to credits generator - Resolve linter warnings. - Remove unnecessary str.format. - Return the exit code from main() instead of nested functions. --- tools/utils/credits_git_gen.py | 40 +++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/tools/utils/credits_git_gen.py b/tools/utils/credits_git_gen.py index 1df6a90a441..5d1434b59c0 100755 --- a/tools/utils/credits_git_gen.py +++ b/tools/utils/credits_git_gen.py @@ -169,7 +169,7 @@ class Credits: chunk_size = 256 chunk_list = [] chunk = [] - for i, c in enumerate(commit_iter): + for c in commit_iter: chunk.append(c) if len(chunk) >= chunk_size: chunk_list.append(chunk) @@ -329,50 +329,55 @@ def argparse_create() -> argparse.ArgumentParser: return parser -def parse_organizations(authors_file: str) -> tuple[str, ...]: - """Parse the organizations section from the AUTHORS file.""" +def parse_organizations(authors_file: str) -> tuple[str, ...] | None: + """ + Parse the organizations section from the AUTHORS file. + Return the sorted organizations or None if they could not be found. + """ orgs = [] - section_begin = "BEGIN organizations section" - section_end = "END organizations section" + section_begin = "# BEGIN organizations section" + section_end = "# END organizations section" in_section = False found_end = False with open(authors_file, "r", encoding="utf-8") as fh: for line in fh: - if line.startswith("# {:s}".format(section_begin)): + if line.startswith(section_begin): in_section = True continue - elif line.startswith("# {:s}".format(section_end)): + if line.startswith(section_end): found_end = True break if in_section and line and not line.startswith("#"): - # Extract organization name before '<' + # Extract organization name before `<`. org_name = line.split("<")[0].strip() - # Expected result: "Blender Foundation" + # Expected result: `Blender Foundation`. orgs.append("{:s}".format(html.escape(org_name))) if not in_section: - print("Error: Could not find \"{:s}\" on AUTHORS file: {:s}".format(section_begin, authors_file)) - sys.exit(-1) - elif not found_end: - print("Error: Could not find \"{:s}\" on AUTHORS file: {:s}".format(section_end, authors_file)) - sys.exit(-1) + print("Error: Could not find \"{:s}\" in AUTHORS file: {:s}".format(section_begin, authors_file)) + return None + if not found_end: + print("Error: Could not find \"{:s}\" in AUTHORS file: {:s}".format(section_end, authors_file)) + return None sorted_unique_organizations = tuple(sorted(set(orgs))) return sorted_unique_organizations -def main() -> None: +def main() -> int: # ---------- # Parse Args args = argparse_create().parse_args() - # Get organizations in HTML tags + # Get organizations in HTML `` tags. authors_file = os.path.join(args.source_dir, "AUTHORS") contrib_companies = parse_organizations(authors_file) + if contrib_companies is None: + return 1 credits = Credits() # commit_range = "HEAD~10..HEAD" @@ -396,7 +401,8 @@ def main() -> None: use_email=args.use_email, ) print("Written: credits.html") + return 0 if __name__ == "__main__": - main() + sys.exit(main())