Internals: Avoid argparse.FileType deprecated in Python 3.14
This commit is contained in:
parent
259365d408
commit
602e82a3b7
|
|
@ -24,11 +24,7 @@ Version 2.0.
|
||||||
|
|
||||||
SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0""")
|
SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0""")
|
||||||
|
|
||||||
parser.add_argument('-o',
|
parser.add_argument('-o', type=pathlib.Path, metavar="OUTFILE", required=True, help='output file')
|
||||||
type=argparse.FileType('w'),
|
|
||||||
metavar="OUTFILE",
|
|
||||||
required=True,
|
|
||||||
help='output file')
|
|
||||||
parser.add_argument('logdir', type=pathlib.Path, help='log directory')
|
parser.add_argument('logdir', type=pathlib.Path, help='log directory')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
@ -58,34 +54,35 @@ for logfile in args.logdir.iterdir():
|
||||||
elapsed[obj] = toDateTime(match.group(1)) - start
|
elapsed[obj] = toDateTime(match.group(1)) - start
|
||||||
results[obj] = match.group(2)
|
results[obj] = match.group(2)
|
||||||
|
|
||||||
args.o.write("#" * 80 + "\n")
|
with args.o.open("w") as ofd:
|
||||||
args.o.write("ccache report (from verilator_ccache_report) :\n")
|
ofd.write("#" * 80 + "\n")
|
||||||
|
ofd.write("ccache report (from verilator_ccache_report) :\n")
|
||||||
|
|
||||||
if not results:
|
if not results:
|
||||||
args.o.write("\nAll object files up to date\n")
|
ofd.write("\nAll object files up to date\n")
|
||||||
else:
|
else:
|
||||||
args.o.write("\nCompiled object files:\n")
|
ofd.write("\nCompiled object files:\n")
|
||||||
wnames = max(len(_) for _ in results) + 1
|
wnames = max(len(_) for _ in results) + 1
|
||||||
wresults = max(len(_) for _ in results.values()) + 1
|
wresults = max(len(_) for _ in results.values()) + 1
|
||||||
for k in sorted(results.keys()):
|
for k in sorted(results.keys()):
|
||||||
args.o.write("{:{wnames}} : {:{wresults}} : {}s\n".format(k,
|
ofd.write("{:{wnames}} : {:{wresults}} : {}s\n".format(k,
|
||||||
results[k],
|
results[k],
|
||||||
elapsed[k].total_seconds(),
|
elapsed[k].total_seconds(),
|
||||||
wnames=wnames,
|
wnames=wnames,
|
||||||
wresults=wresults))
|
wresults=wresults))
|
||||||
|
|
||||||
args.o.write("\nSummary:\n")
|
ofd.write("\nSummary:\n")
|
||||||
counts = collections.Counter(_ for _ in results.values())
|
counts = collections.Counter(_ for _ in results.values())
|
||||||
total = sum(counts.values())
|
total = sum(counts.values())
|
||||||
for k in sorted(counts.keys()):
|
for k in sorted(counts.keys()):
|
||||||
c = counts[k]
|
c = counts[k]
|
||||||
args.o.write("{:{width}}| {} ({:.2%})\n".format(k, c, c / total, width=wresults))
|
ofd.write("{:{width}}| {} ({:.2%})\n".format(k, c, c / total, width=wresults))
|
||||||
|
|
||||||
args.o.write("\nLongest:\n")
|
ofd.write("\nLongest:\n")
|
||||||
longest = sorted(list(elapsed.items()), key=lambda kv: -kv[1].total_seconds())
|
longest = sorted(list(elapsed.items()), key=lambda kv: -kv[1].total_seconds())
|
||||||
for i, (k, v) in enumerate(longest):
|
for i, (k, v) in enumerate(longest):
|
||||||
args.o.write("{:{width}}| {}s\n".format(k, v.total_seconds(), width=wnames))
|
ofd.write("{:{width}}| {}s\n".format(k, v.total_seconds(), width=wnames))
|
||||||
if i > 4:
|
if i > 4:
|
||||||
break
|
break
|
||||||
|
|
||||||
args.o.write("#" * 80 + "\n")
|
ofd.write("#" * 80 + "\n")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue