masster 0.4.6__py3-none-any.whl → 0.4.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of masster might be problematic. Click here for more details.
- masster/_version.py +1 -1
- masster/logger.py +8 -8
- masster/sample/h5.py +3 -3
- masster/sample/load.py +2 -2
- masster/sample/sample.py +2 -2
- masster/study/export.py +1 -1
- masster/study/h5.py +3 -3
- masster/study/helpers.py +330 -137
- masster/study/load.py +1 -1
- masster/study/processing.py +2 -2
- masster/study/study.py +2 -2
- masster-0.4.9.dist-info/METADATA +788 -0
- {masster-0.4.6.dist-info → masster-0.4.9.dist-info}/RECORD +16 -22
- {masster-0.4.6.dist-info → masster-0.4.9.dist-info}/WHEEL +1 -2
- masster/data/libs/__pycache__/ccm.cpython-312.pyc +0 -0
- masster/data/libs/__pycache__/urine.cpython-312.pyc +0 -0
- masster/lib/__init__.py +0 -9
- masster/lib/lib.py +0 -598
- masster/study/helpers_optimized.py +0 -359
- masster-0.4.6.dist-info/METADATA +0 -131
- masster-0.4.6.dist-info/top_level.txt +0 -1
- {masster-0.4.6.dist-info → masster-0.4.9.dist-info}/entry_points.txt +0 -0
- {masster-0.4.6.dist-info → masster-0.4.9.dist-info}/licenses/LICENSE +0 -0
masster/_version.py
CHANGED
masster/logger.py
CHANGED
|
@@ -25,7 +25,7 @@ import datetime
|
|
|
25
25
|
from typing import Any
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
class
|
|
28
|
+
class MassterLogger:
|
|
29
29
|
"""Simple logger wrapper for Study/Sample instances.
|
|
30
30
|
Each instance gets its own Python logger to avoid conflicts.
|
|
31
31
|
|
|
@@ -74,7 +74,7 @@ class MasterLogger:
|
|
|
74
74
|
self.handler = logging.StreamHandler(self.sink)
|
|
75
75
|
|
|
76
76
|
# Create formatter that matches the original masster style
|
|
77
|
-
class
|
|
77
|
+
class massterFormatter(logging.Formatter):
|
|
78
78
|
def __init__(self, label):
|
|
79
79
|
super().__init__()
|
|
80
80
|
self.label = label
|
|
@@ -124,7 +124,7 @@ class MasterLogger:
|
|
|
124
124
|
f"{level_color}{record.getMessage()}\x1b[0m"
|
|
125
125
|
) # colored message
|
|
126
126
|
|
|
127
|
-
self.handler.setFormatter(
|
|
127
|
+
self.handler.setFormatter(massterFormatter(self.label))
|
|
128
128
|
self.logger_instance.addHandler(self.handler)
|
|
129
129
|
|
|
130
130
|
# Prevent propagation to avoid duplicate messages
|
|
@@ -143,7 +143,7 @@ class MasterLogger:
|
|
|
143
143
|
self.label = label
|
|
144
144
|
|
|
145
145
|
# Update formatter with new label
|
|
146
|
-
class
|
|
146
|
+
class massterFormatter(logging.Formatter):
|
|
147
147
|
def __init__(self, label):
|
|
148
148
|
super().__init__()
|
|
149
149
|
self.label = label
|
|
@@ -192,7 +192,7 @@ class MasterLogger:
|
|
|
192
192
|
f"{level_color}{record.getMessage()}\x1b[0m"
|
|
193
193
|
) # colored message
|
|
194
194
|
|
|
195
|
-
self.handler.setFormatter(
|
|
195
|
+
self.handler.setFormatter(massterFormatter(self.label))
|
|
196
196
|
|
|
197
197
|
def update_sink(self, sink: Any):
|
|
198
198
|
"""Update the output sink for log messages."""
|
|
@@ -207,7 +207,7 @@ class MasterLogger:
|
|
|
207
207
|
self.handler = logging.StreamHandler(self.sink)
|
|
208
208
|
|
|
209
209
|
# Apply formatter
|
|
210
|
-
class
|
|
210
|
+
class massterFormatter(logging.Formatter):
|
|
211
211
|
def __init__(self, label):
|
|
212
212
|
super().__init__()
|
|
213
213
|
self.label = label
|
|
@@ -256,7 +256,7 @@ class MasterLogger:
|
|
|
256
256
|
f"{level_color}{record.getMessage()}\x1b[0m"
|
|
257
257
|
) # colored message
|
|
258
258
|
|
|
259
|
-
self.handler.setFormatter(
|
|
259
|
+
self.handler.setFormatter(massterFormatter(self.label))
|
|
260
260
|
self.logger_instance.addHandler(self.handler)
|
|
261
261
|
|
|
262
262
|
# Logger method delegates
|
|
@@ -329,4 +329,4 @@ class MasterLogger:
|
|
|
329
329
|
self.handler = None
|
|
330
330
|
|
|
331
331
|
def __repr__(self):
|
|
332
|
-
return f"
|
|
332
|
+
return f"MassterLogger(type={self.instance_type}, id={self.instance_id}, level={self.level})"
|
masster/sample/h5.py
CHANGED
|
@@ -33,7 +33,7 @@ def _save_sample5(
|
|
|
33
33
|
Set to True if you need to maintain featureXML files for legacy workflows.
|
|
34
34
|
|
|
35
35
|
Stores:
|
|
36
|
-
- metadata/format (str): Data format identifier (
|
|
36
|
+
- metadata/format (str): Data format identifier (masster-sample-1)
|
|
37
37
|
- metadata/file_path (str): Source file path
|
|
38
38
|
- metadata/file_type (str): Source file type
|
|
39
39
|
- metadata/label (str): Sample label
|
|
@@ -85,7 +85,7 @@ def _save_sample5(
|
|
|
85
85
|
ms1_group = f.create_group("ms1")
|
|
86
86
|
|
|
87
87
|
# Store metadata
|
|
88
|
-
metadata_group.attrs["format"] = "
|
|
88
|
+
metadata_group.attrs["format"] = "masster-sample-1"
|
|
89
89
|
if self.file_path is not None:
|
|
90
90
|
metadata_group.attrs["file_path"] = str(self.file_path)
|
|
91
91
|
else:
|
|
@@ -2213,7 +2213,7 @@ def create_h5_metadata_group(
|
|
|
2213
2213
|
label: Sample label
|
|
2214
2214
|
"""
|
|
2215
2215
|
metadata_group = f.create_group("metadata")
|
|
2216
|
-
metadata_group.attrs["format"] = "
|
|
2216
|
+
metadata_group.attrs["format"] = "masster-sample5-1"
|
|
2217
2217
|
metadata_group.attrs["file_path"] = str(file_path) if file_path is not None else ""
|
|
2218
2218
|
metadata_group.attrs["file_source"] = (
|
|
2219
2219
|
str(file_source) if file_source is not None else ""
|
masster/sample/load.py
CHANGED
|
@@ -557,9 +557,9 @@ def _load_wiff(
|
|
|
557
557
|
):
|
|
558
558
|
try:
|
|
559
559
|
# Use masster's own implementation first
|
|
560
|
-
from masster.sample.sciex import SciexWiffData as
|
|
560
|
+
from masster.sample.sciex import SciexWiffData as MassterSciexWiffData
|
|
561
561
|
|
|
562
|
-
SciexWiffDataClass =
|
|
562
|
+
SciexWiffDataClass = MassterSciexWiffData
|
|
563
563
|
except ImportError:
|
|
564
564
|
# Fallback to alpharaw if masster implementation fails
|
|
565
565
|
from alpharaw.sciex import SciexWiffData as AlpharawSciexWiffData
|
masster/sample/sample.py
CHANGED
|
@@ -39,7 +39,7 @@ import sys
|
|
|
39
39
|
import polars as pl
|
|
40
40
|
|
|
41
41
|
from masster._version import get_version
|
|
42
|
-
from masster.logger import
|
|
42
|
+
from masster.logger import MassterLogger
|
|
43
43
|
|
|
44
44
|
from masster.sample.defaults.sample_def import sample_defaults
|
|
45
45
|
from masster.sample.defaults.find_features_def import find_features_defaults
|
|
@@ -180,7 +180,7 @@ class Sample:
|
|
|
180
180
|
self.log_sink = params.log_sink
|
|
181
181
|
|
|
182
182
|
# Initialize independent logger
|
|
183
|
-
self.logger =
|
|
183
|
+
self.logger = MassterLogger(
|
|
184
184
|
instance_type="sample",
|
|
185
185
|
level=params.log_level.upper(),
|
|
186
186
|
label=params.log_label if params.log_label else "",
|
masster/study/export.py
CHANGED
|
@@ -1171,7 +1171,7 @@ def export_xlsx(self, filename: str = None) -> None:
|
|
|
1171
1171
|
"get_id() returned empty data, skipping identification worksheet",
|
|
1172
1172
|
)
|
|
1173
1173
|
except Exception as e:
|
|
1174
|
-
self.logger.
|
|
1174
|
+
self.logger.debug(
|
|
1175
1175
|
f"Error getting identification data: {e}. Skipping identification worksheet.",
|
|
1176
1176
|
)
|
|
1177
1177
|
|
masster/study/h5.py
CHANGED
|
@@ -1145,7 +1145,7 @@ def _save_study5_compressed(self, filename):
|
|
|
1145
1145
|
id_group = f.create_group("id")
|
|
1146
1146
|
|
|
1147
1147
|
# Store metadata
|
|
1148
|
-
metadata_group.attrs["format"] = "
|
|
1148
|
+
metadata_group.attrs["format"] = "masster-study-1"
|
|
1149
1149
|
metadata_group.attrs["folder"] = (
|
|
1150
1150
|
str(self.folder) if self.folder is not None else ""
|
|
1151
1151
|
)
|
|
@@ -1387,7 +1387,7 @@ def _save_study5(self, filename):
|
|
|
1387
1387
|
filename (str, optional): Target file name. If None, uses default based on folder.
|
|
1388
1388
|
|
|
1389
1389
|
Stores:
|
|
1390
|
-
- metadata/format (str): Data format identifier ("
|
|
1390
|
+
- metadata/format (str): Data format identifier ("masster-study-1")
|
|
1391
1391
|
- metadata/folder (str): Study default folder path
|
|
1392
1392
|
- metadata/label (str): Study label
|
|
1393
1393
|
- metadata/parameters (str): JSON-serialized parameters dictionary
|
|
@@ -1476,7 +1476,7 @@ def _save_study5(self, filename):
|
|
|
1476
1476
|
id_group = f.create_group("id")
|
|
1477
1477
|
|
|
1478
1478
|
# Store metadata
|
|
1479
|
-
metadata_group.attrs["format"] = "
|
|
1479
|
+
metadata_group.attrs["format"] = "masster-study-1"
|
|
1480
1480
|
metadata_group.attrs["folder"] = (
|
|
1481
1481
|
str(self.folder) if self.folder is not None else ""
|
|
1482
1482
|
)
|