Skip to content

Commit c79e934

Browse files
committed
consistently use context manager to write files in software-markdown-pages.py script
1 parent 8e15a34 commit c79e934

File tree

1 file changed

+45
-49
lines changed

1 file changed

+45
-49
lines changed

docs/version-specific/software-markdown-pages.py

Lines changed: 45 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -34,55 +34,51 @@ def output_markdown(processed, output_base_path):
3434
:param output_base_path: Pathlib object for base path of output
3535
"""
3636
packages = sum(len(v) for v in processed.values())
37-
top_page = open(output_base_path / 'index.md', 'w')
38-
top_page.write(MKDOCS_SEARCH_PRIORITY)
39-
top_page.write("# List of supported software\n\n")
40-
top_page.write(f"EasyBuild supports {packages} different software packages (incl. toolchains, bundles):\n\n")
41-
42-
for letter in processed:
43-
top_page.write(f" * [{letter}]({letter}/index.md)\n")
44-
45-
letter_dir = output_base_path / letter
46-
letter_dir.mkdir()
47-
letter_page = open(letter_dir / 'index.md', 'w')
48-
letter_page.write(MKDOCS_SEARCH_PRIORITY)
49-
letter_page.write(f"# List of supported software ({letter})\n\n")
50-
letter_page.write(generate_character_links_line([v for v in processed], current=letter))
51-
52-
for software in processed[letter]:
53-
top_page.write(f" * [{software}]({letter}/{software}.md)\n")
54-
letter_page.write(f" * [{software}]({software}.md)\n")
55-
56-
versionsuffix = any(v['versionsuffix'] for v in processed[letter][software])
57-
58-
software_page = open(letter_dir / f'{software}.md', 'w')
59-
software_page.write(MKDOCS_SEARCH_PRIORITY)
60-
software_page.write(f"# {software}\n\n")
61-
software_page.write(f"{processed[letter][software][0]['description']}\n\n")
62-
software_page.write(f"*homepage*: <{processed[letter][software][0]['homepage']}>\n\n")
63-
64-
if versionsuffix:
65-
software_page.write("version | versionsuffix | toolchain\n")
66-
software_page.write("--------|---------------|----------\n")
67-
else:
68-
software_page.write("version | toolchain\n")
69-
software_page.write("--------|----------\n")
70-
71-
for version in processed[letter][software]:
72-
software_page.write(f"``{version['version']}`` | ")
73-
if versionsuffix:
74-
if version['versionsuffix']:
75-
software_page.write(f"``{version['versionsuffix']}``")
76-
software_page.write(" | ")
77-
software_page.write(f"``{version['toolchain']}``\n")
78-
79-
software_page.write('\n')
80-
software_page.write(generate_character_links_line([v for v in processed]))
81-
software_page.close()
82-
83-
letter_page.close()
84-
85-
top_page.close()
37+
38+
with open(output_base_path / 'index.md', 'w') as top_page:
39+
top_page.write(MKDOCS_SEARCH_PRIORITY)
40+
top_page.write("# List of supported software\n\n")
41+
top_page.write(f"EasyBuild supports {packages} different software packages (incl. toolchains, bundles):\n\n")
42+
43+
for letter in processed:
44+
top_page.write(f" * [{letter}]({letter}/index.md)\n")
45+
46+
letter_dir = output_base_path / letter
47+
letter_dir.mkdir()
48+
with open(letter_dir / 'index.md', 'w') as letter_page:
49+
letter_page.write(MKDOCS_SEARCH_PRIORITY)
50+
letter_page.write(f"# List of supported software ({letter})\n\n")
51+
letter_page.write(generate_character_links_line([v for v in processed], current=letter))
52+
53+
for software in processed[letter]:
54+
top_page.write(f" * [{software}]({letter}/{software}.md)\n")
55+
letter_page.write(f" * [{software}]({software}.md)\n")
56+
57+
versionsuffix = any(v['versionsuffix'] for v in processed[letter][software])
58+
59+
with open(letter_dir / f'{software}.md', 'w') as software_page:
60+
software_page.write(MKDOCS_SEARCH_PRIORITY)
61+
software_page.write(f"# {software}\n\n")
62+
software_page.write(f"{processed[letter][software][0]['description']}\n\n")
63+
software_page.write(f"*homepage*: <{processed[letter][software][0]['homepage']}>\n\n")
64+
65+
if versionsuffix:
66+
software_page.write("version | versionsuffix | toolchain\n")
67+
software_page.write("--------|---------------|----------\n")
68+
else:
69+
software_page.write("version | toolchain\n")
70+
software_page.write("--------|----------\n")
71+
72+
for version in processed[letter][software]:
73+
software_page.write(f"``{version['version']}`` | ")
74+
if versionsuffix:
75+
if version['versionsuffix']:
76+
software_page.write(f"``{version['versionsuffix']}``")
77+
software_page.write(" | ")
78+
software_page.write(f"``{version['toolchain']}``\n")
79+
80+
software_page.write('\n')
81+
software_page.write(generate_character_links_line([v for v in processed]))
8682

8783

8884
def generate_markdown_pages(jsonfile, output_base, delete_existing):

0 commit comments

Comments
 (0)