Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/badger/gui/mini/components/env_cbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
QLabel,
)
from PyQt5.QtCore import QRegExp, pyqtSignal
import numpy as np
from badger.gui.components.obs_table import ObservableTable
from badger.settings import init_settings
from pydantic_core import ValidationError
Expand Down Expand Up @@ -659,6 +660,15 @@ def filter_var(self):

self.var_table.update_variables(_variables, 1)

def get_nan_vars(self) -> list[str]:
"""Return keys of var_table entries with NaN values"""
current_values = self.var_table.current_values
return [
key
for key, value in current_values.items()
if isinstance(value, (float, np.floating)) and np.isnan(value)
]

def toggle_obj_show_mode(self, _):
self.obj_table.update_show_selected_only(self.check_only_obj.isChecked())

Expand Down
13 changes: 13 additions & 0 deletions src/badger/gui/mini/pages/routine_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -1184,6 +1184,19 @@ def select_env(self, i: int):
# Update the docs
self.window_env_docs.update_docs(env.name, "environment")

self.check_for_nan_vars()

def check_for_nan_vars(self) -> None:
"""Show a warning popup to notify user if any var_table values are NaN"""
nan_value_keys = self.env_box.get_nan_vars()
if nan_value_keys:
nan_vars = "\n".join(f" - {key}" for key in nan_value_keys)
QMessageBox.warning(
self,
"Variables with invalid values",
f"Failed to get values for the following variables:\n{nan_vars}",
)

def get_init_table_header(self):
table = self.env_box.init_table
header_list = []
Expand Down
Loading