vyper-config
Python configuration with (more) fangs
What it is and what it does
Vyper is a configuration registry that consolidates settings from multiple sources into a single interface. It reads from JSON, TOML, and YAML files, environment variables, command-line arguments (via argparse), and optionally remote key-value stores, applying a fixed precedence order: explicit set calls override arguments, which override environment variables, which override config files, which override remote stores, which override defaults. The package handles case-insensitive key lookups, supports aliases to rename parameters without breaking existing code, and can watch configuration files for changes and automatically reload them while the application runs.
The library is designed for 12-factor applications and modern Python services where configuration needs to be flexible and dynamic. It abstracts away the complexity of parsing different file formats and merging sources, letting developers focus on application logic rather than configuration plumbing. Four runtime dependencies (distconfig3, toml, PyYAML, watchdog) provide the underlying parsing and file-watching capabilities.
Use it for:
- Build a microservice that reads defaults from code, overrides from a YAML config file, and secrets from environment variables in a predictable order.
- Implement live configuration reloading so a running application picks up changes to a TOML file without restart.
- Create a CLI tool that accepts command-line arguments, environment variables, and a JSON config file, with clear precedence for which wins.
- Set up a 12-factor application that sources configuration from environment variables with a prefix, falling back to defaults.
- Use aliases to rename configuration keys across versions without breaking existing deployments that use the old names.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Vyper provides a unified configuration system for Python applications that reads from multiple sources—files (JSON, TOML, YAML), environment variables, command-line arguments, and remote stores—with support for live reloading and a clear precedence order.
Yes, with conditions. Vyper is a solid, permissively licensed configuration solution for applications that need to merge multiple sources with clear precedence. However, maintenance is dormant—last release was 2023-10-04—so if you need active support or bug fixes, consider whether the package's current state meets your stability requirements. For stable, self-contained configuration needs, it remains a reasonable choice.
Install
vyper-config on PyPI
pip
pip install vyper-configuv
uv add vyper-configpoetry
poetry add vyper-configInstalling vyper-config
Before you install
Low install friction with four runtime dependencies (distconfig3, toml, PyYAML, watchdog). Maintenance is dormant—last release was 2023-10-04, though the repository remains active with a recent commit on 2025-01-13. Supports Python 3.8 through 3.11.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install vyper-config
from vyper import Vyper
v = Vyper()
v.set_default('app_name', 'myapp')
v.set_config_name('config')
v.add_config_path('.')
v.read_in_config()
app_name = v.get('app_name')
Verify before relying
- Whether remote config store support (etcd, Consul, ZooKeeper) is fully functional or partially implemented
- Current test coverage and stability of live config reloading across different file formats
- Performance characteristics when handling large configuration files or frequent reloads
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — distconfig3, toml, PyYAML, watchdog |
| Maintenance | dormant — 1,045 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 110,414/month — #12,463 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: vyper_config-1.2.1-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
vyperVyper is a Python-like programming language for…
permissive · top 15,000 on PyPI
dynaconfDynaconf manages application configuration…
permissive · top 5,000 on PyPI
configuratorBuilds a configuration store by layering…
permissive · top 15,000 on PyPI
yaml-configReads configuration from YAML files and…
unclear · top 5,000 on PyPI
config-parserMerges configuration from YAML/JSON files,…
agpl · top 5,000 on PyPI
typer-configAdds configuration-file support to typer CLI…
permissive · top 15,000 on PyPI
simple-settingsLoads and manages application settings from…
permissive · top 15,000 on PyPI
pytest-variablesA pytest plugin that loads test variables from…
copyleft · top 15,000 on PyPI
application-propertiesLoads and retrieves application configuration…
permissive · top 5,000 on PyPI