change: new display infos
This commit is contained in:
@@ -283,7 +283,7 @@ class Evaluator:
|
||||
rules_stack: list[Rule],
|
||||
errors: EvaluatorErrorTree,
|
||||
) -> Any:
|
||||
if target in param_chain_map:
|
||||
if target in param_chain_map and param_chain_map[target].value is not None:
|
||||
return param_chain_map[target].value
|
||||
if target not in self.rules or len(self.rules[target]) == 0:
|
||||
raise NoValidRuleError(target)
|
||||
|
||||
@@ -21,18 +21,22 @@ T = TypeVar("T")
|
||||
DISPLAY_INFO = {}
|
||||
|
||||
|
||||
def _format_display_info(name: str, value) -> str:
|
||||
try:
|
||||
return DISPLAY_INFO[name](value)
|
||||
except KeyError:
|
||||
return format(value, ".9g")
|
||||
|
||||
|
||||
def format_value(name: str, value) -> str:
|
||||
if value is True or value is False:
|
||||
return str(value)
|
||||
elif isinstance(value, (float, int)):
|
||||
try:
|
||||
return DISPLAY_INFO[name](value)
|
||||
except KeyError:
|
||||
return format(value, ".9g")
|
||||
return _format_display_info(name, value)
|
||||
elif isinstance(value, np.ndarray):
|
||||
return np.array2string(value)
|
||||
elif isinstance(value, (list, tuple)):
|
||||
return "-".join([str(v) for v in value])
|
||||
return ", ".join([_format_display_info(name, v) for v in value])
|
||||
elif isinstance(value, str):
|
||||
p = Path(value)
|
||||
if p.exists():
|
||||
@@ -388,12 +392,13 @@ class Parameters:
|
||||
repeat: int = Parameter(positive(int), default=1)
|
||||
t_num: int = Parameter(positive(int), default=4096)
|
||||
z_num: int = Parameter(positive(int), default=128)
|
||||
time_window: float = Parameter(positive(float, int))
|
||||
dt: float = Parameter(in_range_excl(0, 10e-15))
|
||||
time_window: float = Parameter(positive(float, int), display_info=(1e12, "ps"))
|
||||
dt: float = Parameter(in_range_excl(0, 10e-15), display_info=(1e15, "fs"))
|
||||
tolerated_error: float = Parameter(in_range_excl(1e-15, 1e-3), default=1e-11)
|
||||
step_size: float = Parameter(non_negative(float, int), default=0)
|
||||
wavelength_window: tuple[float, float] = Parameter(
|
||||
validator_and(float_pair, validator_list(in_range_incl(100e-9, 10000e-9)))
|
||||
validator_and(float_pair, validator_list(in_range_incl(100e-9, 10000e-9))),
|
||||
display_info=(1e9, "nm"),
|
||||
)
|
||||
interpolation_degree: int = Parameter(validator_and(type_checker(int), in_range_incl(2, 18)))
|
||||
prev_sim_dir: str = Parameter(string)
|
||||
@@ -421,9 +426,9 @@ class Parameters:
|
||||
w_c: np.ndarray = Parameter(type_checker(np.ndarray))
|
||||
w0: float = Parameter(positive(float))
|
||||
t: np.ndarray = Parameter(type_checker(np.ndarray))
|
||||
dispersion_length: float = Parameter(non_negative(float, int))
|
||||
nonlinear_length: float = Parameter(non_negative(float, int))
|
||||
soliton_length: float = Parameter(non_negative(float, int))
|
||||
dispersion_length: float = Parameter(non_negative(float, int), display_info=(1e2, "cm"))
|
||||
nonlinear_length: float = Parameter(non_negative(float, int), display_info=(1e2, "cm"))
|
||||
soliton_length: float = Parameter(non_negative(float, int), display_info=(1e2, "cm"))
|
||||
adapt_step_size: bool = Parameter(boolean)
|
||||
hr_w: np.ndarray = Parameter(type_checker(np.ndarray))
|
||||
z_targets: np.ndarray = Parameter(type_checker(np.ndarray))
|
||||
|
||||
Reference in New Issue
Block a user