added Rule to EvalStats. slots in CurrentState
This commit is contained in:
@@ -98,6 +98,7 @@ class Rule:
|
|||||||
@dataclass
|
@dataclass
|
||||||
class EvalStat:
|
class EvalStat:
|
||||||
priority: float = np.inf
|
priority: float = np.inf
|
||||||
|
rule: Rule = None
|
||||||
|
|
||||||
|
|
||||||
class Evaluator:
|
class Evaluator:
|
||||||
@@ -238,7 +239,7 @@ class Evaluator:
|
|||||||
+ success_str
|
+ success_str
|
||||||
+ f"using {rule.func.__name__} from {rule.func.__module__}"
|
+ f"using {rule.func.__name__} from {rule.func.__module__}"
|
||||||
)
|
)
|
||||||
self.set_value(param_name, returned_value, param_priority)
|
self.set_value(param_name, returned_value, param_priority, rule)
|
||||||
if param_name == target:
|
if param_name == target:
|
||||||
value = returned_value
|
value = returned_value
|
||||||
break
|
break
|
||||||
@@ -262,7 +263,7 @@ class Evaluator:
|
|||||||
else:
|
else:
|
||||||
value = default
|
value = default
|
||||||
self.logger.info(prefix + f"using default value of {value} for {target}")
|
self.logger.info(prefix + f"using default value of {value} for {target}")
|
||||||
self.set_value(target, value, 0)
|
self.set_value(target, value, 0, None)
|
||||||
last_target = self.__curent_lookup.pop()
|
last_target = self.__curent_lookup.pop()
|
||||||
assert target == last_target
|
assert target == last_target
|
||||||
self.__failed_rules[target] = []
|
self.__failed_rules[target] = []
|
||||||
@@ -275,9 +276,10 @@ class Evaluator:
|
|||||||
def __getitem__(self, key: str) -> Any:
|
def __getitem__(self, key: str) -> Any:
|
||||||
return self.params[key]
|
return self.params[key]
|
||||||
|
|
||||||
def set_value(self, key: str, value: Any, priority: int):
|
def set_value(self, key: str, value: Any, priority: int, rule: Rule):
|
||||||
self.params[key] = value
|
self.params[key] = value
|
||||||
self.eval_stats[key].priority = priority
|
self.eval_stats[key].priority = priority
|
||||||
|
self.eval_stats[key].rule = rule
|
||||||
|
|
||||||
def validate_condition(self, rule: Rule) -> bool:
|
def validate_condition(self, rule: Rule) -> bool:
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -24,10 +24,23 @@ class CurrentState:
|
|||||||
step: int
|
step: int
|
||||||
C_to_A_factor: np.ndarray
|
C_to_A_factor: np.ndarray
|
||||||
converter: Callable[[np.ndarray], np.ndarray]
|
converter: Callable[[np.ndarray], np.ndarray]
|
||||||
__spectrum: np.ndarray = None
|
__spectrum: np.ndarray
|
||||||
__spec2: np.ndarray = None
|
__spec2: np.ndarray
|
||||||
__field: np.ndarray = None
|
__field: np.ndarray
|
||||||
__field2: np.ndarray = None
|
__field2: np.ndarray
|
||||||
|
|
||||||
|
__slots__ = [
|
||||||
|
"length",
|
||||||
|
"z",
|
||||||
|
"current_step_size",
|
||||||
|
"step",
|
||||||
|
"C_to_A_factor",
|
||||||
|
"converter",
|
||||||
|
"_CurrentState__spectrum",
|
||||||
|
"_CurrentState__spec2",
|
||||||
|
"_CurrentState__field",
|
||||||
|
"_CurrentState__field2",
|
||||||
|
]
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -45,7 +58,7 @@ class CurrentState:
|
|||||||
self.step = step
|
self.step = step
|
||||||
self.C_to_A_factor = C_to_A_factor
|
self.C_to_A_factor = C_to_A_factor
|
||||||
self.converter = converter
|
self.converter = converter
|
||||||
self.__spectrum = spectrum
|
self.spectrum = spectrum
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def z_ratio(self) -> float:
|
def z_ratio(self) -> float:
|
||||||
|
|||||||
Reference in New Issue
Block a user