pylance standardization
This commit is contained in:
@@ -1,17 +1,20 @@
|
||||
"""
|
||||
Filename: participantimage.py
|
||||
Description: Logic for the Participant Image analysis window
|
||||
Note: Compliant with pylance strict type checking
|
||||
|
||||
Author: Tyler de Zeeuw
|
||||
License: GPL-3.0
|
||||
"""
|
||||
|
||||
# Built-in Imports
|
||||
import os
|
||||
import os.path as op
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
# External library imports
|
||||
from mne.io.base import BaseRaw
|
||||
|
||||
from PySide6.QtWidgets import QGridLayout, QHBoxLayout, QMessageBox, QPushButton, QScrollArea, QWidget, QVBoxLayout, QLabel
|
||||
from PySide6.QtCore import Qt, QSize
|
||||
from PySide6.QtGui import QPixmap
|
||||
@@ -21,7 +24,13 @@ from src.shared.shareddata import APP_NAME
|
||||
|
||||
|
||||
class ParticipantImageViewerWidget(FlaresBaseWidget):
|
||||
def __init__(self, haemo_dict, fig_bytes_dict):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
haemo_dict: dict[str, BaseRaw],
|
||||
fig_bytes_dict: dict[str, dict[str, bytes]]
|
||||
) -> None:
|
||||
|
||||
super().__init__("ParticipantImage")
|
||||
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
||||
self.setWindowTitle(f"Participant Image Viewer - {APP_NAME.upper()}")
|
||||
@@ -29,12 +38,12 @@ class ParticipantImageViewerWidget(FlaresBaseWidget):
|
||||
self.fig_bytes_dict = fig_bytes_dict
|
||||
|
||||
# Create mappings: file_path -> participant label and dropdown display text
|
||||
self.participant_map = {} # file_path -> "Participant 1"
|
||||
self.participant_dropdown_items = [] # "Participant 1 (filename)"
|
||||
self.participant_map: dict[str, str] = {}
|
||||
self.participant_dropdown_items: list[str] = []
|
||||
|
||||
for i, file_path in enumerate(self.haemo_dict.keys(), start=1):
|
||||
short_label = f"Participant {i}"
|
||||
display_label = f"{short_label} ({os.path.basename(file_path)})"
|
||||
display_label = f"{short_label} ({op.basename(file_path)})"
|
||||
self.participant_map[file_path] = short_label
|
||||
self.participant_dropdown_items.append(display_label)
|
||||
|
||||
@@ -87,23 +96,24 @@ class ParticipantImageViewerWidget(FlaresBaseWidget):
|
||||
|
||||
selected_display_names = self._get_checked_items(self.participant_dropdown)
|
||||
# Map from display names back to file paths
|
||||
selected_file_paths = []
|
||||
selected_file_paths: list[str] = []
|
||||
for display_name in selected_display_names:
|
||||
# Find file_path by matching display name
|
||||
for fp, short_label in self.participant_map.items():
|
||||
expected_display = f"{short_label} ({os.path.basename(fp)})"
|
||||
expected_display = f"{short_label} ({Path(fp).name})"
|
||||
if display_name == expected_display:
|
||||
selected_file_paths.append(fp)
|
||||
selected_file_paths.append(str(fp))
|
||||
break
|
||||
|
||||
selected_labels = self._get_checked_items(self.image_index_dropdown)
|
||||
|
||||
row, col = 0, 0
|
||||
for file_path in selected_file_paths:
|
||||
fig_list = self.fig_bytes_dict.get(file_path, [])
|
||||
participant_label = self.participant_map[file_path]
|
||||
fig_map: dict[str, bytes] = self.fig_bytes_dict.get(file_path, {})
|
||||
participant_label: str = self.participant_map.get(file_path, "Unknown")
|
||||
|
||||
for label in selected_labels:
|
||||
fig_bytes = fig_list.get(label)
|
||||
fig_bytes: bytes | None = fig_map.get(label)
|
||||
if not fig_bytes:
|
||||
continue
|
||||
|
||||
@@ -149,7 +159,7 @@ class ParticipantImageViewerWidget(FlaresBaseWidget):
|
||||
for display_name in selected_display_names:
|
||||
# Match display name to file path
|
||||
for file_path, short_label in self.participant_map.items():
|
||||
expected_display = f"{short_label} ({os.path.basename(file_path)})"
|
||||
expected_display = f"{short_label} ({op.basename(file_path)})"
|
||||
if display_name == expected_display:
|
||||
fig_dict = self.fig_bytes_dict.get(file_path, {})
|
||||
for label in selected_image_labels:
|
||||
@@ -157,7 +167,7 @@ class ParticipantImageViewerWidget(FlaresBaseWidget):
|
||||
continue
|
||||
fig_bytes = fig_dict[label]
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
filename = f"{os.path.basename(file_path)}_{label}_{timestamp}.png"
|
||||
filename = f"{op.basename(file_path)}_{label}_{timestamp}.png"
|
||||
output_path = save_dir / filename
|
||||
with open(output_path, "wb") as f:
|
||||
f.write(fig_bytes)
|
||||
|
||||
Reference in New Issue
Block a user