{"id":28172,"library":"sconf","title":"sconf","description":"Simple config management supporting CLI modification. Current version 0.2.5. Allows nested config via dict-like objects and CLI overrides. Lightweight, no dependencies beyond Python 3.6+. Low release cadence (last release 2021).","status":"active","version":"0.2.5","language":"python","source_language":"en","source_url":"https://github.com/khanrc/sconf","tags":["config","cli","sconf"],"install":[{"cmd":"pip install sconf","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"Main config class.","symbol":"Sconf","correct":"from sconf import Sconf"},{"note":"`Config` is not a public symbol; use `Sconf`.","wrong":"from sconf import Config","symbol":"Config"}],"quickstart":{"code":"from sconf import Sconf\n\nconfig = Sconf({'a': 1, 'b': {'c': 2}})\nprint(config['a'])  # 1\nprint(config['b.c'])  # 2\n# CLI override example: python script.py --a 10\n","lang":"python","description":"Create a config from a dict and access nested keys with dot notation."},"warnings":[{"fix":"Use .get() or check key existence with `in`.","message":"Accessing a missing key returns None silently, no KeyError.","severity":"gotcha","affected_versions":"all"},{"fix":"Do not expose CLI override functionality to untrusted input.","message":"The library uses eval() internally for CLI overrides, which can execute arbitrary code if user input is not sanitized.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use: from sconf import Sconf","cause":"Trying to import a non-existent class 'Config'.","error":"ImportError: cannot import name 'Config' from 'sconf'"},{"fix":"Use string keys: config['key']","cause":"Trying to index a Sconf instance directly with integer index.","error":"sconf.Sconf object is not subscriptable"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}