Enable DAG to be rendered unpruned

This commit is contained in:
Jack Grigg 2021-12-16 22:05:04 +00:00
parent a8fefc086e
commit d9e9d0cbd1
1 changed files with 9 additions and 5 deletions

View File

@ -60,6 +60,9 @@ REPOS = REPO_SETS[DAG_VIEW]
# Whether to include subgraphs where all issues and PRs are closed. # Whether to include subgraphs where all issues and PRs are closed.
INCLUDE_FINISHED = strtobool(os.environ.get('INCLUDE_FINISHED', 'false')) INCLUDE_FINISHED = strtobool(os.environ.get('INCLUDE_FINISHED', 'false'))
# Whether to remove closed issues and PRs that are not downstream of open ones.
PRUNE_FINISHED = strtobool(os.environ.get('PRUNE_FINISHED', 'true'))
# Whether to group issues and PRs by milestone. # Whether to group issues and PRs by milestone.
SHOW_MILESTONES = strtobool(os.environ.get('SHOW_MILESTONES', 'false')) SHOW_MILESTONES = strtobool(os.environ.get('SHOW_MILESTONES', 'false'))
@ -219,12 +222,13 @@ def main():
dg.remove_nodes_from(nx.compose_all(ignore)) dg.remove_nodes_from(nx.compose_all(ignore))
# Prune nodes that are not downstream of any open issues. # Prune nodes that are not downstream of any open issues.
# - It would be nice to keep the most recently-closed issues on the DAG, but if PRUNE_FINISHED:
# dg.out_degree seems to be broken... # - It would be nice to keep the most recently-closed issues on the DAG, but
to_prune = [n for (n, degree) in dg.in_degree() if degree == 0 and n.state == 'closed'] # dg.out_degree seems to be broken...
while len(to_prune) > 0:
dg.remove_nodes_from(to_prune)
to_prune = [n for (n, degree) in dg.in_degree() if degree == 0 and n.state == 'closed'] to_prune = [n for (n, degree) in dg.in_degree() if degree == 0 and n.state == 'closed']
while len(to_prune) > 0:
dg.remove_nodes_from(to_prune)
to_prune = [n for (n, degree) in dg.in_degree() if degree == 0 and n.state == 'closed']
do_next = [n for (n, degree) in dg.in_degree(weight='is_open') if degree == 0 and n.state != 'closed'] do_next = [n for (n, degree) in dg.in_degree(weight='is_open') if degree == 0 and n.state != 'closed']