--- id: sconf version: "0.2.5" license: MIT license_treatment: permissive maintenance: abandoned --- # sconf — Simple config supporting CLI modification License: permissive · Maintenance: abandoned · Downloads: 173.4K/mo ## What it is and what it does sconf is a lightweight YAML-based configuration system designed to simplify config management in Python applications, particularly in machine learning and research projects. It loads YAML files, merges multiple configs hierarchically, and allows runtime modification through command-line arguments using an argparse-like syntax. The library supports both dictionary-style and attribute-style access to nested configuration values, with special features like coloring modified keys in output and global config registration for convenient access across modules. The package targets scenarios where you want to avoid boilerplate argument parsing while maintaining a clean separation between default configs, experiment-specific overrides, and runtime CLI tweaks. It depends on ruamel.yaml for YAML parsing and munch for attribute-style dictionary access. However, the project has not been maintained since September 2021, so it carries the risk of incompatibility with future Python versions or dependency updates. Use it for: - Machine learning experiments: manage model hyperparameters across default, experiment, and CLI-provided configs in a single Config object. - Multi-environment deployments: merge environment-specific YAML files (dev, staging, prod) with CLI overrides for runtime customization. - Research reproducibility: store experiment configs in YAML, apply CLI modifications, and dump the final config with visual markers of what changed. - Nested parameter access: access deeply nested config values via dot notation or CLI with dot-separated keys. - Global config sharing: register a config globally and retrieve it from any module without passing it through function arguments. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. sconf is a YAML-based configuration library that merges multiple config files and applies command-line modifications through an argparse-like interface, with support for nested key access and global config registration. Yes, if you need a lightweight YAML config system for a stable project and can tolerate no future maintenance. The library is simple, low-friction to install, and has no known vulnerabilities. However, do not use it for new projects requiring long-term support—the package has been abandoned since 2021 and will not receive updates for Python or dependency incompatibilities. Consider it suitable only for internal tools, research code, or projects where you can fork and maintain it yourself if needed. ## Install pip install sconf uv add sconf poetry add sconf ## Installing sconf Before you install: Low friction to install; however, the package has been abandoned since September 2021 with no commits or updates in over three years, so expect no maintenance or bug fixes going forward. License in practice: MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and proprietary projects. Quickstart: from sconf import Config cfg = Config(default="configs/defaults.yaml") cfg.argv_update() # apply CLI modifications print(cfg['key']) print(cfg.key) Requires Python >= 3.6; YAML config files must exist at specified paths for Config initialization. Verify before relying: - Whether ruamel.yaml and munch dependencies are actively maintained and compatible with modern Python versions. - Performance characteristics when merging large numbers of config files or deeply nested structures. - Compatibility with Python versions beyond 3.9, given the package's abandoned status. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: abandoned - Downloads: 173.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags yaml config management, cli config override, nested configuration system, config file merging, argparse-like config, runtime config modification, configuration library python, config-management, yaml, cli-override [View on SkillFed](https://skillfed.io/packages/sconf) · [View on PyPI](https://pypi.org/project/sconf/)