--- id: typed-settings version: "25.3.0" license: MIT license_treatment: permissive maintenance: aging --- # typed-settings — Typed settings based on attrs classes License: permissive · Maintenance: aging · Downloads: 2.0M/mo ## What it is and what it does Typed Settings is a configuration framework that unifies loading settings from multiple sources—environment variables, config files, secret vaults, and custom sources—into a single typed Python object. You define your settings as a class with type annotations, and the library loads and merges values from all configured sources, converting them to the correct types and validating them. It handles nested structures, provides optional CLI integration, and supports value post-processing. The library has no mandatory dependencies beyond tomli on older Python versions; optional features like support for various class frameworks, templating, and file format readers are available via extras. Typed Settings is designed for any Python application that needs structured configuration: server processes, containerized apps, command-line tools, and data-analysis scripts. It aims to solve the fragmentation of config libraries by offering a single, extensible interface that works with multiple file formats and sources, with full type safety and validation built in. Use it for: - Load server configuration from environment variables and a config file, merging both with environment taking precedence. - Build a CLI tool where users can override settings via command-line flags while defaults come from a config file. - Retrieve secrets from a vault and interpolate them into settings using templates. - Define nested settings structures and validate all values on load. - Extend the loader system to support a custom config source not built into the library. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Loads and merges settings from multiple sources (environment variables, config files, vaults) into a single typed and validated Python object. Yes, with conditions. Typed Settings is stable and permissively licensed, with low install friction and no mandatory dependencies. It's well-suited for applications that need structured, validated configuration from multiple sources. However, the aging maintenance status (258 days since last release) means you should verify that the project remains actively supported for your use case before adopting it in a critical system. ## Install pip install typed-settings uv add typed-settings poetry add typed-settings ## Installing typed-settings Before you install: Low friction: pure Python wheel with only exceptiongroup and tomli as runtime dependencies. Marked as aging but stable—last release 258 days ago. License in practice: MIT license (permissive): you can use this in commercial and proprietary projects with minimal restrictions, provided you include the license notice. Quickstart: import typed_settings as ts settings = ts.load(cls=Settings, appname="myapp") print(settings) Requires Python 3.10 or later; optional features require additional dependencies (attrs, Pydantic, Click, etc.). Verify before relying: - Whether the aging maintenance status (258 days since last release) affects active security response. - Performance characteristics when loading from many sources or with large nested settings structures. - How well custom loaders and processors integrate with third-party type converters beyond cattrs. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: aging - Downloads: 2.0M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags configuration management typed, settings loader env vars, config file parsing validation, structured settings configuration, multi-source config merge, typed configuration framework, settings with type hints, configuration-management, type-validation [View on SkillFed](https://skillfed.io/packages/typed-settings) · [View on PyPI](https://pypi.org/project/typed-settings/)