Skip to content

Commit

Permalink
feat: add omegaconf dict and list as input to DotDict (#61)
Browse files Browse the repository at this point in the history
* feat: add omegaconf dict and list as input to DotDict

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
JPXKQX and pre-commit-ci[bot] authored Dec 13, 2024
1 parent dbc5a58 commit 5a7c196
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions src/anemoi/utils/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

for k, v in self.items():
if isinstance(v, dict):
if isinstance(v, dict) or is_omegaconf_dict(v):
self[k] = DotDict(v)

if isinstance(v, list):
self[k] = [DotDict(i) if isinstance(i, dict) else i for i in v]
if isinstance(v, list) or is_omegaconf_list(v):
self[k] = [DotDict(i) if isinstance(i, dict) or is_omegaconf_dict(i) else i for i in v]

if isinstance(v, tuple):
self[k] = [DotDict(i) if isinstance(i, dict) else i for i in v]
self[k] = [DotDict(i) if isinstance(i, dict) or is_omegaconf_dict(i) else i for i in v]

@classmethod
def from_file(cls, path: str):
Expand Down Expand Up @@ -106,6 +106,24 @@ def __repr__(self) -> str:
return f"DotDict({super().__repr__()})"


def is_omegaconf_dict(value) -> bool:
try:
from omegaconf import DictConfig

return isinstance(value, DictConfig)
except ImportError:
return False


def is_omegaconf_list(value) -> bool:
try:
from omegaconf import ListConfig

return isinstance(value, ListConfig)
except ImportError:
return False


CONFIG = {}
CHECKED = {}
CONFIG_LOCK = threading.RLock()
Expand Down

0 comments on commit 5a7c196

Please sign in to comment.