Skip to main content

Python config management, but cute.

Project description

konfi

CircleCI PyPI Documentation Status

konfi lets you create config templates similar to dataclasses. These templates are then used to load the config from different sources. konfi guarantees that the loaded config corresponds to the template even going as far as making sure items of a list are of the right type.

This means you no longer have to worry about the validity of the config, if the config is correct it will load and if it isn't it will raise an error telling you why not.

Installation

You can install konfi from PyPI:

pip install konfi

Example

from typing import Optional

import konfi


@konfi.template()
class UserInfo:
    name: str
    country: Optional[str]


@konfi.template()
class AppConfig:
    name: str = "konfi"
    user: UserInfo


konfi.set_sources(
    konfi.YAML("config.yml", ignore_not_found=True),
    konfi.Env(prefix="app_"),
)

config = konfi.load(AppConfig)

greeting = f"Hello {config.user.name}"
if config.user.country:
    greeting += f" from {config.user.country}"

print(greeting)
print(f"Welcome to {config.name}!")

For more examples see the examples/ directory.

Documentation

If you're ready to jump in, you can find the documentation on Read the Docs.

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

konfi-0.2.1.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

konfi-0.2.1-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file konfi-0.2.1.tar.gz.

File metadata

  • Download URL: konfi-0.2.1.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for konfi-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1cf67f153bbc8e9fd4112b573f43bec9410438a61e67dbce9bbe9bde7892137e
MD5 e5b061657216e6c1967eb9873f95bb06
BLAKE2b-256 a3a7bcce30842ee817e0682472583dab77d0824ed6926e169fc1443a1385d6d4

See more details on using hashes here.

File details

Details for the file konfi-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: konfi-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for konfi-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e65f1a4b759cffc4fee219a1027ea61067c1c2bb62fac40fe420e6303610478f
MD5 50efb31a6d7ad46ddd8b679a9cfc63e1
BLAKE2b-256 a80aa9cc5db11002c4b6144bfeadd6cc5355cee5c255af36ce5ada827a8aa7eb

See more details on using hashes here.

Supported by

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