From 9813aa67679a7b01ff9ed54ee6b44b6d3fcf5004 Mon Sep 17 00:00:00 2001 From: Jeroen Van Goey Date: Wed, 12 Aug 2026 08:34:44 +0200 Subject: [PATCH 1/2] Fix PointNovo loader initialization on Python 3.10 --- winnow/datasets/data_loaders/pointnovo.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/winnow/datasets/data_loaders/pointnovo.py b/winnow/datasets/data_loaders/pointnovo.py index 8c5fb8b..db10253 100644 --- a/winnow/datasets/data_loaders/pointnovo.py +++ b/winnow/datasets/data_loaders/pointnovo.py @@ -3,7 +3,7 @@ from __future__ import annotations from pathlib import Path -from typing import Any, Optional +from typing import Any, Optional, Tuple from winnow.datasets.calibration_dataset import CalibrationDataset from winnow.datasets.interfaces import DatasetLoader @@ -15,6 +15,20 @@ class PointNovoDatasetLoader(DatasetLoader): Note: This loader is not yet implemented. """ + def __init__( + self, + residue_masses: dict[str, float], + residue_remapping: Optional[dict[str, str]] = None, + isotope_error_range: Tuple[int, int] = (0, 1), + ) -> None: + """Initialise the loader with the common dataset-loader options. + + The loader does not use these options until PointNovo support is implemented, + but defining the initializer makes this a concrete implementation of the + ``DatasetLoader`` protocol on Python 3.10. + """ + del residue_masses, residue_remapping, isotope_error_range + def load( self, *, data_path: Path, predictions_path: Optional[Path] = None, **kwargs: Any ) -> CalibrationDataset: From 6db3c156db4b0c4f091c0cec7680948af948f372 Mon Sep 17 00:00:00 2001 From: Jeroen Van Goey Date: Fri, 14 Aug 2026 11:58:36 +0200 Subject: [PATCH 2/2] Modernize PointNovo type hints --- winnow/datasets/data_loaders/pointnovo.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/winnow/datasets/data_loaders/pointnovo.py b/winnow/datasets/data_loaders/pointnovo.py index db10253..c8b0041 100644 --- a/winnow/datasets/data_loaders/pointnovo.py +++ b/winnow/datasets/data_loaders/pointnovo.py @@ -3,7 +3,7 @@ from __future__ import annotations from pathlib import Path -from typing import Any, Optional, Tuple +from typing import Any from winnow.datasets.calibration_dataset import CalibrationDataset from winnow.datasets.interfaces import DatasetLoader @@ -18,8 +18,8 @@ class PointNovoDatasetLoader(DatasetLoader): def __init__( self, residue_masses: dict[str, float], - residue_remapping: Optional[dict[str, str]] = None, - isotope_error_range: Tuple[int, int] = (0, 1), + residue_remapping: dict[str, str] | None = None, + isotope_error_range: tuple[int, int] = (0, 1), ) -> None: """Initialise the loader with the common dataset-loader options. @@ -30,7 +30,7 @@ def __init__( del residue_masses, residue_remapping, isotope_error_range def load( - self, *, data_path: Path, predictions_path: Optional[Path] = None, **kwargs: Any + self, *, data_path: Path, predictions_path: Path | None = None, **kwargs: Any ) -> CalibrationDataset: """Load a calibration dataset from PointNovo predictions.""" raise NotImplementedError("PointNovoDatasetLoader is not yet implemented")