Skip to main content

viaenv - Configuration via Environment for Python

CircleCI License

viaenv uses variable annotation to populate values from environment variables.

Example

from datetime import timedelta
from viaenv import populate_from_env


class config:
    port: int = 8080
    log_file: str = '/var/log/server.log'
    timeout: timedelta = timedelta(milliseconds=100)


populate_from_env(
    config, prefix='SRV',
    # If you don't pass env, populate_from_env will use os.environ
    env={'SRV_PORT': '9000', 'SRV_TIMEOUT': '300ms'})

print(config.port)  # 9000
print(cfg.timeout == timedelta(milliseconds=300)  # True

Supported Types

  • bool: y, yes, t, true, on, 1 -> True, n, no, f, false, off, 0 -> False
  • date: 2019-05-18
  • datetime: 2019-05-18T13:43:12
  • dict: {"x": 1, "y": 2} (JSON format)
  • float: 1.3, 1e7
  • int: 12, 0x12, 0o12, 0b12
  • list: [1, 2, 3] (JSON format)
  • str: Anything goes
  • time: 13:43:12
  • timedelta: 10us, 20ms, 30s, 17m, 2h, 7d, 1h20m

You can add your types by calling register_type_parser(typ, parser) where typ is a type (e.g. float) and parser is a one argument function that will get the value as a string.

Release files for viaenv 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for viaenv 0.2.1
File Size Uploaded
viaenv-0.2.1.tar.gz 4.8 kB Details

Release files / viaenv-0.2.1.tar.gz

Download URL viaenv-0.2.1.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f1de70355a7e16f54aebb3bb9cb95e82deb206a92130d1ba526d1bac82ae1e6d
BLAKE2b-256 checksum
How to use checksums
09e7ee21ea275d503b553381e570c1e340f76e961c7498545e26a31297b4761f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page