skillfed

sconf

Simple config supporting CLI modification

sconf v0.2.5 173.4K downloads/30d#10,310 on PyPI7
Permissive license MIT Abandoned released

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 on this page — 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

sconf on PyPI

pip

pip install sconf

uv

uv add sconf

poetry

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 the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies 2 — ruamel.yaml, munch
Maintenance abandoned — 1,789 days since the last release
Last repo commit
First released
Downloads 173,395/month — #10,310 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: sconf-0.2.5-py3-none-any.whl

Programming Language :: Python :: 3Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

yaml config managementcli config overridenested configuration systemconfig file mergingargparse-like configruntime config modificationconfiguration library python
config-managementyamlcli-override

More Software Development packages