scripts: Renamed summary.py -> csv.py

This seems like a more fitting name now that this script has evolved
into more of a general purpose high-level CSV tool.

Unfortunately this does conflict with the standard csv module in Python,
breaking every script that imports csv (which is most of them).
Fortunately, Python is flexible enough to let us remove the current
directory before imports with a bit of an ugly hack:

  # prevent local imports
  __import__('sys').path.pop(0)

These scripts are intended to be standalone anyways, so this is probably
a good pattern to adopt.
This commit is contained in:
Christopher Haster
2024-11-09 12:31:16 -06:00
parent a0ab7bda26
commit 7cfcc1af1d
33 changed files with 128 additions and 32 deletions
+28 -28
View File
@@ -250,10 +250,10 @@ stack-diff: $(CI)
funcs: SUMMARYFLAGS+=-S funcs: SUMMARYFLAGS+=-S
funcs: SHELL=/bin/bash funcs: SHELL=/bin/bash
funcs: $(BUILDDIR)/lfs.code.csv $(BUILDDIR)/lfs.stack.csv funcs: $(BUILDDIR)/lfs.code.csv $(BUILDDIR)/lfs.stack.csv
$(strip ./scripts/summary.py \ $(strip ./scripts/csv.py \
<(./scripts/summary.py $(BUILDDIR)/lfs.code.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.code.csv \
-fcode=size -q $(SUMMARYFLAGS) -o-) \ -fcode=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.stack.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.stack.csv \
-fstack=limit -q $(SUMMARYFLAGS) -o-) \ -fstack=limit -q $(SUMMARYFLAGS) -o-) \
-bfunction -fcode -fstack \ -bfunction -fcode -fstack \
--max=stack \ --max=stack \
@@ -263,19 +263,19 @@ funcs: $(BUILDDIR)/lfs.code.csv $(BUILDDIR)/lfs.stack.csv
.PHONY: funcs-diff .PHONY: funcs-diff
funcs-diff: SHELL=/bin/bash funcs-diff: SHELL=/bin/bash
funcs-diff: $(OBJ) $(CI) funcs-diff: $(OBJ) $(CI)
$(strip ./scripts/summary.py \ $(strip ./scripts/csv.py \
<(./scripts/summary.py \ <(./scripts/csv.py \
<(./scripts/code.py $(OBJ) -q $(CODEFLAGS) -o-) \ <(./scripts/code.py $(OBJ) -q $(CODEFLAGS) -o-) \
-fcode=size -q $(SUMMARYFLAGS) -o-) \ -fcode=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py \ <(./scripts/csv.py \
<(./scripts/stack.py $(CI) -q $(STACKFLAGS) -o-) \ <(./scripts/stack.py $(CI) -q $(STACKFLAGS) -o-) \
-fstack=limit -q $(SUMMARYFLAGS) -o-) \ -fstack=limit -q $(SUMMARYFLAGS) -o-) \
-bfunction -fcode -fstack \ -bfunction -fcode -fstack \
--max=stack \ --max=stack \
$(SUMMARYFLAGS) -d <(./scripts/summary.py \ $(SUMMARYFLAGS) -d <(./scripts/csv.py \
<(./scripts/summary.py $(BUILDDIR)/lfs.code.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.code.csv \
-fcode=size -q $(SUMMARYFLAGS) -o-) \ -fcode=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.stack.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.stack.csv \
-fstack=limit -q $(SUMMARYFLAGS) -o-) \ -fstack=limit -q $(SUMMARYFLAGS) -o-) \
-fcode -fstack \ -fcode -fstack \
-q $(SUMMARYFLAGS) -o-)) -q $(SUMMARYFLAGS) -o-))
@@ -344,14 +344,14 @@ summary sizes: \
$(BUILDDIR)/lfs.data.csv \ $(BUILDDIR)/lfs.data.csv \
$(BUILDDIR)/lfs.stack.csv \ $(BUILDDIR)/lfs.stack.csv \
$(BUILDDIR)/lfs.structs.csv $(BUILDDIR)/lfs.structs.csv
$(strip ./scripts/summary.py \ $(strip ./scripts/csv.py \
<(./scripts/summary.py $(BUILDDIR)/lfs.code.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.code.csv \
-fcode=size -q $(SUMMARYFLAGS) -o-) \ -fcode=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.data.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.data.csv \
-fdata=size -q $(SUMMARYFLAGS) -o-) \ -fdata=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.stack.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.stack.csv \
-fstack=limit -q $(SUMMARYFLAGS) -o-) \ -fstack=limit -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.structs.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.structs.csv \
-fstructs=size -q $(SUMMARYFLAGS) -o-) \ -fstructs=size -q $(SUMMARYFLAGS) -o-) \
-bfunction -fcode -fdata -fstack -fstructs \ -bfunction -fcode -fdata -fstack -fstructs \
--max=stack \ --max=stack \
@@ -362,29 +362,29 @@ summary sizes: \
.PHONY: summary-diff sizes-diff .PHONY: summary-diff sizes-diff
summary-diff sizes-diff: SHELL=/bin/bash summary-diff sizes-diff: SHELL=/bin/bash
summary-diff sizes-diff: $(OBJ) $(CI) summary-diff sizes-diff: $(OBJ) $(CI)
$(strip ./scripts/summary.py \ $(strip ./scripts/csv.py \
<(./scripts/summary.py \ <(./scripts/csv.py \
<(./scripts/code.py $(OBJ) -q $(CODEFLAGS) -o-) \ <(./scripts/code.py $(OBJ) -q $(CODEFLAGS) -o-) \
-fcode=size -q $(SUMMARYFLAGS) -o-) \ -fcode=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py \ <(./scripts/csv.py \
<(./scripts/data.py $(OBJ) -q $(DATAFLAGS) -o-) \ <(./scripts/data.py $(OBJ) -q $(DATAFLAGS) -o-) \
-fdata=size -q $(SUMMARYFLAGS) -o-) \ -fdata=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py \ <(./scripts/csv.py \
<(./scripts/stack.py $(CI) -q $(STACKFLAGS) -o-) \ <(./scripts/stack.py $(CI) -q $(STACKFLAGS) -o-) \
-fstack=limit -q $(SUMMARYFLAGS) -o-) \ -fstack=limit -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py \ <(./scripts/csv.py \
<(./scripts/structs.py $(OBJ) -q $(STRUCTSFLAGS) -o-) \ <(./scripts/structs.py $(OBJ) -q $(STRUCTSFLAGS) -o-) \
-fstructs=size -q $(SUMMARYFLAGS) -o-) \ -fstructs=size -q $(SUMMARYFLAGS) -o-) \
-bfunction -fcode -fdata -fstack -fstructs \ -bfunction -fcode -fdata -fstack -fstructs \
--max=stack \ --max=stack \
-Y -p $(SUMMARYFLAGS) -d <(./scripts/summary.py \ -Y -p $(SUMMARYFLAGS) -d <(./scripts/csv.py \
<(./scripts/summary.py $(BUILDDIR)/lfs.code.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.code.csv \
-fcode=size -q $(SUMMARYFLAGS) -o-) \ -fcode=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.data.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.data.csv \
-fdata=size -q $(SUMMARYFLAGS) -o-) \ -fdata=size -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.stack.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.stack.csv \
-fstack=limit -q $(SUMMARYFLAGS) -o-) \ -fstack=limit -q $(SUMMARYFLAGS) -o-) \
<(./scripts/summary.py $(BUILDDIR)/lfs.structs.csv \ <(./scripts/csv.py $(BUILDDIR)/lfs.structs.csv \
-fstructs=size -q $(SUMMARYFLAGS) -o-) \ -fstructs=size -q $(SUMMARYFLAGS) -o-) \
-fcode -fdata -fstack -fstructs \ -fcode -fdata -fstack -fstructs \
-q $(SUMMARYFLAGS) -o-) \ -q $(SUMMARYFLAGS) -o-) \
@@ -420,14 +420,14 @@ test-list list-tests: test-runner
.PHONY: testmarks .PHONY: testmarks
testmarks: SUMMARYFLAGS+=-spassed -Stime testmarks: SUMMARYFLAGS+=-spassed -Stime
testmarks: $(TEST_CSV) $(BUILDDIR)/lfs.test.csv testmarks: $(TEST_CSV) $(BUILDDIR)/lfs.test.csv
$(strip ./scripts/summary.py $(TEST_CSV) \ $(strip ./scripts/csv.py $(TEST_CSV) \
-bsuite -fpassed -ftime \ -bsuite -fpassed -ftime \
$(SUMMARYFLAGS)) $(SUMMARYFLAGS))
## Compare test results against a previous run ## Compare test results against a previous run
.PHONY: testmarks-diff .PHONY: testmarks-diff
testmarks-diff: $(TEST_CSV) testmarks-diff: $(TEST_CSV)
$(strip ./scripts/summary.py $^ \ $(strip ./scripts/csv.py $^ \
-bsuite -fpassed -ftime \ -bsuite -fpassed -ftime \
$(SUMMARYFLAGS) -d $(BUILDDIR)/lfs.test.csv) $(SUMMARYFLAGS) -d $(BUILDDIR)/lfs.test.csv)
@@ -461,14 +461,14 @@ bench-list list-benches: bench-runner
.PHONY: benchmarks .PHONY: benchmarks
benchmarks: SUMMARYFLAGS+=-Serased -Sproged -Sreaded benchmarks: SUMMARYFLAGS+=-Serased -Sproged -Sreaded
benchmarks: $(BENCH_CSV) $(BUILDDIR)/lfs.bench.csv benchmarks: $(BENCH_CSV) $(BUILDDIR)/lfs.bench.csv
$(strip ./scripts/summary.py $(BENCH_CSV) \ $(strip ./scripts/csv.py $(BENCH_CSV) \
-bsuite -freaded -fproged -ferased \ -bsuite -freaded -fproged -ferased \
$(SUMMARYFLAGS)) $(SUMMARYFLAGS))
## Compare bench results against a previous run ## Compare bench results against a previous run
.PHONY: benchmarks-diff .PHONY: benchmarks-diff
benchmarks-diff: $(BENCH_CSV) benchmarks-diff: $(BENCH_CSV)
$(strip ./scripts/summary.py $^ \ $(strip ./scripts/csv.py $^ \
-bsuite -freaded -fproged -ferased \ -bsuite -freaded -fproged -ferased \
$(SUMMARYFLAGS) -d $(BUILDDIR)/lfs.bench.csv) $(SUMMARYFLAGS) -d $(BUILDDIR)/lfs.bench.csv)
+3
View File
@@ -3,6 +3,9 @@
# Amortize benchmark measurements # Amortize benchmark measurements
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import itertools as it import itertools as it
+3
View File
@@ -3,6 +3,9 @@
# Compute averages/etc of benchmark measurements # Compute averages/etc of benchmark measurements
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import itertools as it import itertools as it
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import errno import errno
+3
View File
@@ -11,6 +11,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import glob import glob
import itertools import itertools
import os import os
+3
View File
@@ -12,6 +12,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import difflib import difflib
+3
View File
@@ -12,6 +12,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import itertools as it import itertools as it
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import io import io
import os import os
import struct import struct
+7 -4
View File
@@ -1,17 +1,20 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# #
# Script to summarize the outputs of other scripts. Operates on CSV files. # Script to manipulate CSV files.
# #
# Example: # Example:
# ./scripts/code.py lfs.o lfs_util.o -q -o lfs.code.csv # ./scripts/code.py lfs.o lfs_util.o -q -o lfs.code.csv
# ./scripts/data.py lfs.o lfs_util.o -q -o lfs.data.csv # ./scripts/data.py lfs.o lfs_util.o -q -o lfs.data.csv
# ./scripts/summary.py lfs.code.csv lfs.data.csv -q -o lfs.csv # ./scripts/csv.py lfs.code.csv lfs.data.csv -q -o lfs.csv
# ./scripts/summary.py -Y lfs.csv -f code=code_size,data=data_size # ./scripts/csv.py -Y lfs.csv -f code=code_size,data=data_size
# #
# Copyright (c) 2022, The littlefs authors. # Copyright (c) 2022, The littlefs authors.
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import functools as ft import functools as ft
@@ -739,7 +742,7 @@ if __name__ == "__main__":
import argparse import argparse
import sys import sys
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description="Summarize measurements in CSV files.", description="Script to manipulate CSV files.",
allow_abbrev=False) allow_abbrev=False)
parser.add_argument( parser.add_argument(
'csv_paths', 'csv_paths',
+3
View File
@@ -12,6 +12,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import difflib import difflib
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import os import os
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import functools as ft import functools as ft
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import itertools as it import itertools as it
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import os import os
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
ERRS = [ ERRS = [
('OK', 0, "No error" ), ('OK', 0, "No error" ),
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import functools as ft import functools as ft
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import itertools as it import itertools as it
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import itertools as it import itertools as it
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import io import io
import os import os
import struct import struct
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import io import io
import os import os
import struct import struct
+3
View File
@@ -10,6 +10,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import csv import csv
+3
View File
@@ -11,6 +11,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import collections as co import collections as co
import csv import csv
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import bisect import bisect
import codecs import codecs
import collections as co import collections as co
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import codecs import codecs
import collections as co import collections as co
import csv import csv
+3
View File
@@ -10,6 +10,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import re import re
import sys import sys
+3
View File
@@ -1,5 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# prevent local imports
__import__('sys').path.pop(0)
import subprocess as sp import subprocess as sp
+3
View File
@@ -10,6 +10,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import itertools as it import itertools as it
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import difflib import difflib
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import io import io
import os import os
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import os import os
import io import io
import time import time
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import csv import csv
import errno import errno
+3
View File
@@ -9,6 +9,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import functools as ft import functools as ft
import io import io
+3
View File
@@ -10,6 +10,9 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# #
# prevent local imports
__import__('sys').path.pop(0)
import collections as co import collections as co
import errno import errno
import fcntl import fcntl