simple-settings
A simple way to manage your project settings.
What it is and what it does
simple-settings is a lightweight configuration management tool inspired by Django's settings system but designed for any Python project. It reads settings from a Python module you specify and exposes them as properties of the settings object, allowing you to access configuration values throughout your application. You specify which settings module to load either via the --settings command-line argument or the SIMPLE_SETTINGS environment variable, and the package handles the rest.
The package supports multiple configuration file formats—Python modules, YAML, JSON, TOML, and CFG files—and can load settings from environment variables as well. It includes features like runtime configuration changes via the configure() method, loading multiple settings modules in sequence (with later ones overriding earlier values), and optional logging configuration. Special settings like OVERRIDE_BY_ENV and REQUIRED_SETTINGS let you control how settings are loaded and validated.
Use it for:
- Manage development, staging, and production settings by switching between different settings modules at runtime without code changes.
- Load sensitive configuration (API tokens, database credentials) from environment variables while keeping defaults in version-controlled settings files.
- Configure logging centrally using Python's dictConfig format and have simple-settings apply it automatically on startup.
- Support multiple configuration file formats in a single project, mixing Python modules with YAML or JSON for different settings layers.
- Validate that required settings are present before the application starts, preventing runtime errors from missing configuration.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Loads and manages application settings from Python modules, environment variables, or configuration files (YAML, JSON, TOML, CFG) via command-line or environment variable specification.
Yes, for stable projects with straightforward configuration needs and no requirement for active maintenance. The package is mature, has no dependencies, and works reliably for its intended purpose. However, avoid it if you need ongoing support for new Python versions, active bug fixes, or integration with modern configuration patterns—the dormant status since 2021 means new issues are unlikely to be addressed.
Install
simple-settings on PyPI
pip
pip install simple-settingsuv
uv add simple-settingspoetry
poetry add simple-settingsInstalling simple-settings
Before you install
Low install friction with no runtime dependencies. Maintenance is dormant—last release was 2021-12-30, over 1688 days ago, though the repository remains active with a recent commit on 2024-08-17. Suitable for stable, self-contained use cases but unlikely to receive updates for new Python versions or emerging patterns.
License in practice
MIT license (permissive) imposes no significant restrictions on use, modification, or redistribution in commercial or private projects.
Quickstart
from simple_settings import settings
# Run with: python app.py --settings=project_settings
# Or set: export SIMPLE_SETTINGS=project_settings
print(settings.FOO)
Requires Python 3.6.1 or later. Settings module must be specified via --settings command-line argument or SIMPLE_SETTINGS environment variable before importing settings.
Verify before relying
- Whether the package still works reliably with Python 3.10+ given the dormant maintenance status since 2021.
- Current state of optional dependencies (yaml, toml extras) and their compatibility with modern versions.
- Whether dynamic settings backend (redis) integration is actively maintained.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.6.1,<4.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 1,688 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 262,440/month — #8,374 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: simple_settings-1.2.0-py3-none-any.whl
Keywords: django, flask, bottle, tornado, settings, configuration, conf
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
bestconfigLoads configuration from multiple file formats…
permissive · top 15,000 on PyPI
yacsYACS is a lightweight configuration management…
permissive · top 5,000 on PyPI
dynaconfDynaconf manages application configuration…
permissive · top 5,000 on PyPI
pyaml-envParses YAML configuration files and resolves…
permissive · top 15,000 on PyPI
dynamic-yamlAdds dynamic string interpolation to YAML…
permissive · top 15,000 on PyPI
yacmanYacman provides a Python interface for reading,…
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
jsonargparsejsonargparse creates command-line interfaces…
permissive · top 5,000 on PyPI
parse-errorsWraps parse and validation errors from JSON,…
permissive · top 15,000 on PyPI