File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44import traceback
55from _warnings import warn
66from ast import literal_eval
7+ from collections .abc import Iterable
78from contextlib import contextmanager
89from enum import Enum
910from 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
Original file line number Diff line number Diff line change 2121from pooch import Pooch
2222
2323import 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
3327def _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
You can’t perform that action at this time.
0 commit comments