Skip to main content

Configuration from environment variables

Project description

envcfglib

A simple library to load configuration from environment variables.

Installation

This package targets Python 3.12+.

pip install envcfglib

Quick start

Load values from the environment with optional conversion (factory) and defaults.

from envcfglib import Config

config = Config()

# Load an integer value from the environment (raises if missing)
# export APP_PORT=8080
config.load_configuration("APP_PORT", factory=int)

# Retrieve the value (already converted by the factory at load-time)
port = config.get_value("APP_PORT")
print(port)  # e.g., 8080

Factories and defaults

You can control conversion either when loading or when retrieving.

from envcfglib import Config

config = Config()

# Provide a default if the variable is not set
config.load_configuration("DEBUG", default="false")

# Convert when getting the value
is_debug = config.get_value("DEBUG", factory=lambda x: str(x).lower() == "true")
print(is_debug)  # False

# Or convert during load
config.load_configuration("RETRIES", factory=int, default=3)
print(config.get_value("RETRIES"))  # 3

Multiple instances

Config implements a singleton-per-key pattern. Creating instances with different keys allows you to conceptually group configuration, but all loaded values are accessible from any instance.

from envcfglib import Config

app1 = Config("APP1")
app2 = Config("APP2")

# Suppose these are in the environment
# export APP1_VAR=alpha
# export APP2_VAR=beta

app1.load_configuration("VAR")
app2.load_configuration("VAR")

print(app1.get_value("VAR"))  # alpha
print(app2.get_value("VAR"))  # beta

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

envcfglib-0.1.3.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

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

envcfglib-0.1.3-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file envcfglib-0.1.3.tar.gz.

File metadata

  • Download URL: envcfglib-0.1.3.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for envcfglib-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d17b0709df2907f0b492141456c609f2ee1046834d1e067a679738ac251f94ac
MD5 f7a42a8a4f3d6205cf8525a1d0dcfc64
BLAKE2b-256 afab546746f12eb2ac2230e87e23d0ed4f135d998af69f73c8bd1956a89fab9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for envcfglib-0.1.3.tar.gz:

Publisher: publish.yml on jotonedev/envcfglib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file envcfglib-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: envcfglib-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for envcfglib-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 33656499988646f21cbdf84911bf1818e60a5657c8cc847e2f58f1bfa583c850
MD5 14703e33f87e95782b1d0c04f1c7875e
BLAKE2b-256 07589f6d01a67a87ece1c16d5e1a057e9b4873b79f004641904ca5250909e669

See more details on using hashes here.

Provenance

The following attestation bundles were made for envcfglib-0.1.3-py3-none-any.whl:

Publisher: publish.yml on jotonedev/envcfglib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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