Refactor imports and improve logging in multiple modules; streamline type hints and remove redundant code

This commit is contained in:
William Valentin
2025-07-28 12:37:43 -07:00
parent 8e03f105b0
commit 8a0b4fcdf2
7 changed files with 71 additions and 78 deletions
+14 -12
View File
@@ -1,15 +1,16 @@
import os
import sys
import tkinter as tk
from collections.abc import Callable
from tkinter import messagebox
from typing import Dict, List, Tuple, Any, Callable, Union
from typing import Any
import pandas as pd
from init import logger
from constants import LOG_LEVEL, LOG_PATH
from data_manager import DataManager
from graph_manager import GraphManager
from init import logger
from ui_manager import UIManager
@@ -31,7 +32,8 @@ class MedTrackerApp:
logger.info(f"Using data file: {first_argument}")
else:
logger.warning(
f"Data file {first_argument} does not exist. Using default file: {self.filename}"
f"Data file {first_argument} doesn't exist. \
Using default file: {self.filename}"
)
if LOG_LEVEL == "DEBUG":
@@ -75,10 +77,10 @@ class MedTrackerApp:
self.graph_manager: GraphManager = GraphManager(graph_frame)
# --- Create Input Frame ---
input_ui: Dict[str, Any] = self.ui_manager.create_input_frame(main_frame)
input_ui: dict[str, Any] = self.ui_manager.create_input_frame(main_frame)
self.input_frame: ttk.Frame = input_ui["frame"]
self.symptom_vars: Dict[str, tk.IntVar] = input_ui["symptom_vars"]
self.medicine_vars: Dict[str, List[Union[tk.IntVar, ttk.Spinbox]]] = input_ui[
self.symptom_vars: dict[str, tk.IntVar] = input_ui["symptom_vars"]
self.medicine_vars: dict[str, list[tk.IntVar | ttk.Spinbox]] = input_ui[
"medicine_vars"
]
self.note_var: tk.StringVar = input_ui["note_var"]
@@ -99,7 +101,7 @@ class MedTrackerApp:
)
# --- Create Table Frame ---
table_ui: Dict[str, Any] = self.ui_manager.create_table_frame(main_frame)
table_ui: dict[str, Any] = self.ui_manager.create_table_frame(main_frame)
self.tree: ttk.Treeview = table_ui["tree"]
self.tree.bind("<Double-1>", self.on_double_click)
@@ -115,10 +117,10 @@ class MedTrackerApp:
logger.debug(f"Editing item_id={item_id}, values={item_values}")
self._create_edit_window(item_id, item_values)
def _create_edit_window(self, item_id: str, values: Tuple[str, ...]) -> None:
def _create_edit_window(self, item_id: str, values: tuple[str, ...]) -> None:
"""Create a new Toplevel window for editing an entry."""
# Define callbacks for edit window buttons
callbacks: Dict[str, Callable] = {
callbacks: dict[str, Callable] = {
"save": self._save_edit,
"delete": lambda win: self._delete_entry(win, item_id),
}
@@ -141,7 +143,7 @@ class MedTrackerApp:
note: str,
) -> None:
"""Save the edited data to the CSV file."""
values: List[Union[str, int]] = [
values: list[str | int] = [
date,
dep,
anx,
@@ -173,7 +175,7 @@ class MedTrackerApp:
def add_entry(self) -> None:
"""Add a new entry to the CSV file."""
entry: List[Union[str, int]] = [
entry: list[str | int] = [
self.date_var.get(),
self.symptom_vars["depression"].get(),
self.symptom_vars["anxiety"].get(),
@@ -240,7 +242,7 @@ class MedTrackerApp:
# Update the treeview with the data
if not df.empty:
for index, row in df.iterrows():
for _index, row in df.iterrows():
self.tree.insert(parent="", index="end", values=list(row))
logger.debug(f"Loaded {len(df)} entries into treeview.")