removed auto-del

This commit is contained in:
Benoît Sierro
2021-08-23 14:23:47 +02:00
parent 0bcbe00110
commit f83c84df0d
2 changed files with 36 additions and 13 deletions

View File

@@ -7,7 +7,6 @@ from typing import Any, Callable, Dict, Generator, List, Sequence, Tuple
import numpy as np import numpy as np
import pkg_resources as pkg import pkg_resources as pkg
import toml import toml
from send2trash import send2trash
from . import env, utils from . import env, utils
from .const import PARAM_FN, PARAM_SEPARATOR, SPEC1_FN, SPECN_FN, Z_FN, __version__ from .const import PARAM_FN, PARAM_SEPARATOR, SPEC1_FN, SPECN_FN, Z_FN, __version__
@@ -15,7 +14,7 @@ from .env import TMP_FOLDER_KEY_BASE
from .errors import IncompleteDataFolderError from .errors import IncompleteDataFolderError
from .logger import get_logger from .logger import get_logger
from .utils.parameter import BareConfig, BareParams from .utils.parameter import BareConfig, BareParams, translate
PathTree = List[Tuple[Path, ...]] PathTree = List[Tuple[Path, ...]]
@@ -142,7 +141,10 @@ def load_params(path: os.PathLike) -> BareParams:
params obj params obj
""" """
params = load_toml(path) params = load_toml(path)
try:
return BareParams(**params) return BareParams(**params)
except TypeError:
return BareParams(**dict(translate(p, v) for p, v in params.items()))
def load_config(path: os.PathLike) -> BareConfig: def load_config(path: os.PathLike) -> BareConfig:
@@ -425,7 +427,7 @@ def merge_spectra(
yield z, np.atleast_2d(spectra) yield z, np.atleast_2d(spectra)
def merge(destination: os.PathLike, path_trees: List[PathTree] = None, delete_tmp: bool = True): def merge(destination: os.PathLike, path_trees: List[PathTree] = None):
destination = ensure_folder(Path(destination)) destination = ensure_folder(Path(destination))
@@ -448,13 +450,6 @@ def merge(destination: os.PathLike, path_trees: List[PathTree] = None, delete_tm
pbars.reset(1) pbars.reset(1)
iden = PARAM_SEPARATOR.join(path_tree[-1][0].name.split()[2:-2]) iden = PARAM_SEPARATOR.join(path_tree[-1][0].name.split()[2:-2])
merge_path_tree(path_tree, destination / iden, z_callback=lambda i: pbars.update(1)) merge_path_tree(path_tree, destination / iden, z_callback=lambda i: pbars.update(1))
if delete_tmp:
for branch in path_tree:
for path in branch:
try:
send2trash(path.parent)
except OSError:
continue
def sim_dirs(path_trees: List[PathTree]) -> Generator[Path, None, None]: def sim_dirs(path_trees: List[PathTree]) -> Generator[Path, None, None]:

View File

@@ -2,13 +2,16 @@ import datetime as datetime_module
from copy import copy from copy import copy
from dataclasses import asdict, dataclass from dataclasses import asdict, dataclass
from functools import lru_cache from functools import lru_cache
from typing import Any, Callable, Dict, Iterable, List, Tuple, Union from typing import Any, Callable, Dict, Iterable, List, Tuple, Union, TypeVar
import numpy as np import numpy as np
from numpy.lib.function_base import disp
from ..const import __version__ from ..const import __version__
T = TypeVar("T")
# Validator
@lru_cache @lru_cache
def type_checker(*types): def type_checker(*types):
@@ -158,6 +161,31 @@ def func_validator(name, n):
raise TypeError(f"{name!r} must be callable") raise TypeError(f"{name!r} must be callable")
# other
def translate(p_name: str, p_value: T) -> tuple[str, T]:
"""translates old parameters
Parameters
----------
p_name : str
parameter name
p_value : T
parameter value
Returns
-------
tuple[str, T]
translated pair
"""
old_names = dict(interp_degree="interpolation_degree")
return old_names.get(p_name, p_name), p_value
# classes
class Parameter: class Parameter:
def __init__(self, validator, converter=None, default=None, display_info=None): def __init__(self, validator, converter=None, default=None, display_info=None):
"""Single parameter """Single parameter