Source code for nrel.hive.config.network

from __future__ import annotations

from typing import NamedTuple, Dict, Optional, Tuple

from nrel.hive.config.config_builder import ConfigBuilder


[docs]class Network(NamedTuple): network_type: str default_speed_kmph: float
[docs] @classmethod def default_config(cls) -> Dict: return {}
[docs] @classmethod def required_config(cls) -> Tuple[str, ...]: return ()
[docs] @classmethod def build(cls, config: Optional[Dict] = None) -> Network: return ConfigBuilder.build( default_config=cls.default_config(), required_config=cls.required_config(), config_constructor=lambda c: Network.from_dict(c), config=config, )
[docs] @classmethod def from_dict(cls, d: Dict) -> Network: return Network(**d)
[docs] def asdict(self) -> Dict: return self._asdict()