Comments (2)
I did create a small, simple demo that runs correctly, as this branch
main...minato-ellie:hydra:feature/scope
main.py
import hydra
from omegaconf import DictConfig, OmegaConf
from hydra.utils import instantiate
class A:
def __init__(self, a1=1, a2="a2"):
self.a1 = a1
self.a2 = a2
def __str__(self):
return f"A: {self.a1}, {self.a2}"
class B:
def __init__(self, b1=1, b2="b2"):
self.b1 = b1
self.b2 = b2
def __str__(self):
return f"B: {self.b1}, {self.b2}"
class C:
def __init__(self, a: A, b: B):
self.a = a
self.b = b
def __str__(self):
return f"C: {self.a}, {self.b}"
@hydra.main(config_path="conf", config_name="config")
def main(cfg):
c = instantiate(cfg.c)
print(c)
print(OmegaConf.to_yaml(cfg))
if __name__ == "__main__":
main()
config.yaml
c:
_scope_: "__main__"
_target_: ".C"
a:
_target_: ".A"
a1: 10
b:
_target_: ".B"
b1: 100
Output
C: A: 10, a2, B: 100, b2
c:
_scope_: __main__
_target_: .C
a:
_target_: .A
a1: 10
b:
_target_: .B
b1: 100
from hydra.
Interesting. Thanks for the proposal, @minato-ellie.
from hydra.
Related Issues (20)
- Selecting multiple configs from a config group using structured configs HOT 2
- [Bug] mutable default is not allowed in `@dataclass` in python > 3.9. HOT 2
- [Feature Request] Generalize PickleJobInfoCallback to support YAML and/or JSON serialization
- [Bug] Wrong types for config groups with defaults HOT 1
- [Feature Request] How to replace the config_name in bash. HOT 1
- test_initialize_compat_version_base and test_app_with_error_exception_sanitized tests failed
- importlib-resources 6.2+ is breaking hydra HOT 1
- Bug when debugging with vscode
- [Help requested] Dynamic hydra launcher configuration
- [Bug] Broken discovery of config groups when using a config_name from a group in `hydra.main`
- [Feature Request] Support config field alias
- [Bug]
- [Bug] Config hierarchy contains empty strings when using relative path in defaults
- [Feature Request] Clarify how to register custom resolvers in a project
- [Feature Request] Support relative paths in defaults keys. HOT 1
- [Bug] Failed to override configuration nodes in `--multirun` HOT 1
- [Bug] Misleading error message when opening .yml file HOT 2
- [Bug] don't support Chinese HOT 1
- [Help requested] Optuna Sweeper Multiple GPU Parallelism
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hydra.