Skip to main content

A flexible, type-safe configuration management library for Python

Project description

Configr

A flexible, type-safe configuration management library for Python.

Configr simplifies configuration management by leveraging Python's dataclasses and type hints to provide a robust, type-safe approach to application configuration.

Run Tests License: MIT Python Versions

  • Type Safety: Leverage Python's type hints for configuration validation
  • Dataclass Integration: Seamlessly map configuration files to Python dataclasses
  • Multiple Format Support: Load configuration from JSON and YAML files
  • Extendable: Easily add support for custom configuration formats
  • Simple API: Convenient decorator-based approach for defining configuration classes

Requirements

  • Python 3.10 or higher

Installation

pip install py-configr

# For YAML support
pip install py-configr[yaml]

Quick Start

Define your configuration class:

from configr import config_class, ConfigBase

@config_class(file_name="database.json")
class DatabaseConfig:
    host: str
    port: int = 5432
    username: str
    password: str
    database: str

# Load configuration
db_config = ConfigBase.load(DatabaseConfig)

# Use configuration
print(f"Connecting to {db_config.database} at {db_config.host}:{db_config.port}")

Create a configuration file in _config/database.json:

{
  "host": "localhost",
  "username": "admin",
  "password": "secure_password",
  "database": "my_app"
}

Documentation

For complete documentation, visit our documentation site.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the 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

py_configr-0.1.0.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

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

py_configr-0.1.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file py_configr-0.1.0.tar.gz.

File metadata

  • Download URL: py_configr-0.1.0.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for py_configr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 039248c1afffbcf99b4b532eb580e1e70e3b8c14a496a634185a34c9c126a82e
MD5 98002eb8eabade27dd695b96c9c1fdc5
BLAKE2b-256 7ac8e633d705c0e0b912473e43af116857f164f7414f131788f62926ad8b13c4

See more details on using hashes here.

File details

Details for the file py_configr-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: py_configr-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for py_configr-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa04932f5048f225191d98c031d3aa61b42cbe77aab55fa80064ecd1f1158650
MD5 fddf976f6365ee26974adfeb66a010a7
BLAKE2b-256 4acfcdd5e22d1b275f13a6290aa94c5e48be9277b046551aba4fd372ae5aee65

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