changes to macos misbehaving

This commit is contained in:
2025-08-19 14:59:59 -07:00
parent b3470e6c96
commit 41c507e721

61
main.py
View File

@@ -23,8 +23,10 @@ from datetime import datetime
from multiprocessing import Process, current_process, freeze_support, Manager from multiprocessing import Process, current_process, freeze_support, Manager
# External library imports # External library imports
import mne
import psutil import psutil
import requests import requests
from mne.preprocessing.nirs import source_detector_distances
from PySide6.QtWidgets import ( from PySide6.QtWidgets import (
QApplication, QWidget, QMessageBox, QVBoxLayout, QHBoxLayout, QTextEdit, QScrollArea, QComboBox, QGridLayout, QApplication, QWidget, QMessageBox, QVBoxLayout, QHBoxLayout, QTextEdit, QScrollArea, QComboBox, QGridLayout,
QPushButton, QMainWindow, QFileDialog, QLabel, QLineEdit, QFrame, QSizePolicy, QGroupBox QPushButton, QMainWindow, QFileDialog, QLabel, QLineEdit, QFrame, QSizePolicy, QGroupBox
@@ -1172,7 +1174,7 @@ class MainApplication(QMainWindow):
Full Path: {file_path} Full Path: {file_path}
""" """
if "Error" in snirf_info: if snirf_info is None:
info += f"\nSNIRF Metadata could not be loaded: {snirf_info['Error']}" info += f"\nSNIRF Metadata could not be loaded: {snirf_info['Error']}"
else: else:
info += "\nSNIRF Metadata:\n" info += "\nSNIRF Metadata:\n"
@@ -1544,37 +1546,44 @@ class MainApplication(QMainWindow):
return (normalize(v1) > normalize(v2)) - (normalize(v1) < normalize(v2)) return (normalize(v1) > normalize(v2)) - (normalize(v1) < normalize(v2))
def get_snirf_metadata_mne(self, file_name): def get_snirf_metadata_mne(self, file_name):
import mne
from mne.preprocessing.nirs import source_detector_distances
raw = mne.io.read_raw_snirf(file_name, preload=True) try:
import h5py
print("h5py version:", h5py.__version__)
except Exception as e:
print("Failed to import h5py:", e)
snirf_info = {} try:
raw = mne.io.read_raw_snirf(file_name, preload=True)
# Measurement date snirf_info = {}
snirf_info['Measurement Date'] = str(raw.info.get('meas_date'))
# Source-detector distances # Measurement date
distances = source_detector_distances(raw.info) snirf_info['Measurement Date'] = str(raw.info.get('meas_date'))
distance_info = []
for ch_name, dist in zip(raw.info['ch_names'], distances):
distance_info.append(f"{ch_name}: {dist:.4f} m")
snirf_info['Source-Detector Distances'] = distance_info
# Digitization points / optode positions # Source-detector distances
dig = raw.info.get('dig', None) distances = source_detector_distances(raw.info)
if dig is not None: distance_info = []
dig_info = [] for ch_name, dist in zip(raw.info['ch_names'], distances):
for point in dig: distance_info.append(f"{ch_name}: {dist:.4f} m")
kind = point['kind'] snirf_info['Source-Detector Distances'] = distance_info
ident = point['ident']
coord = point['r']
dig_info.append(f"Kind: {kind}, ID: {ident}, Coord: {coord}")
snirf_info['Digitization Points'] = dig_info
else:
snirf_info['Digitization Points'] = "Not found"
return snirf_info # Digitization points / optode positions
dig = raw.info.get('dig', None)
if dig is not None:
dig_info = []
for point in dig:
kind = point['kind']
ident = point['ident']
coord = point['r']
dig_info.append(f"Kind: {kind}, ID: {ident}, Coord: {coord}")
snirf_info['Digitization Points'] = dig_info
else:
snirf_info['Digitization Points'] = "Not found"
return snirf_info
except:
return None
def closeEvent(self, event): def closeEvent(self, event):