Skip to content

Commit 2bd36e1

Browse files
committed
Fixed dropped coverage
1 parent 4153ce4 commit 2bd36e1

File tree

3 files changed

+13
-19
lines changed

3 files changed

+13
-19
lines changed

zappend/context.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,10 @@ def __init__(self, config: Dict[str, Any]):
5050
temp_storage_options = config.get("temp_storage_options")
5151
self._temp_dir = FileObj(temp_dir_uri, storage_options=temp_storage_options)
5252

53-
from .slice.factory import import_slice_source
53+
from .slice.factory import to_slice_source_type
5454

5555
slice_source = config.get("slice_source")
56-
if slice_source is not None:
57-
if isinstance(slice_source, str):
58-
self._slice_source = import_slice_source(slice_source)
59-
elif callable(slice_source):
60-
self._slice_source = slice_source
61-
else:
62-
raise TypeError(
63-
"slice_source must a callable"
64-
" or the fully qualified name of a callable"
65-
)
66-
67-
else:
68-
self._slice_source = None
56+
self._slice_source = to_slice_source_type(slice_source)
6957

7058
def get_dataset_metadata(self, dataset: xr.Dataset) -> DatasetMetadata:
7159
"""Get the dataset metadata from configuration and the given dataset.

zappend/slice/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
from .factory import get_slice_dataset
99
from .factory import to_slice_factories
1010
from .factory import to_slice_factory
11+
from .factory import to_slice_source_type

zappend/slice/factory.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,16 @@ def normalize_slice_arg(arg: Any) -> tuple[tuple[...], dict[str, Any]]:
228228
return args, kwargs
229229

230230

231-
def import_slice_source(name: str) -> Callable[..., SliceObj]:
232-
slice_factory = import_attribute(name)
233-
if callable(slice_factory):
234-
return slice_factory
235-
raise TypeError(f"slice factory {name!r} must be a callable")
231+
def to_slice_source_type(slice_source_type: str | Type) -> Callable | None:
232+
if not slice_source_type:
233+
return None
234+
if isinstance(slice_source_type, str):
235+
slice_source_type = import_attribute(slice_source_type)
236+
if not callable(slice_source_type):
237+
raise TypeError(
238+
"slice_source must a callable or the fully qualified name of a callable"
239+
)
240+
return slice_source_type
236241

237242

238243
def import_attribute(name: str) -> Any:

0 commit comments

Comments
 (0)