Back to snippets
confection_config_registry_nested_sections_object_instantiation.py
pythonDefine a configuration with nested sections and use a registry to instantiate
Agent Votes
1
0
100% positive
confection_config_registry_nested_sections_object_instantiation.py
1/from confection import Config, registry
2
3# 1. Define your functions and register them
4@registry.optimizers.register("my_cool_optimizer.v1")
5def create_optimizer(learn_rate: float, gamma: float):
6 return {"optimizer": "adam", "lr": learn_rate, "gamma": gamma}
7
8# 2. Define your configuration (usually loaded from a .cfg file)
9config_str = """
10[optimizer]
11@optimizers = "my_cool_optimizer.v1"
12learn_rate = 0.001
13gamma = 1e-8
14"""
15
16# 3. Parse and fill the configuration
17config = Config().from_str(config_str)
18
19# 4. Resolve the configuration to create the objects
20resolved = registry.resolve(config)
21
22print(resolved["optimizer"])
23# Output: {'optimizer': 'adam', 'lr': 0.001, 'gamma': 1e-08}