CommandlineConfig is a lightweight Python library designed to simplify managing configuration parameters for experiments and applications, especially in research workflows that require frequent tweaking of hyperparameters. It lets you define configuration in familiar Python dictionaries or JSON files and then access nested parameters via dot notation in code, improving readability and reducing boilerplate. One of its core strengths is the ability to override configuration values directly from the command line, making it convenient to run many experimental variants without editing files repeatedly. The library supports arbitrarily deep nested structures, type handling, enumerated value constraints, and even tuple types, which are common in ML experiment setups. It also includes features for automatic version checking and convenient help output, so users can quickly see available parameters and their descriptions via a -h flag.
Features
- Configuration defined in Python dicts or JSON with dot-notation access in code
- Command-line overrides to modify any parameter without editing files
- Support for infinitely nested configuration structures
- Built-in constraints such as enumerated allowed values and tuple support
- Ability to load configs from local JSON files and print parameter help with -h
- Automatic version checking to keep configs in sync with code