diff --git a/pyproject.toml b/pyproject.toml index 2c3437e31ac229b5eba89a34c4e1e780d5e32ae7..3f1ff498a9c0faf5cc7afcb4606605d81b7d68ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "confighandler" -version = "0.0.1" +version = "0.0.2" authors = [ { name="Christoph Schmidt", email="cschmidt.fs@gmail.com" }, ] diff --git a/src/confighandler/controller/old/VFSObject.py b/src/confighandler/controller/old/VFSObject.py deleted file mode 100644 index 7159ffc9728853ce59425c6d596ea9700dabfdd7..0000000000000000000000000000000000000000 --- a/src/confighandler/controller/old/VFSObject.py +++ /dev/null @@ -1,103 +0,0 @@ -import os -from abc import ABC - -class VFSObject(ABC): - def __init__(self, file_system_obj: str = None, pref_folder: str = None, keywords: dict = None): - super().__init__() - - self._raw_file_system_obj = file_system_obj - self.keywords = keywords - - if file_system_obj is None or file_system_obj == "": - raise ValueError("File input can't be None or empty. No file given") - - if pref_folder is None or pref_folder == "": - self.pref_folder = "./" - else: - self.pref_folder = pref_folder - - self.set_obj(file_system_obj=self._raw_file_system_obj, keywords=keywords) - - @property - def filename(self): - return self._raw_file_system_obj - - @property - def absolute(self): - return self._abs - - @property - def relative(self): - return self._rel - - def setup_folder(self): - # Check if the given argument is a file - if os.path.isfile(self.absolute) or "." in self.absolute: - folder = os.path.split(self.absolute)[0] - # joind the splitted string - folder = os.path.join(folder) - else: - folder = self.absolute - - if "{" in folder: - print(self.absolute) - raise Exception("Can't set folder for file with keywords in path.") - - # Try creating the output directory - if not os.path.exists(folder): - try: - os.makedirs(folder) - except Exception as exc: - print(f"Could not create folder {folder}. Exception: {exc}") - raise exc - - # check if the folder exists - try: - if not os.path.exists(folder): - raise FileNotFoundError(f"Folder {folder} does not exist") - except Exception as exc: - print(f"Could not check if folder {folder} exists. Exception: {exc}") - - self._folder_set = True - print(f"Folder created: {folder} for " - f" -> \n{self.absolute}\n") - return folder - - def create_object(self): - if self._folder_set: - return self - else: - return self.setup_folder() - - def set_obj(self, file_system_obj: str = None, keywords: dict = None, pref_folder: str = None): - # Now replace all keywords - if keywords is not None: - self.keywords = {**self.keywords, **keywords} - - if file_system_obj is not None: - self._raw_file_system_obj = file_system_obj - - if pref_folder is not None: - self.pref_folder = pref_folder - # print(f"Setting pref_folder to {self.pref_folder} for {self.filename}") - - self.file_system_obj = self._raw_file_system_obj - - self._folder_set = False - - self._file = self.file_system_obj - - self._file_full = os.path.join(self.pref_folder, self._file) - - self._abs = os.path.abspath(self._file_full) - - try: - self._rel = os.path.relpath(self._file_full, os.getcwd()) - except: - self._rel = self._abs - - def __str__(self): - return self.relative - - def __repr__(self): - return f"{type(self)}: {self.relative}" diff --git a/src/confighandler/view/old/ConfigViewOld.py b/src/confighandler/view/old/ConfigViewOld.py deleted file mode 100644 index 2aef246d783dc5839cd77c34d37e3fbfea791758..0000000000000000000000000000000000000000 --- a/src/confighandler/view/old/ConfigViewOld.py +++ /dev/null @@ -1,144 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Author(s): Christoph Schmidt <christoph.schmidt@tugraz.at> -Created: 2023-10-19 12:35 -Package Version: 0.0.1 -Description: -""" - -import logging -import sys - -from PySide6.QtGui import QStandardItemModel, QStandardItem -from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QTreeView, QPushButton - -from confighandler.controller.VAutomatorConfig import VAutomatorConfig -from confighandler.controller.GenericConfig import GenericConfig - - -class ConfigViewOld(QWidget): - - def __init__(self, vaut_config: VAutomatorConfig): - super().__init__() - - # Load YAML file - #with open(yaml_file_path, 'r') as f: - self.data = vaut_config - - # Create controller and populate with YAML data - self.model = QStandardItemModel() - self._populate_model(self.model, self.data) - - # Create view and set controller - self.view = QTreeView() - self.view.setModel(self.model) - self.view.expandAll() - - # Connect double-click signal to edit mode - self.view.doubleClicked.connect(self._edit_mode) - - # Create textbox and button for value editing - self.textbox = QLineEdit() - self.button = QPushButton('Update') - self.button.clicked.connect(self._update_value) - - # Create layout and add widgets - self.layout = QVBoxLayout() - self.layout.addWidget(self.view) - self.layout.addWidget(self.textbox) - self.layout.addWidget(self.button) - - # Set widget layout - self.setLayout(self.layout) - - def repopulate(self, data): - - self.data = data - self.model = QStandardItemModel() - self._populate_model(self.model, data) - self.view.setModel(self.model) - - def _populate_model(self, parent, data): - """ - Recursively populate QStandardItemModel with YAML data - """ - if isinstance(data, dict): - for key, value in data.items(): - item = QStandardItem(str(key)) - parent.appendRow(item) - self._populate_model(item, value) - if isinstance(data, GenericConfig): - for key, value in data.__dict__.items(): - item = QStandardItem(str(key)) - parent.appendRow(item) - self._populate_model(item, value) - elif isinstance(data, list): - for value in data: - item = QStandardItem(str(value)) - parent.appendRow(item) - #self._populate_model(item, str(data)) - elif isinstance(data, logging.Logger): - pass - else: - item = QStandardItem(str(data)) - parent.appendRow(item) - - def _edit_mode(self, index): - """ - Enter edit mode when double-clicked on item - """ - self.view.edit(index) - - def _update_value(self): - """ - Update YAML data and controller when button is clicked - """ - # Get selected index - index = self.view.currentIndex() - - # Get new value from textbox - new_value = self.textbox.text() - - # Update YAML data - self._update_data(self.data, index, new_value) - - # Update controller - self.model.clear() - self._populate_model(self.model, self.data) - self.view.expandAll() - - def _update_data(self, data, index, new_value): - """ - Recursively update YAML data - """ - if index.column() == 0: - # Update key - key = index.selected_measurements() - data[new_value] = data.pop(key) - else: - # Update value - parent = index.parent().selected_measurements() - if isinstance(data, dict): - data[parent][index.row()] = new_value - elif isinstance(data, list): - data[parent][index.row()] = new_value - # Recursively update child nodes - for row in range(self.model.rowCount(index)): - child_index = self.model.index(row, 0, index) - self._update_data(data, child_index, new_value) - - - -if __name__ == '__main__': - # Initialize Qt application - app = QApplication(sys.argv) - - vaut = VAutomatorConfig.load_config("./configs/init_config.yaml") - - # Create main window - window = ConfigViewOld(vaut) - window.show() - - # Run Qt event loop - sys.exit(app.exec()) -