Add overrides to show or hide progress bars

这个提交包含在:
nmannall
2024-07-04 12:36:24 +01:00
父节点 687448e97d
当前提交 642db458e2
共有 3 个文件被更改,包括 45 次插入5 次删除

查看文件

@@ -241,13 +241,19 @@ class SimulationConfig:
# solver: cpu, cuda, opencl. # solver: cpu, cuda, opencl.
# precision: data type for electromagnetic field output (single/double). # precision: data type for electromagnetic field output (single/double).
# progressbars: progress bars on stdoout or not - switch off # progressbars: progress bars on stdoout or not - switch off
# progressbars when logging level is greater than # progressbars when logging level is greater than info (20)
# info (20) # or when specified by the user.
if args.show_progress_bars and args.hide_progress_bars:
logger.exception("You cannot both show and hide progress bars.")
raise ValueError
self.general = { self.general = {
"solver": "cpu", "solver": "cpu",
"precision": "single", "precision": "single",
"progressbars": args.log_level <= 20, "progressbars": (
args.show_progress_bars or (args.log_level <= 20 and not args.hide_progress_bars)
),
} }
# Store information about host machine # Store information about host machine

查看文件

@@ -38,6 +38,8 @@ args_defaults = {
"geometry_only": False, "geometry_only": False,
"geometry_fixed": False, "geometry_fixed": False,
"write_processed": False, "write_processed": False,
"show_progress_bars": False,
"hide_progress_bars": False,
"log_level": 20, # Level DEBUG = 10; INFO = 20; BASIC = 25 "log_level": 20, # Level DEBUG = 10; INFO = 20; BASIC = 25
"log_file": False, "log_file": False,
} }
@@ -91,6 +93,14 @@ help_msg = {
"(bool, opt): Writes another input file after any Python code (#python blocks) and in the" "(bool, opt): Writes another input file after any Python code (#python blocks) and in the"
" original input file has been processed." " original input file has been processed."
), ),
"show_progress_bars": (
"(bool, opt): Forces progress bars to be displayed - by default, progress bars are"
" displayed when the log level is info (20) or less."
),
"hide_progress_bars": (
"(bool, opt): Forces progress bars to be hidden - by default, progress bars are hidden when"
" the log level is greater than info (20)."
),
"log_level": "(int, opt): Level of logging to use.", "log_level": "(int, opt): Level of logging to use.",
"log_file": "(bool, opt): Write logging information to file.", "log_file": "(bool, opt): Write logging information to file.",
} }
@@ -111,6 +121,8 @@ def run(
geometry_only=args_defaults["geometry_only"], geometry_only=args_defaults["geometry_only"],
geometry_fixed=args_defaults["geometry_fixed"], geometry_fixed=args_defaults["geometry_fixed"],
write_processed=args_defaults["write_processed"], write_processed=args_defaults["write_processed"],
show_progress_bars=args_defaults["show_progress_bars"],
hide_progress_bars=args_defaults["hide_progress_bars"],
log_level=args_defaults["log_level"], log_level=args_defaults["log_level"],
log_file=args_defaults["log_file"], log_file=args_defaults["log_file"],
): ):
@@ -159,6 +171,12 @@ def run(
write_processed: optional boolean to write another input file write_processed: optional boolean to write another input file
after any #python blocks (which are deprecated) in the after any #python blocks (which are deprecated) in the
original input file has been processed. original input file has been processed.
show_progress_bars: optional boolean to force progress bars to
be displayed - by default, progress bars are displayed when
the log level is info (20) or less.
hide_progress_bars: optional boolean to force progress bars to
be hidden - by default, progress bars are hidden when the
log level is greater than info (20).
log_level: optional int for level of logging to use. log_level: optional int for level of logging to use.
log_file: optional boolean to write logging information to file. log_file: optional boolean to write logging information to file.
""" """
@@ -179,6 +197,8 @@ def run(
"geometry_only": geometry_only, "geometry_only": geometry_only,
"geometry_fixed": geometry_fixed, "geometry_fixed": geometry_fixed,
"write_processed": write_processed, "write_processed": write_processed,
"show_progress_bars": show_progress_bars,
"hide_progress_bars": hide_progress_bars,
"log_level": log_level, "log_level": log_level,
"log_file": log_file, "log_file": log_file,
} }
@@ -232,6 +252,18 @@ def cli():
default=args_defaults["write_processed"], default=args_defaults["write_processed"],
help=help_msg["write_processed"], help=help_msg["write_processed"],
) )
parser.add_argument(
"--show-progress-bars",
action="store_true",
default=args_defaults["show_progress_bars"],
help=help_msg["show_progress_bars"],
)
parser.add_argument(
"--hide-progress-bars",
action="store_true",
default=args_defaults["hide_progress_bars"],
help=help_msg["hide_progress_bars"],
)
parser.add_argument( parser.add_argument(
"--log-level", type=int, default=args_defaults["log_level"], help=help_msg["log_level"] "--log-level", type=int, default=args_defaults["log_level"], help=help_msg["log_level"]
) )

查看文件

@@ -91,7 +91,7 @@ class GprMaxRegressionTest(rfm.RunOnlyRegressionTest):
is_antenna_model = variable(bool, value=False) is_antenna_model = variable(bool, value=False)
# sourcesdir = required # sourcesdir = required
extra_executable_opts = variable(typ.List[str], value=[]) extra_executable_opts = variable(typ.List[str], value=[])
executable = "time -p python -m gprMax --log-level 25" executable = "time -p python -m gprMax --log-level 10 --hide-progress-bars"
rx_outputs = variable(typ.List[str], value=Rx.defaultoutputs) rx_outputs = variable(typ.List[str], value=Rx.defaultoutputs)
h5diff_header = f"{'=' * 10} h5diff output {'=' * 10}" h5diff_header = f"{'=' * 10} h5diff output {'=' * 10}"
@@ -307,11 +307,13 @@ class GprMaxMPIRegressionTest(GprMaxRegressionTest):
# TODO: Make this a variable # TODO: Make this a variable
serial_dependency: type[GprMaxRegressionTest] serial_dependency: type[GprMaxRegressionTest]
mpi_layout = parameter() mpi_layout = parameter()
_stdout = "rfm_job-%t.out"
_stderr = "rfm_job-%t.err"
@run_after("setup", always_last=True) @run_after("setup", always_last=True)
def configure_test_run(self): def configure_test_run(self):
self.num_tasks = int(product(self.mpi_layout)) self.num_tasks = int(product(self.mpi_layout))
self.extra_executable_opts = ["-mpi", " ".join(map(str, self.mpi_layout))] self.extra_executable_opts = ["-mpi", " ".join([str(i) for i in self.mpi_layout])]
super().configure_test_run() super().configure_test_run()
def _get_variant(self) -> str: def _get_variant(self) -> str: