Skip to content

Config System #1082

@leshy

Description

@leshy
  • each module receives both global settings and module based settings
  • subclassable, my_detector_module can subclass detector_module config and it's defaults
  • defaults/module config defined per module in module
  • typed, with automatic conversion (e.g. if I pass --mujoco-start-point '3.1 4.5' it should set the list [3.1, 4.5])
  • pydantic or dataclasses?
  • be able to have a local overrides file (e.g. like .env currently, but should be pluggable, .json overlay .yaml overlay stuff like this)
  • be able to override each setting in a command line option
  • easy way to see what the actual config of a blueprint is (get config from each module in the blueprint, assemble global yaml/json with values)
  • after I import global config from somewhere from dimos.core.global_config import GlobalConfig this already parsed everything (cli args etc) - since atm this is just a defaults dict modified dynamically by cli tooling

overlay example, multiple systems overlaying into the same config tree

base_config -> json dir -> env vars

I have my base config

camera:
   fps: 30
   dev: /dev/video0

I run the system with

CAMERA_FPS=44 dimos run ....
or
dimos run --camera-fps=44 ....

config is overlayed

camera:
   fps: 44
   dev: /dev/video0

we also want control over which overlays are used, like apply "mac" dir if mac is detected (to override transports etc)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions