Beginning prelim code cleanup.
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user