Source code for readme_generator
from pathlib import Path
from bugscpp.taxonomy import Taxonomy
TARGET_TEXT = "@TABLE_OF_DEFECTS@"
[docs]def generate_readme(
taxonomy: Taxonomy,
input_file_path="README.rst.template",
output_file_path="README.rst",
):
table = generate_table(taxonomy)
assert Path(input_file_path).is_file()
with open(input_file_path, "r") as input_file:
content = input_file.read()
content = content.replace(TARGET_TEXT, table)
with open(output_file_path, "w") as output_file:
output_file.write(content)
[docs]def generate_table(taxonomy):
table = ".. list-table::\n :header-rows: 1\n\n * - Project\n - # of bugs\n - Short Description\n"
sum_of_defects = 0
for project_name in taxonomy._lazy_taxonomy.keys():
defects_num = len(taxonomy[project_name].defects)
project_url = str(taxonomy[project_name].info).split("'")[1]
project_name_with_url = "`" + str(project_name) + " <" + project_url + "/>`_"
project_short_desc = str(taxonomy[project_name].info).split("'")[3]
sum_of_defects = sum_of_defects + defects_num
table = (
table
+ " * - "
+ project_name_with_url
+ "\n - "
+ str(defects_num)
+ "\n - "
+ project_short_desc
+ "\n"
)
table = (
table
+ " * - SUM\n - "
+ str(sum_of_defects)
+ "\n - Sum of all defects\n"
)
return table
if __name__ == "__main__":
generate_readme(Taxonomy())