Skip to main content

py-envconfig ⚙️

Managing config data from the environment, inspired by envconfig

envconfig

Install

pip install py-envconfig

Usage

Set some environment variable, or write a .env file.

HOST=localhost
PORT=6000

MY_APP_SERVICE=bookings
RELEASE_NUMBER=12
ENV=dev

Then specify your config:

from envconfig import param
from envconfig import EnvConfig


class AppConfig(EnvConfig):
    """App env config."""

    HOST = param.Str(required=True)
    PORT = param.Int(required=True)
    PASSWORD = param.Str(override="SECRET_REDIS_PW", required=True)

    SERVICE = param.Str(prefix="MY_APP_")
    VERSION = param.Int(override="RELEASE_NUMBER")
    ENV = param.Str(default="prod")


config = AppConfig()

# Access by class attribute or subscript
config.USER
config["USER"]

Setup flask config:

config = AppConfig()
app.config.from_object(config)

Point to a .env file

config = AppConfig("./.env")

Load Dotenv

Some functionality provided by dotenv

  • Increase verbosity

    AppConfig(verbose=True)
    
  • Override existing env vars with the env vars defined in .env.

    AppConfig(override=True)
    

Development

To publish package and tag git:

make tag

Release files for py-envconfig 0.7.0

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

Source distribution (sdist)

Source distribution for py-envconfig 0.7.0
File Size Uploaded
py-envconfig-0.7.0.tar.gz 3.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-envconfig 0.7.0
File Interpreter ABI Platform
py_envconfig-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 7.3 kB

Release files / py-envconfig-0.7.0.tar.gz

Download URL py-envconfig-0.7.0.tar.gz
Size 3.3 kB
Tags Source
SHA-256 checksum
How to use checksums
687bc3a127e03f4c7a5ef5b3d9b08e31fe8c98839cbfde2b74d0a93439a54b39
BLAKE2b-256 checksum
How to use checksums
bb8e2499680347528c86ede4fd437a69b3cb03dbaff53fa1cc06e889e75f83a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.7

Release files / py_envconfig-0.7.0-py3-none-any.whl

Download URL py_envconfig-0.7.0-py3-none-any.whl
Size 4.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e9207903ca31dfb099b5e4bf9660c843835974d99a63c7e3b132287e734d2425
BLAKE2b-256 checksum
How to use checksums
6758f5afa7ff79c29003051b84e35d1d1eacdde7415d01df56e16487d591953c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

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