你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-08 07:24:19 +08:00
Add overrides to show or hide progress bars
这个提交包含在:
@@ -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:
|
||||||
|
在新工单中引用
屏蔽一个用户