Skip to content

Commit 9c3aa33

Browse files
committed
Add --prune option to cbi-tree
Excludes unused files from the output and computed metrics. Signed-off-by: John Pennycook <john.pennycook@intel.com>
1 parent 188da96 commit 9c3aa33

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

codebasin/report.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,9 @@ def write_to(self, stream: TextIO):
748748
def files(
749749
codebase: CodeBase,
750750
state: ParserState | None = None,
751+
*,
751752
stream: TextIO = sys.stdout,
753+
prune: bool = False,
752754
):
753755
"""
754756
Produce a file tree representing the code base.
@@ -787,6 +789,11 @@ def files(
787789
):
788790
platform = frozenset(association[node])
789791
setmap[platform] += node.num_lines
792+
if prune:
793+
# Prune unused files from the tree.
794+
platforms = set().union(*setmap.keys())
795+
if len(platforms) == 0:
796+
continue
790797
tree.insert(f, setmap)
791798

792799
# Print a legend.

codebasin/tree.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,15 @@ def _build_parser() -> argparse.ArgumentParser:
6161
"May be specified multiple times.",
6262
"If not specified, all platforms will be included.",
6363
is_long=True,
64+
),
65+
)
66+
parser.add_argument(
67+
"--prune",
68+
dest="prune",
69+
action="store_true",
70+
help=_help_string(
71+
"Prune unused files from the tree.",
72+
is_long=True,
6473
is_last=True,
6574
),
6675
)
@@ -131,7 +140,7 @@ def _tree(args: argparse.Namespace):
131140
)
132141

133142
# Print the file tree.
134-
report.files(codebase, state)
143+
report.files(codebase, state, prune=args.prune)
135144
sys.exit(0)
136145

137146

0 commit comments

Comments
 (0)