skillfed

setoptconf

A module for retrieving program settings from various sources in a consistant method.

setoptconf v0.3.0 138.1K downloads/30d#11,343 on PyPI3
Permissive license MIT Abandoned released

What it is and what it does

Setoptconf is a configuration aggregator that lets you define settings once and then retrieve them from multiple sources—command line, environment variables, and config files in INI, JSON, or YAML format—with a priority order you control. You instantiate a ConfigurationManager, add settings definitions (string, integer, boolean, etc.), then call retrieve() with a list of sources; it merges them and returns a single configuration object with all your settings as attributes.

The library is designed to reduce boilerplate when building programs that need to read settings from many places. Instead of writing separate parsers for each source, you declare what settings exist and let setoptconf handle the lookup and override logic. It has no runtime dependencies, making it lightweight to add to a project.

Use it for:

  • Build a CLI tool that reads settings from command-line flags, a config file, and environment variables with a single unified interface.
  • Define application settings once and let them be overridden by environment variables in containerized or cloud deployments.
  • Merge INI and JSON configuration files with environment-based overrides for multi-environment deployments.
  • Create a configuration system where command-line arguments take precedence over file-based settings.
  • Load settings from Python modules or objects for programmatic configuration in test or plugin scenarios.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Setoptconf retrieves program settings from command-line arguments, environment variables, INI files, JSON files, YAML files, and Python objects, merging them with a configurable priority order.

No. The package is abandoned (last commit 2021-09-10, over 1800 days ago) with no active maintenance. While it has no known vulnerabilities and low install friction, the lack of maintenance means no bug fixes, security updates, or compatibility work for future Python versions. For new projects, consider actively maintained alternatives.

Install

setoptconf on PyPI

pip

pip install setoptconf

uv

uv add setoptconf

poetry

poetry add setoptconf

Installing setoptconf

Before you install

Low install friction with no runtime dependencies. However, the package is abandoned—last commit was 2021-09-10, over 1800 days ago. No active maintenance or security updates should be expected.

License in practice

MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.

Quickstart

import setoptconf as soc

manager = soc.ConfigurationManager('myprogram')
manager.add(soc.StringSetting('foo'))
manager.add(soc.IntegerSetting('bar', required=True))
config = manager.retrieve(soc.CommandLineSource, soc.EnvironmentVariableSource)

Verify before relying

  • Whether YAML and JSON file support require optional dependencies not listed in the fact sheet
  • Current compatibility with modern Python versions beyond the stated >=3.0 requirement
  • Whether the project's abandonment affects real-world usability or if it remains stable for its intended scope

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.0)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 1,800 days since the last release
Last repo commit
First released
Downloads 138,132/month — #11,343 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: setoptconf-0.3.0-py3-none-any.whl

Keywords: settings, options, configuration, config, arguments

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyTopic :: Software Development :: Libraries :: Python Modules

Tags

configuration management librarysettings from multiple sourcesconfig file and environment variablescommand line argument parsingunified configuration loaderini yaml json configenvironment variable config
config-managementabandoned

More Python Modules packages