Skip to content

Commit 98215fd

Browse files
committed
refactor: move drop_none_or_empty to misc module
1 parent f5e8df5 commit 98215fd

2 files changed

Lines changed: 24 additions & 8 deletions

File tree

modflow_devtools/misc.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import traceback
55
from _warnings import warn
66
from ast import literal_eval
7+
from collections.abc import Iterable
78
from contextlib import contextmanager
89
from enum import Enum
910
from functools import wraps
@@ -565,3 +566,24 @@ def try_get_enum_value(v: Any) -> Any:
565566
of an enumeration, otherwise return it unaltered.
566567
"""
567568
return v.value if isinstance(v, Enum) else v
569+
570+
571+
def try_literal_eval(value: str) -> Any:
572+
"""
573+
Try to parse a string as a literal. If this fails,
574+
return the value unaltered.
575+
"""
576+
try:
577+
return literal_eval(value)
578+
except (SyntaxError, ValueError):
579+
return value
580+
581+
582+
def drop_none_or_empty(path, key, value):
583+
"""
584+
Drop dictionary items with None or empty values.
585+
For use with `boltons.iterutils.remap`.
586+
"""
587+
if value is None or (isinstance(value, Iterable) and not any(value)):
588+
return False
589+
return True

modflow_devtools/models.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,7 @@
2121
from pooch import Pooch
2222

2323
import modflow_devtools
24-
from modflow_devtools.misc import get_model_paths
25-
26-
27-
def _drop_none_or_empty(path, key, value):
28-
if value is None or value == "":
29-
return False
30-
return True
24+
from modflow_devtools.misc import drop_none_or_empty, get_model_paths
3125

3226

3327
def _model_sort_key(k) -> int:
@@ -421,7 +415,7 @@ def index(
421415

422416
with self._registry_file_path.open("ab+") as registry_file:
423417
tomli_w.dump(
424-
remap(dict(sorted(files.items())), visit=_drop_none_or_empty),
418+
remap(dict(sorted(files.items())), visit=drop_none_or_empty),
425419
registry_file,
426420
)
427421

0 commit comments

Comments
 (0)