Код: Выделить всё
#### config.yaml
visualisation_conf:
degradation:
data_path: /measurements
input_data_formats: .csv
#### config.py
@dataclass
class VisualisationConfig:
degradation: DegradationConfig
@dataclass
class DegradationConfig:
data_path: str
input_data_formats: str
@dataclass
class MainHydraConfig:
visualisation_conf: VisualisationConfig
#### Usage in script:
import hydra
from conf.config import MainHydraConfig
@hydra.main(version_base=None, config_path="../conf", config_name="config")
def main(base_cfg: MainHydraConfig):
input_type = base_cfg.visualisation_conf.degradation.input_data_formats
...
Код: Выделить всё
#### config.yaml
dataset_schema:
schema_path: ${hydra:runtime.cwd}/conf/schema.json
schema: ...
#### config.py
@dataclass
class JSONSchemaConfig:
schema_path: str
schema: dict = field(default_factory=dict)
def load_schema(self):
if os.path.exists(self.schema_path):
with open(self.schema_path, "r") as f:
self.schema = json.load(f)
@dataclass
class MainHydraConfig:
json_schema: JSONSchemaConfig = field(default_factory=JSONSchemaConfig)
def __post__init__(self):
self.json_schema.load_schema()
merged_conf = OmegaConf.create(self.json_schema.schema)
OmegaConf.merge(self, merged_conf)
Подробнее здесь: https://stackoverflow.com/questions/787 ... dra-config