Skip to main content

Environment Wrapped TOML

Project description

TOMLenv

GitHub Workflow Status PyPI - Version PyPI - Python Version PyPI - Downloads License

Environment wrapped TOML.

Package available in PyPI.

Getting Started

Install the library

Using pip:

$ pip install tomlenv

Using pipenv:

$ pipenv install tomlenv

Using poetry:

$ poetry add tomlenv

Basic Usage

Tomlenv takes advantage of modern Python features such as dataclasses and tomllib to create a simple yet powerful configuration library.

By default, tomlenv looks for a config.toml file in your project root:

token = "dev"
debug = false

Assuming this environment variable is set:

TOMLENV_DEBUG=true

Create your configuration dataclass and parse config and env into it:

import tomlenv
from dataclasses import dataclass

@dataclass
class Config:
    token: str = ''
    debug: bool = False

config = Config()
parser = tomlenv.Parser()

parser.load(config)

# You can now access the fields of your fully typed config Class
# that contains values from a TOML config file and the environment.

# For example:

token = config.token
debug = config.debug
print(token) # prints "dev"
print(debug) # prints True

Configuration

To configure the location of your toml file, set TOMLENV_CONF_FILEPATH.

For example if your config file is in configs/config.toml relative to the project root, then set TOMLENV_CONF_FILEPATH=configs/config.toml

Tests

This project uses Poetry and GNU Make.

Run tests from the project root with:

$ make test

To get a coverage report:

$ make cov

Issues

Feel free to send issues or suggestions to https://github.com/joaonsantos/tomlenv/issues.

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

tomlenv-0.2.2.tar.gz (4.5 kB view hashes)

Uploaded Source

Built Distribution

tomlenv-0.2.2-py3-none-any.whl (4.5 kB view hashes)

Uploaded Python 3

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