From c8b4762747b0115dbe2ed76d9469877010a419b8 Mon Sep 17 00:00:00 2001 From: lwark Date: Thu, 4 Sep 2025 15:01:02 -0500 Subject: [PATCH] Code cleanup for managers complete. --- src/submissions/backend/managers/__init__.py | 13 ++++-------- .../backend/managers/clientsubmissions.py | 17 +++++----------- .../backend/managers/procedures.py | 20 +++++-------------- .../backend/managers/results/__init__.py | 7 +++---- .../managers/results/pcr_results_manager.py | 12 ++--------- src/submissions/backend/managers/runs.py | 18 +++++------------ 6 files changed, 24 insertions(+), 63 deletions(-) diff --git a/src/submissions/backend/managers/__init__.py b/src/submissions/backend/managers/__init__.py index e0b53e8..9ce0ad5 100644 --- a/src/submissions/backend/managers/__init__.py +++ b/src/submissions/backend/managers/__init__.py @@ -1,8 +1,8 @@ +""" +Module for manager defaults. +""" import logging from pathlib import Path -from typing import Literal - -from backend.db.models import ProcedureType from frontend.widgets.functions import select_open_file from tools import get_application_from_parent from backend.validators.pydant import PydBaseClass @@ -13,7 +13,6 @@ logger = logging.getLogger(f"submissions.{__name__}") class DefaultManager(object): def __init__(self, parent, input_object: Path | str | None = None): - logger.debug(f"FName before correction: {type(input_object)}") self.parent = parent match input_object: case str(): @@ -23,19 +22,15 @@ class DefaultManager(object): self.input_object = input_object self.pyd = self.to_pydantic() case x if issubclass(input_object.__class__, PydBaseClass): - # logger.debug("Subclass of PydBaseClass") self.pyd = input_object case x if issubclass(input_object.__class__, BaseClass): - # logger.debug("Subclass of BaseClass") self.pyd = input_object.to_pydantic() case _: self.input_object = select_open_file(file_extension="xlsx", obj=get_application_from_parent(parent)) self.pyd = self.to_pydantic() - # logger.debug(f"FName after correction: {input_object}") - from .clientsubmissions import DefaultClientSubmissionManager from .procedures import DefaultProcedureManager from .results import DefaultResultsManager -from .runs import DefaultRunManager \ No newline at end of file +from .runs import DefaultRunManager diff --git a/src/submissions/backend/managers/clientsubmissions.py b/src/submissions/backend/managers/clientsubmissions.py index 8345993..2d03eb8 100644 --- a/src/submissions/backend/managers/clientsubmissions.py +++ b/src/submissions/backend/managers/clientsubmissions.py @@ -1,9 +1,10 @@ +""" +Module for manager of ClientSubmission object +""" from __future__ import annotations -import logging -import sys +import logging, sys from typing import TYPE_CHECKING from pathlib import Path -from openpyxl.reader.excel import load_workbook from openpyxl.workbook import Workbook from backend.validators import RSLNamer from backend.managers import DefaultManager @@ -42,24 +43,16 @@ class DefaultClientSubmissionManager(DefaultManager): self.sample_parser = ClientSubmissionSampleParser(filepath=self.input_object, submissiontype=self.submissiontype, start_row=self.info_parser.end_row) - logger.debug(self.sample_parser.__dict__) self.clientsubmission = self.info_parser.to_pydantic() self.clientsubmission.full_batch_size = self.sample_parser.end_row - self.sample_parser.start_row self.clientsubmission.sample = self.sample_parser.to_pydantic() return self.clientsubmission - # def to_pydantic(self): - # self.clientsubmission = self.info_parser.to_pydantic() - # self.clientsubmission.sample = self.sample_parser.to_pydantic() - def write(self, workbook: Workbook) -> Workbook: - # workbook: Workbook = load_workbook(BytesIO(self.submissiontype.template_file)) - self.info_writer = ClientSubmissionInfoWriter(pydant_obj=self.pyd) assert isinstance(self.info_writer, ClientSubmissionInfoWriter) - logger.debug("Attempting write.") workbook = self.info_writer.write_to_workbook(workbook) self.sample_writer = ClientSubmissionSampleWriter(pydant_obj=self.pyd) workbook = self.sample_writer.write_to_workbook(workbook, start_row=self.info_writer.worksheet.max_row + 1) - return workbook \ No newline at end of file + return workbook diff --git a/src/submissions/backend/managers/procedures.py b/src/submissions/backend/managers/procedures.py index f6027c4..946775a 100644 --- a/src/submissions/backend/managers/procedures.py +++ b/src/submissions/backend/managers/procedures.py @@ -1,12 +1,10 @@ +""" +Module for manager of Procedure object. +""" from __future__ import annotations -import logging -from io import BytesIO -from pprint import pformat - -from openpyxl.reader.excel import load_workbook +import logging, sys from openpyxl.workbook import Workbook - -from backend.managers import DefaultManager, results +from backend.managers import DefaultManager from typing import TYPE_CHECKING from pathlib import Path from backend.excel.parsers import procedure_parsers @@ -57,7 +55,6 @@ class DefaultProcedureManager(DefaultManager): self.equipment = self.equipment_parser.to_pydantic() def write(self, workbook: Workbook) -> Workbook: - # workbook = load_workbook(BytesIO(self.proceduretype.template_file)) try: info_writer = getattr(procedure_writers, f"{self.proceduretype.name.replace(' ', '')}InfoWriter") except AttributeError: @@ -82,16 +79,9 @@ class DefaultProcedureManager(DefaultManager): sample_writer = procedure_writers.ProcedureSampleWriter self.sample_writer = sample_writer(pydant_obj=self.pyd) workbook = self.sample_writer.write_to_workbook(workbook) - # # logger.debug(self.pyd.result) # # TODO: Find way to group results by result_type. for result in self.pyd.result: - logger.debug(f"Writing {result.result_type}") Writer = getattr(results_writers, f"{result.result_type}InfoWriter") res_info_writer = Writer(pydant_obj=result, proceduretype=self.proceduretype) workbook = res_info_writer.write_to_workbook(workbook=workbook) - # # sample_results = [sample.result for sample in self.pyd.sample] - # # logger.debug(pformat(self.pyd.sample_results)) - # Writer = getattr(results_writers, "PCRSampleWriter") - # res_sample_writer = Writer(pydant_obj=self.pyd.sample_results, proceduretype=self.proceduretype) - # workbook = res_sample_writer.write_to_workbook(workbook=workbook) return workbook diff --git a/src/submissions/backend/managers/results/__init__.py b/src/submissions/backend/managers/results/__init__.py index 2ed2d55..46a7ca6 100644 --- a/src/submissions/backend/managers/results/__init__.py +++ b/src/submissions/backend/managers/results/__init__.py @@ -1,4 +1,6 @@ - +""" +Module for default results manager +""" from __future__ import annotations import logging from .. import DefaultManager @@ -7,7 +9,6 @@ from pathlib import Path from frontend.widgets.functions import select_open_file from tools import get_application_from_parent from typing import TYPE_CHECKING, List - if TYPE_CHECKING: from backend.validators.pydant import PydResults @@ -17,13 +18,11 @@ logger = logging.getLogger(f"submission.{__name__}") class DefaultResultsManager(DefaultManager): def __init__(self, procedure: Procedure, parent, fname: Path | str | None = None): - logger.debug(f"FName before correction: {fname}") self.procedure = procedure if not fname: self.fname = select_open_file(file_extension="xlsx", obj=get_application_from_parent(parent)) elif isinstance(fname, str): self.fname = Path(fname) - logger.debug(f"FName after correction: {fname}") def procedure_to_pydantic(self) -> PydResults: info = self.info_parser.to_pydantic() diff --git a/src/submissions/backend/managers/results/pcr_results_manager.py b/src/submissions/backend/managers/results/pcr_results_manager.py index fe81122..042d4ab 100644 --- a/src/submissions/backend/managers/results/pcr_results_manager.py +++ b/src/submissions/backend/managers/results/pcr_results_manager.py @@ -1,14 +1,12 @@ """ - +Module for pcr results from Design and Analysis Studio """ from __future__ import annotations import logging from io import BytesIO from pathlib import Path -from typing import Tuple, List, TYPE_CHECKING - +from typing import TYPE_CHECKING from openpyxl.reader.excel import load_workbook - from backend.db.models import Procedure from backend.excel.parsers.results_parsers.pcr_results_parser import PCRSampleParser, PCRInfoParser from backend.excel.writers.results_writers.pcr_results_writer import PCRInfoWriter, PCRSampleWriter @@ -33,9 +31,3 @@ class PCRManager(DefaultResultsManager): self.info_writer = PCRInfoWriter(pydant_obj=self.procedure.to_pydantic(), proceduretype=self.procedure.proceduretype) workbook = self.info_writer.write_to_workbook(workbook) self.sample_writer = PCRSampleWriter(pydant_obj=self.procedure.to_pydantic(), proceduretype=self.procedure.proceduretype) - - - - - - diff --git a/src/submissions/backend/managers/runs.py b/src/submissions/backend/managers/runs.py index 99b8727..2bb1de1 100644 --- a/src/submissions/backend/managers/runs.py +++ b/src/submissions/backend/managers/runs.py @@ -1,13 +1,10 @@ +""" +Module for managing Runs object +""" from __future__ import annotations -import logging -from pathlib import Path +import logging, sys from pprint import pformat - -from openpyxl import load_workbook from openpyxl.workbook.workbook import Workbook -from tools import copy_xl_sheet - - from backend.managers import DefaultManager logger = logging.getLogger(f"submissions.{__name__}") @@ -16,16 +13,11 @@ class DefaultRunManager(DefaultManager): def write(self) -> Workbook: from backend.managers import DefaultClientSubmissionManager, DefaultProcedureManager - logger.debug(f"Initializing write") + logger.info(f"Initializing write") clientsubmission = DefaultClientSubmissionManager(parent=self.parent, input_object=self.pyd.clientsubmission, submissiontype=self.pyd.clientsubmission.submissiontype) workbook = Workbook() workbook = clientsubmission.write(workbook=workbook) for procedure in self.pyd.procedure: - # # logger.debug(f"Running procedure: {pformat(procedure.__dict__)}") procedure = DefaultProcedureManager(proceduretype=procedure.proceduretype, parent=self.parent, input_object=procedure) workbook: Workbook = procedure.write(workbook=workbook) - # for sheetname in wb.sheetnames: - # source_sheet = wb[sheetname] - # ws = workbook.create_sheet(sheetname) - # copy_xl_sheet(source_sheet, ws) return workbook