Consistent, robust TOML config management with a friendly CLI
Project description
configistate
A useful config file utility.
A configuration utility that provides a consistent, robust framework for incorporating configuration files in software projects.
Features
- Python Library: Import
configistateinto your projects for programmatic config management - CLI Tool: Use
confycommand-line tool for working with config files - TOML Support: Full support for TOML configuration files
- File Variables: Support for
file://path variables to read file contents - Aliases: Define config file aliases in
~/.confy.rcfor easy access
Installation
# Install from source
make build
make install
# Or install in development mode
make build
Python Library Usage
from configistate import Config
# Load a config file
config = Config('config.toml')
# Get values
database_host = config.get('database.host')
debug_mode = config.get('debug', False)
# Set values
config.set('database.port', 5432)
config.save()
# List sections and variables
sections = config.list_sections()
variables = config.list_variables('database')
File Variables
Config files can reference external files using file:// URLs:
[secrets]
api_key = "file:///path/to/secret.txt"
The library will automatically read the file content and substitute it as the variable value.
CLI Tool Usage
The confy command provides a command-line interface:
# List all sections
confy config.toml --list
# List variables in a section
confy config.toml --list database
# Get a configuration value
confy config.toml --get database.host
# Set a configuration value
confy config.toml --set database.port 5432
Aliases
Define aliases in ~/.confy.rc:
[aliases]
myapp = "/path/to/myapp/config.toml"
Then use the alias:
confy myapp --get database.host
Development
# Setup development environment
make build
# Run tests
make test
# Run linting
make fmt
# Build documentation
make doc
# Create distribution package
make dist
Requirements
- Python 3.8+
- TOML support
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file configistate-1.0.0.tar.gz.
File metadata
- Download URL: configistate-1.0.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53f6984de52addf55c68028ce3f4cd6c4374b3050f32729fb6ebd0c273e1fc72
|
|
| MD5 |
1c845e7719fe051622b449e7f4fc6ca3
|
|
| BLAKE2b-256 |
b4e6d0a9981f02eb4c43fc0c5ec3a7c1da3e3f7ce28dd7fa727554554c33aeb0
|
File details
Details for the file configistate-1.0.0-py3-none-any.whl.
File metadata
- Download URL: configistate-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00f4f8bd9253f77c55c1ab7ed29a1345b13bdab371cf4336df328b4d69a593d1
|
|
| MD5 |
a338ad3ea7ca121e029a256b67b418a7
|
|
| BLAKE2b-256 |
ed6ce1ef91dc799860afae1f9380d9afdbc98a619e486290cffb71a1657b2dab
|