From 942c46e8b2b398eea2a834f19d209debb4b91ae0 Mon Sep 17 00:00:00 2001 From: lwark Date: Fri, 7 Mar 2025 10:36:27 -0600 Subject: [PATCH] Beginning prelim code cleanup. --- src/submissions/backend/db/models/__init__.py | 9 +--- .../backend/validators/omni_gui_objects.py | 13 +----- .../frontend/widgets/omni_manager_pydant.py | 42 +------------------ 3 files changed, 3 insertions(+), 61 deletions(-) diff --git a/src/submissions/backend/db/models/__init__.py b/src/submissions/backend/db/models/__init__.py index db91ab0..8dc93ae 100644 --- a/src/submissions/backend/db/models/__init__.py +++ b/src/submissions/backend/db/models/__init__.py @@ -8,7 +8,7 @@ from pydantic import BaseModel from sqlalchemy import Column, INTEGER, String, JSON from sqlalchemy.orm import DeclarativeMeta, declarative_base, Query, Session, InstrumentedAttribute, ColumnProperty from sqlalchemy.ext.declarative import declared_attr -from sqlalchemy.exc import ArgumentError, InvalidRequestError +from sqlalchemy.exc import ArgumentError from typing import Any, List from pathlib import Path @@ -156,9 +156,6 @@ class BaseClass(Base): Any: Subclass of this object """ - # if not name: - # logger.warning("You need to include a name of what you're looking for.") - # return cls if " " in name: search = name.title().replace(" ", "") else: @@ -343,7 +340,6 @@ class BaseClass(Base): """ logger.debug(f"Incoming attributes: {attributes}") for key, value in attributes.items(): - # print(getattr(self.__class__, key).property) if value.lower() == "none": value = None logger.debug(f"Attempting to grab attribute: {key}") @@ -355,7 +351,6 @@ class BaseClass(Base): else: filter = class_attr.property match filter: - # match class_attr: case ColumnProperty(): match class_attr.type: case INTEGER(): @@ -397,8 +392,6 @@ class BaseClass(Base): """ Custom dunder method to handle potential list relationship issues. """ - # if key != "_sa_instance_state": - # logger.debug(f"Attempting to set {key} to {pformat(value)}") try: field_type = getattr(self.__class__, key) except AttributeError: diff --git a/src/submissions/backend/validators/omni_gui_objects.py b/src/submissions/backend/validators/omni_gui_objects.py index afda72f..6618803 100644 --- a/src/submissions/backend/validators/omni_gui_objects.py +++ b/src/submissions/backend/validators/omni_gui_objects.py @@ -1,7 +1,5 @@ from __future__ import annotations -import logging -import sys - +import logging, sys from pydantic import BaseModel, field_validator, Field from typing import List, ClassVar from backend.db.models import * @@ -37,7 +35,6 @@ class BaseOmni(BaseModel): """ logger.debug(f"Incoming attributes: {attributes}") for key, value in attributes.items(): - # print(getattr(self.__class__, key).property) if value.lower() == "none": value = None logger.debug(f"Attempting to grab attribute: {key}") @@ -127,7 +124,6 @@ class BaseOmni(BaseModel): if issubclass(value.__class__, self.__class__): value = value.to_sql() value = [value] - # value = list(set(value)) logger.debug(f"Final value for {key}: {value}") return super().__setattr__(key, value) else: @@ -243,7 +239,6 @@ class OmniSubmissionTypeKitTypeAssociation(BaseOmni): mutable_cost_column: float = Field(default=0.0, description="property") mutable_cost_sample: float = Field(default=0.0, description="property") constant_cost: float = Field(default=0.0, description="property") - # processes: List[OmniProcess] | List[str] = Field(default=[], description="relationship", title="Process") def __repr__(self): if isinstance(self.submissiontype, str): @@ -313,7 +308,6 @@ class OmniSubmissionTypeKitTypeAssociation(BaseOmni): else: kittype = KitType.query(name=self.kittype) # logger.debug(f"Self kittype: {self.kittype}") - # kittype = KitType.query(name=self.kittype) logger.debug(f"Query or create with {kittype}, {submissiontype}") instance, is_new = self.class_object.query_or_create(kittype=kittype, submissiontype=submissiontype) instance.mutable_cost_column = self.mutable_cost_column @@ -352,7 +346,6 @@ class OmniKitTypeReagentRoleAssociation(BaseOmni): kit_type = self.kit_type.name else: kit_type = self.kit_type - # name = f"{kit_type} -> {self.reagent_role}" # logger.debug(f"Using name: {name}") if isinstance(self.reagent_role, OmniReagentRole): reagent_role = self.reagent_role.name @@ -360,7 +353,6 @@ class OmniKitTypeReagentRoleAssociation(BaseOmni): reagent_role = self.reagent_role return dict( reagent_role=reagent_role, - # name=self.reagent_role.name, submission_type=submission_type, kit_type=kit_type ) @@ -381,7 +373,6 @@ class OmniKitTypeReagentRoleAssociation(BaseOmni): logger.debug(f"KTRRAssoc uses: {self.uses}") instance.uses = self.uses logger.debug(f"KitTypeReagentRoleAssociation: {pformat(instance.__dict__)}") - return instance @@ -464,8 +455,6 @@ class OmniTipRole(BaseOmni): instance, new = self.class_object.query_or_create(name=self.name) for tips in self.tips: tips.to_sql() - # if new_assoc not in instance.instances: - # instance.instances.append(new_assoc) return instance diff --git a/src/submissions/frontend/widgets/omni_manager_pydant.py b/src/submissions/frontend/widgets/omni_manager_pydant.py index a41c2b6..bc40ddb 100644 --- a/src/submissions/frontend/widgets/omni_manager_pydant.py +++ b/src/submissions/frontend/widgets/omni_manager_pydant.py @@ -1,8 +1,7 @@ """ Provides a screen for managing all attributes of a database object. """ -import json, logging -import sys +import json, logging, sys from json.decoder import JSONDecodeError from datetime import datetime, timedelta from pprint import pformat @@ -108,7 +107,6 @@ class ManagerWindow(QDialog): self.options.setEditable(False) self.options.setMinimumWidth(self.minimumWidth()) self.layout.addWidget(self.options, 1, 0, 1, 1) - # if len(options) > 0: self.add_button = QPushButton("Add New") self.layout.addWidget(self.add_button, 1, 1, 1, 1) self.add_button.clicked.connect(self.add_new) @@ -191,7 +189,6 @@ class ManagerWindow(QDialog): results = [item.parse_form() for item in self.findChildren(EditRelationship)] for result in results: logger.debug(f"Incoming relationship result: {result}") - # if not getattr(self.omni_object, result['field']): setattr(self.omni_object, result['field'], result['value']) # logger.debug(f"Set result: {getattr(self.omni_object, result['field'])}") # logger.debug(f"Instance coming from parsed form: {self.omni_object.__dict__}") @@ -242,8 +239,6 @@ class EditProperty(QWidget): self.widget.setValue(value.days) case dict(): self.widget = JsonEditButton(parent=self, key=key, value=value) - # self.widget.viewButton.clicked.connect(lambda: self.parent().toggle_textedit(self.widget)) - # self.widget.addButton.clicked.connect(lambda: self.parent().add_to_json(self.widget)) case bytes(): self.widget = QLabel("BLOB Under construction") case _: @@ -281,19 +276,12 @@ class EditRelationship(QWidget): self.label = QLabel(key.title().replace("_", " ")) self.setObjectName(key) #: key is the name of the relationship this represents logger.debug(f"Checking relationship for {self.parent().class_object}: {key}") - # try: - # self.relationship = getattr(self.parent().instance.__class__, key) self.relationship = getattr(self.parent().class_object, key) - #: relationship object for type differentiation - # except AttributeError: - # logger.warning(f"Could not get relationship for: {key}.") - # self.relationship = None self.widget = QTableView() self.add_button = QPushButton("Add New") self.add_button.clicked.connect(self.add_new) self.existing_button = QPushButton("Add Existing") self.existing_button.clicked.connect(self.add_existing) - # self.existing_button.setEnabled(self.class_object.level == 1) if not isinstance(value, list): if value not in [None, ""]: value = [value] @@ -305,15 +293,6 @@ class EditRelationship(QWidget): logger.debug(f"Parent manager: {self.parent().manager}") checked_manager, is_primary = check_object_in_manager(self.parent().manager, self.objectName()) if checked_manager: - logger.debug(f"Checked manager for {self.objectName()}: {checked_manager}") - # logger.debug(f"Omni will inherit: {self.class_object.omni_inheritable} from {self.parent().class_object}") - # if checked_manager is not None:# and not self.data:# and self.objectName() in self.parent().class_object.omni_inheritable: - # # logger.debug(f"Setting {checked_manager} in self.data") - # # if isinstance(checked_manager, InstrumentedList): - # # self.data = [item.to_omni() for item in checked_manager] - # # else: - # # self.data = [checked_manager.to_omni()] - # self.data = [checked_manager] if not self.data: self.data = [checked_manager] try: @@ -367,7 +346,6 @@ class EditRelationship(QWidget): # logger.debug(f"Creating manager window for {instance}") manager = self.parent().manager # logger.debug(f"Managers going into add new: {managers}") - # dlg = ManagerWindow(self.parent(), object_type=instance.__class__, extras=[], manager=manager, add_edit="add") dlg = ManagerWindow(self.parent(), instance=instance, extras=[], manager=manager, add_edit=add_edit) if dlg.exec(): new_instance = dlg.parse_form() @@ -378,7 +356,6 @@ class EditRelationship(QWidget): else: instance.__dict__.update(new_instance.__dict__) logger.debug(f"Final instance: {pformat(instance.__dict__)}") - # self.parent().instance.save() self.parent().update_data() def add_existing(self): @@ -392,7 +369,6 @@ class EditRelationship(QWidget): if isinstance(instance, list): instance = instance[0] self.parent().omni_object.__setattr__(self.objectName(), instance.to_omni()) - # self.parent().instance.save() self.parent().update_data() def set_data(self) -> None: @@ -401,7 +377,6 @@ class EditRelationship(QWidget): """ # logger.debug(f"Self.data: {self.data}") try: - # records = [{k: v['instance_attr'] for k, v in item.omnigui_instance_dict.items()} for item in self.data] records = [item.to_dataframe_dict() for item in self.data] except AttributeError: records = [] @@ -423,7 +398,6 @@ class EditRelationship(QWidget): self.widget.resizeRowsToContents() self.widget.setSortingEnabled(True) self.widget.doubleClicked.connect(self.parse_row) - # self.update_buttons() def contextMenuEvent(self, event): """ @@ -469,18 +443,8 @@ class EditRelationship(QWidget): def remove_item(self, object): logger.debug(f"Attempting to remove {object} from {self.parent().instance.__dict__}") - # editor = getattr(self.parent().instance, self.objectName().lower()) editor = getattr(self.parent().omni_object, self.objectName().lower()) logger.debug(f"Editor: {editor}") - # if object == self.parent().manager: - # logger.error(f"Can't remove manager object.") - # return - # logger.debug(f"Object: {object}") - # try: - # self.data.remove(object) - # except (AttributeError, ValueError) as e: - # logger.error(f"Couldn't remove object from self.data due to: {e}") - # self.data = [] try: # logger.debug(f"Using remove technique") editor.remove(object) @@ -492,8 +456,6 @@ class EditRelationship(QWidget): logger.debug(f"Setting {self.objectName()} to {editor}") setattr(self.parent().omni_object, self.objectName().lower(), editor) logger.debug(f"After set: {getattr(self.parent().omni_object, self.objectName().lower())}") - # self.parent().instance.save() - # self.parent().update_data() self.set_data() self.update_buttons() @@ -551,7 +513,6 @@ class JsonEditButton(QWidget): def toggle_textedit(self): self.edit_box.setVisible(not self.edit_box.isVisible()) - # data = getattr(self.omni_object, name) # logger.debug(f"Data: {data}") data = json.dumps(self.data, indent=4) self.edit_box.widget.setText(data) @@ -624,7 +585,6 @@ class JsonEditScreen(QDialog): output.append(value) else: raise ValueError(f"Inappropriate data type: {type(self.json_field)}") - # output[key] = value return output