Loading src/nova/trame/model/data_selector.py +5 −8 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ from natsort import natsorted from pydantic import BaseModel, Field, field_validator, model_validator from typing_extensions import Self CUSTOM_DIRECTORIES_LABEL = "Custom Directory" INSTRUMENTS = { "HFIR": { "CG-1A": "CG1A", Loading Loading @@ -59,7 +61,6 @@ class DataSelectorState(BaseModel, validate_assignment=True): """Selection state for identifying datafiles.""" allow_custom_directories: bool = Field(default=False) custom_directories_name: str = Field(default="Custom Directory") facility: str = Field(default="", title="Facility") instrument: str = Field(default="", title="Instrument") experiment: str = Field(default="", title="Experiment") Loading @@ -82,11 +83,7 @@ class DataSelectorState(BaseModel, validate_assignment=True): warn(f"Facility '{self.facility}' could not be found. Valid options: {valid_facilities}", stacklevel=1) valid_instruments = self.get_instruments() if ( self.instrument and self.facility != self.custom_directories_name and self.instrument not in valid_instruments ): if self.instrument and self.facility != CUSTOM_DIRECTORIES_LABEL and self.instrument not in valid_instruments: warn( ( f"Instrument '{self.instrument}' could not be found in '{self.facility}'. " Loading @@ -101,7 +98,7 @@ class DataSelectorState(BaseModel, validate_assignment=True): def get_facilities(self) -> List[str]: facilities = list(INSTRUMENTS.keys()) if self.allow_custom_directories: facilities.append(self.custom_directories_name) facilities.append(CUSTOM_DIRECTORIES_LABEL) return facilities def get_instruments(self) -> List[str]: Loading Loading @@ -168,7 +165,7 @@ class DataSelectorModel: return Path(self.state.custom_directory) def get_directories(self) -> List[str]: using_custom_directory = self.state.facility == self.state.custom_directories_name using_custom_directory = self.state.facility == CUSTOM_DIRECTORIES_LABEL if using_custom_directory: base_path = self.get_custom_directory_path() else: Loading src/nova/trame/view/components/data_selector.py +3 −4 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ from trame.widgets import client, datagrid, html from trame.widgets import vuetify3 as vuetify from nova.mvvm.trame_binding import TrameBinding from nova.trame.model.data_selector import DataSelectorModel from nova.trame.model.data_selector import CUSTOM_DIRECTORIES_LABEL, DataSelectorModel from nova.trame.view.layouts import GridLayout, VBoxLayout from nova.trame.view_model.data_selector import DataSelectorViewModel Loading Loading @@ -75,7 +75,6 @@ class DataSelector(datagrid.VGrid): self._v_model = v_model self._v_model_name_in_state = v_model.split(".")[0] self._allow_custom_directories = allow_custom_directories self._custom_directories_name = "Custom Directory" self._extensions = extensions if extensions is not None else [] self._prefix = prefix self._select_strategy = select_strategy Loading Loading @@ -111,13 +110,13 @@ class DataSelector(datagrid.VGrid): if instrument == "": columns -= 1 InputField( v_if=f"{self._state_name}.facility !== '{self._custom_directories_name}'", v_if=f"{self._state_name}.facility !== '{CUSTOM_DIRECTORIES_LABEL}'", v_model=f"{self._state_name}.instrument", items=(self._instruments_name,), type="autocomplete", ) InputField( v_if=f"{self._state_name}.facility !== '{self._custom_directories_name}'", v_if=f"{self._state_name}.facility !== '{CUSTOM_DIRECTORIES_LABEL}'", v_model=f"{self._state_name}.experiment", column_span=columns, items=(self._experiments_name,), Loading Loading
src/nova/trame/model/data_selector.py +5 −8 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ from natsort import natsorted from pydantic import BaseModel, Field, field_validator, model_validator from typing_extensions import Self CUSTOM_DIRECTORIES_LABEL = "Custom Directory" INSTRUMENTS = { "HFIR": { "CG-1A": "CG1A", Loading Loading @@ -59,7 +61,6 @@ class DataSelectorState(BaseModel, validate_assignment=True): """Selection state for identifying datafiles.""" allow_custom_directories: bool = Field(default=False) custom_directories_name: str = Field(default="Custom Directory") facility: str = Field(default="", title="Facility") instrument: str = Field(default="", title="Instrument") experiment: str = Field(default="", title="Experiment") Loading @@ -82,11 +83,7 @@ class DataSelectorState(BaseModel, validate_assignment=True): warn(f"Facility '{self.facility}' could not be found. Valid options: {valid_facilities}", stacklevel=1) valid_instruments = self.get_instruments() if ( self.instrument and self.facility != self.custom_directories_name and self.instrument not in valid_instruments ): if self.instrument and self.facility != CUSTOM_DIRECTORIES_LABEL and self.instrument not in valid_instruments: warn( ( f"Instrument '{self.instrument}' could not be found in '{self.facility}'. " Loading @@ -101,7 +98,7 @@ class DataSelectorState(BaseModel, validate_assignment=True): def get_facilities(self) -> List[str]: facilities = list(INSTRUMENTS.keys()) if self.allow_custom_directories: facilities.append(self.custom_directories_name) facilities.append(CUSTOM_DIRECTORIES_LABEL) return facilities def get_instruments(self) -> List[str]: Loading Loading @@ -168,7 +165,7 @@ class DataSelectorModel: return Path(self.state.custom_directory) def get_directories(self) -> List[str]: using_custom_directory = self.state.facility == self.state.custom_directories_name using_custom_directory = self.state.facility == CUSTOM_DIRECTORIES_LABEL if using_custom_directory: base_path = self.get_custom_directory_path() else: Loading
src/nova/trame/view/components/data_selector.py +3 −4 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ from trame.widgets import client, datagrid, html from trame.widgets import vuetify3 as vuetify from nova.mvvm.trame_binding import TrameBinding from nova.trame.model.data_selector import DataSelectorModel from nova.trame.model.data_selector import CUSTOM_DIRECTORIES_LABEL, DataSelectorModel from nova.trame.view.layouts import GridLayout, VBoxLayout from nova.trame.view_model.data_selector import DataSelectorViewModel Loading Loading @@ -75,7 +75,6 @@ class DataSelector(datagrid.VGrid): self._v_model = v_model self._v_model_name_in_state = v_model.split(".")[0] self._allow_custom_directories = allow_custom_directories self._custom_directories_name = "Custom Directory" self._extensions = extensions if extensions is not None else [] self._prefix = prefix self._select_strategy = select_strategy Loading Loading @@ -111,13 +110,13 @@ class DataSelector(datagrid.VGrid): if instrument == "": columns -= 1 InputField( v_if=f"{self._state_name}.facility !== '{self._custom_directories_name}'", v_if=f"{self._state_name}.facility !== '{CUSTOM_DIRECTORIES_LABEL}'", v_model=f"{self._state_name}.instrument", items=(self._instruments_name,), type="autocomplete", ) InputField( v_if=f"{self._state_name}.facility !== '{self._custom_directories_name}'", v_if=f"{self._state_name}.facility !== '{CUSTOM_DIRECTORIES_LABEL}'", v_model=f"{self._state_name}.experiment", column_span=columns, items=(self._experiments_name,), Loading