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.2.tar.gz (16.5 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.2-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: envcfglib-0.1.2.tar.gz
  • Upload date:
  • Size: 16.5 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.2.tar.gz
Algorithm Hash digest
SHA256 44615cc7b61172b94ad8a052510915355ae44217cc6b0325320f0c90fa398510
MD5 1018cc4812df46d65824d62aca470b61
BLAKE2b-256 37d64c1a508c0d068140989ba28360e6934c676547993b018b0f8d4e189d1025

See more details on using hashes here.

Provenance

The following attestation bundles were made for envcfglib-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: envcfglib-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 3.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 da605ae0fbd8573449c81297296035700a5a98d500f8dad1fb81b802cf0e9c39
MD5 ed63766e8de409829bc7087adfff9547
BLAKE2b-256 2e466fb889ce4f6f3b6646ed6f7527cb3ebd9145ff6e403c0d88b660267b7152

See more details on using hashes here.

Provenance

The following attestation bundles were made for envcfglib-0.1.2-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