Skip to main content

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 configistate into your projects for programmatic config management
  • CLI Tool: Use confy command-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.rc for 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

configistate-1.0.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

configistate-1.0.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for configistate-1.0.0.tar.gz
Algorithm Hash digest
SHA256 53f6984de52addf55c68028ce3f4cd6c4374b3050f32729fb6ebd0c273e1fc72
MD5 1c845e7719fe051622b449e7f4fc6ca3
BLAKE2b-256 b4e6d0a9981f02eb4c43fc0c5ec3a7c1da3e3f7ce28dd7fa727554554c33aeb0

See more details on using hashes here.

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

Hashes for configistate-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00f4f8bd9253f77c55c1ab7ed29a1345b13bdab371cf4336df328b4d69a593d1
MD5 a338ad3ea7ca121e029a256b67b418a7
BLAKE2b-256 ed6ce1ef91dc799860afae1f9380d9afdbc98a619e486290cffb71a1657b2dab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page