diff options
-rwxr-xr-x | bin/analyze-archive.py | 4 | ||||
-rwxr-xr-x | bin/analyze-kconfig.py | 4 | ||||
-rwxr-xr-x | bin/analyze-log.py | 4 | ||||
-rw-r--r-- | lib/cli.py | 22 | ||||
-rw-r--r-- | lib/functions.py | 1 |
5 files changed, 30 insertions, 5 deletions
diff --git a/bin/analyze-archive.py b/bin/analyze-archive.py index 53a8c37..0587ce1 100755 --- a/bin/analyze-archive.py +++ b/bin/analyze-archive.py @@ -426,7 +426,9 @@ def main(): dfatool.cli.print_info_by_name(model, by_name) if args.export_csv_unparam: - dfatool.cli.export_csv_unparam(model, args.export_csv_unparam) + dfatool.cli.export_csv_unparam( + model, args.export_csv_unparam, dialect=args.export_csv_dialect + ) if args.export_pgf_unparam: dfatool.cli.export_pgf_unparam(model, args.export_pgf_unparam) diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py index d148641..da58bc7 100755 --- a/bin/analyze-kconfig.py +++ b/bin/analyze-kconfig.py @@ -354,7 +354,9 @@ def main(): dfatool.cli.print_info_by_name(model, by_name) if args.export_csv_unparam: - dfatool.cli.export_csv_unparam(model, args.export_csv_unparam) + dfatool.cli.export_csv_unparam( + model, args.export_csv_unparam, dialect=args.export_csv_dialect + ) if args.export_pgf_unparam: dfatool.cli.export_pgf_unparam(model, args.export_pgf_unparam) diff --git a/bin/analyze-log.py b/bin/analyze-log.py index dd32fab..a394b10 100755 --- a/bin/analyze-log.py +++ b/bin/analyze-log.py @@ -125,7 +125,9 @@ def main(): dfatool.cli.print_info_by_name(model, by_name) if args.export_csv_unparam: - dfatool.cli.export_csv_unparam(model, args.export_csv_unparam) + dfatool.cli.export_csv_unparam( + model, args.export_csv_unparam, dialect=args.export_csv_dialect + ) if args.export_pgf_unparam: dfatool.cli.export_pgf_unparam(model, args.export_pgf_unparam) @@ -358,13 +358,23 @@ def export_dot(model, dot_prefix): logger.info(f"Dot export of model saved to {filename}") -def export_csv_unparam(model, csv_prefix): +def export_csv_unparam(model, csv_prefix, dialect="excel"): import csv + class ExcelLF(csv.Dialect): + delimiter = "," + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = "\n" + quoting = 0 + + csv.register_dialect("excel-lf", ExcelLF) + for name in sorted(model.names): filename = f"{csv_prefix}{name}.csv" with open(filename, "w") as f: - writer = csv.writer(f) + writer = csv.writer(f, dialect=dialect) writer.writerow( ["measurement"] + model.parameters + sorted(model.attributes(name)) ) @@ -479,6 +489,14 @@ def add_standard_arguments(parser): help="Export raw (parameter-independent) observations in CSV format to {PREFIX}{name}-{attribute}.csv", ) parser.add_argument( + "--export-csv-dialect", + metavar="DIALECT", + type=str, + choices=["excel", "excel-lf", "excel-tab", "unix"], + default="excel", + help="CSV dialect to use for --export-csv-unparam", + ) + parser.add_argument( "--export-pgf-unparam", metavar="PREFIX", type=str, diff --git a/lib/functions.py b/lib/functions.py index 32fade0..d231c9c 100644 --- a/lib/functions.py +++ b/lib/functions.py @@ -452,6 +452,7 @@ class SplitFunction(ModelFunction): or "infty", } ) + return hyper @classmethod def from_json(cls, data): |