Source code for jammy.utils.cfg

from .meta import Singleton
from jammy.cli import timeout_input

__all__ = ["Gcfg", "pub_cfg", "set_pub_cfg", "get_pub_cfg", "omgcfg_create"]


[docs]class Gcfg(metaclass=Singleton): def __init__(self, cfg): assert "ready" not in cfg assert "cfg" not in cfg assert "reset" not in cfg assert "clear" not in cfg self.cfg = cfg for key, value in dict(cfg).items(): self.__dict__[key] = value setattr(Gcfg, key, value)
[docs] @classmethod def reset(cls, cfg=None): if cfg is None: cls._instances.clear() return Gcfg(cfg)
pub_cfg = None
[docs]def set_pub_cfg(cfg): global pub_cfg pub_cfg = cfg
[docs]def get_pub_cfg(cfg): return pub_cfg
def assert_name(cfg, default="Default", strict=True): if "name" not in cfg or cfg.name is None: cfg.name = timeout_input("cfg.name", 10, default, strict) return False return True
[docs]def omgcfg_create(obj): from omegaconf import OmegaConf return OmegaConf.create(obj)