skillfed

simple-settings

A simple way to manage your project settings.

simple-settings v1.2.0 262.4K downloads/30d#8,374 on PyPI218
Permissive license MIT DORMANT released

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-settings

uv

uv add simple-settings

poetry

poetry add simple-settings

Installing 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

Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 2Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

settings management configurationload config from filesenvironment variable settingsdjango-like settings systempython configuration loaderapp settings managementmulti-format config loader
configuration-managementsettings-loader

More Software Development packages