Skip to content

Commit 8400ef4

Browse files
David WallaceMyPyDavid
authored andcommitted
chore: add minor changes and fixes
1 parent b770780 commit 8400ef4

File tree

7 files changed

+33
-18
lines changed

7 files changed

+33
-18
lines changed

src/raman_fitting/config/base_settings.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,21 @@
1111
from raman_fitting.models.deconvolution.base_model import (
1212
get_models_and_peaks_from_definitions,
1313
)
14-
from raman_fitting.models.deconvolution.spectrum_regions import get_default_regions_from_toml_files
14+
from raman_fitting.models.deconvolution.spectrum_regions import (
15+
get_default_regions_from_toml_files,
16+
)
17+
from .default_models import load_config_from_toml_files
1518
from .path_settings import create_default_package_dir_or_ask, InternalPathSettings
1619

1720

21+
def get_default_models_and_peaks_from_definitions():
22+
models_and_peaks_definitions = load_config_from_toml_files()
23+
return get_models_and_peaks_from_definitions(models_and_peaks_definitions)
24+
25+
1826
class Settings(BaseSettings):
1927
default_models: Dict[str, Dict[str, BaseLMFitModel]] = Field(
20-
default_factory=get_models_and_peaks_from_definitions,
28+
default_factory=get_default_models_and_peaks_from_definitions,
2129
alias="my_default_models",
2230
init_var=False,
2331
validate_default=False,
@@ -28,7 +36,5 @@ class Settings(BaseSettings):
2836
init_var=False,
2937
validate_default=False,
3038
)
31-
destination_dir: Path = Field(
32-
default_factory=create_default_package_dir_or_ask
33-
)
39+
destination_dir: Path = Field(default_factory=create_default_package_dir_or_ask)
3440
internal_paths: InternalPathSettings = Field(default_factory=InternalPathSettings)

src/raman_fitting/config/path_settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ class RunModes(StrEnum):
7171
def get_run_mode_paths(run_mode: RunModes, user_package_home: Path = None):
7272
if user_package_home is None:
7373
user_package_home = USER_HOME_PACKAGE
74+
if isinstance(run_mode, str):
75+
run_mode = RunModes(run_mode)
7476

7577
RUN_MODE_PATHS = {
7678
RunModes.PYTEST.name: {

src/raman_fitting/delegating/main_delegator.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,16 @@
22
from dataclasses import dataclass, field
33
from typing import Dict, List, Sequence, Any
44

5-
65
from raman_fitting.config.path_settings import (
76
RunModes,
87
ERROR_MSG_TEMPLATE,
98
initialize_run_mode_paths,
109
)
10+
from raman_fitting.config import settings
1111

1212
from raman_fitting.imports.models import RamanFileInfo
1313

1414
from raman_fitting.models.deconvolution.base_model import BaseLMFitModel
15-
from raman_fitting.models.deconvolution.base_model import (
16-
get_models_and_peaks_from_definitions,
17-
)
1815
from raman_fitting.models.splitter import RegionNames
1916
from raman_fitting.exports.exporter import ExportManager
2017
from raman_fitting.imports.files.file_indexer import (
@@ -32,7 +29,7 @@
3229
prepare_aggregated_spectrum_from_files,
3330
)
3431
from raman_fitting.types import LMFitModelCollection
35-
from .run_fit_spectrum import run_fit_over_selected_models
32+
from raman_fitting.delegating.run_fit_spectrum import run_fit_over_selected_models
3633

3734

3835
from loguru import logger
@@ -51,7 +48,7 @@ class MainDelegator:
5148
run_mode: RunModes
5249
use_multiprocessing: bool = False
5350
lmfit_models: LMFitModelCollection = field(
54-
default_factory=get_models_and_peaks_from_definitions
51+
default_factory=lambda: settings.default_models
5552
)
5653
fit_model_region_names: Sequence[RegionNames] = field(
5754
default=(RegionNames.first_order, RegionNames.second_order)
@@ -60,7 +57,6 @@ class MainDelegator:
6057
sample_ids: Sequence[str] = field(default_factory=list)
6158
sample_groups: Sequence[str] = field(default_factory=list)
6259
index: RamanFileIndex = None
63-
6460
selection: Sequence[RamanFileInfo] = field(init=False)
6561
selected_models: Sequence[RamanFileInfo] = field(init=False)
6662

@@ -191,7 +187,7 @@ def get_results_over_selected_models(
191187
def make_examples():
192188
# breakpoint()
193189
_main_run = MainDelegator(
194-
run_mode="pytest", fit_model_specific_names=["2peaks", "4peaks"]
190+
run_mode="pytest", fit_model_specific_names=["2peaks", "3peaks", "2nd_4peaks"]
195191
)
196192
_main_run.main_run()
197193
return _main_run

src/raman_fitting/imports/files/file_indexer.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
from raman_fitting.imports.models import RamanFileInfo
2323
from tablib import Dataset
2424

25+
from raman_fitting.imports.spectrum import SPECTRUM_FILETYPE_PARSERS
26+
2527
RamanFileInfoSet: TypeAlias = Sequence[RamanFileInfo]
2628

2729

@@ -180,7 +182,16 @@ def collect_raman_file_index_info(
180182
raman_files: Sequence[Path] | None = None, **kwargs
181183
) -> RamanFileInfoSet:
182184
"""loops over the files and scrapes the index data from each file"""
183-
index, files = collect_raman_file_infos(raman_files, **kwargs)
185+
raman_files = list(raman_files)
186+
total_files = []
187+
dirs = [i for i in raman_files if i.is_dir()]
188+
files = [i for i in raman_files if i.is_file()]
189+
total_files += files
190+
suffixes = [i.lstrip(".") for i in SPECTRUM_FILETYPE_PARSERS.keys()]
191+
for d1 in dirs:
192+
paths = [path for i in suffixes for path in d1.glob(f"*.{i}")]
193+
total_files += paths
194+
index, files = collect_raman_file_infos(total_files, **kwargs)
184195
logger.info(f"successfully made index {len(index)} from {len(files)} files")
185196
return index
186197

@@ -191,6 +202,7 @@ def initialize_index_from_source_files(
191202
force_reindex: bool = False,
192203
) -> RamanFileIndex:
193204
raman_files = collect_raman_file_index_info(raman_files=files)
205+
# breakpoint()
194206
raman_index = RamanFileIndex(
195207
index_file=index_file, raman_files=raman_files, force_reindex=force_reindex
196208
)

src/raman_fitting/imports/samples/sample_id_helpers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
def parse_string_to_sample_id_and_position(
88
string: str, seps=("_", " ", "-")
9-
) -> Tuple[str, str]:
9+
) -> Tuple[str, int]:
1010
"""
1111
Parser for the filenames -> finds SampleID and sample position
1212
@@ -48,6 +48,7 @@ def parse_string_to_sample_id_and_position(
4848
elif len(split) >= 3:
4949
sample_id = "_".join(split[0:-1])
5050
position = int("".join(filter(str.isdigit, split[-1])))
51+
position = position or 0
5152
return (sample_id, position)
5253

5354

src/raman_fitting/imports/spectrum/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,3 @@
1515
"method": read_file_with_tablib,
1616
},
1717
}
18-
19-
supported_filetypes = [".txt"]

src/raman_fitting/utils/string_operations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
def join_prefix_suffix(prefix: str, suffix: str) -> str:
55
prefix_ = prefix.rstrip("_")
66
suffix_ = suffix.lstrip("_")
7-
if prefix.endswith(suffix_):
7+
if suffix_ in prefix:
88
return prefix_
99
return f"{prefix_}_{suffix_}"
1010

0 commit comments

Comments
 (0)