Skip to main content
https://travis-ci.org/yunojuno/python-env-utils.svg?branch=master https://badge.fury.io/py/env_utils.svg https://codecov.io/gh/yunojuno/python-env-utils/branch/master/graph/badge.svg

env utils

This library extends the standard library’s getenv function, allowing you to coerce the return value into a type.

And that’s it.

It’s been released as a library because every project we have includes the same requirements - read in environment variables, coerce them into the correct type.

The problem is that environment variables are always stored as strings, but Python will evaluate any string (even “”) as True if cast to a boolean. This is almost never the desired behaviour. If you set an environment variable to “”, “0” or “False”, you want it to be False.

>>> os.environ['foo'] = "0"
>>> val = os.getenv('foo')
>>> val
"0"
>>> bool(val)
True

env_utils.get_env will coerce the value into the type you require. The package contains basic helper functions that coerce booleans, integers, decimals, floats, dates, lists and dictionaries.

# FOO=0
>>> env_utils.get_env('FOO')
"0"
>>> env_utils.get_bool('FOO')
False
>>> env_utils.get_int('FOO')
0

# FOO=foo,bar
>>> env_utils.get_list('FOO', separator=',')
['foo', 'bar']

# FOO='{"foo": true}'
>>> env_utils.get_dict('FOO')
{'foo': True}

# FOO=2016-11-23
>>> env_utils.get_date('FOO')
datetime.date(2016, 11, 23)

You can supply any function you like to coerce the value, e.g.:

>>> import os
>>> os.getenv('FOO_NAME')
'bob'
>>> class Foo(object):
...     def __init__(self, name):
...         self.name = name
>>> coerce = lambda x: Foo(x)
>>> import env_utils
>>> foo = env_utils.get_env('FOO_NAME', coerce=coerce)
>>> foo.name
>>> 'bob'

Installation

The library is available at pypi as ‘env_utils’, and can installed using pip:

$ pip install env_utils

Tests

The tests can be run using tox:

$ tox

Release files for env_utils 1.2.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 env_utils 1.2.0
File Size Uploaded
env_utils-1.2.0.tar.gz 4.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for env_utils 1.2.0
File Interpreter ABI Platform
env_utils-1.2.0.macosx-10.12-intel.tar.gz Details
env_utils-1.2.0-py2-none-any.whl Python 2 none any Details

Total release size: 14.6 kB

Release files / env_utils-1.2.0.tar.gz

Download URL env_utils-1.2.0.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
151295120d45f7c16b4a9c4a7fa4937d9956dfb8829223d62c6d1a908b637a14
BLAKE2b-256 checksum
How to use checksums
7b2ace19d7bdad70c42a0573fb11566eb166c3f00b52bb034bcaa043885b3c70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / env_utils-1.2.0.macosx-10.12-intel.tar.gz

Download URL env_utils-1.2.0.macosx-10.12-intel.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7bed35a634a204abf47b5802f95064a7a6453157439d14c81491f68a7e3d6af8
BLAKE2b-256 checksum
How to use checksums
4e99fde9629b249b1b1a5805fa49afa1c33629515b493bc90d6fd0c9f19a9c79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / env_utils-1.2.0-py2-none-any.whl

Download URL env_utils-1.2.0-py2-none-any.whl
Size 5.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
e551159721bcadc6a74ed763ef3e1afbc4482c48ddfae49177d2a29b2cd6c021
BLAKE2b-256 checksum
How to use checksums
93b41b662c43f273f134057e17e3c8270db905cddbf3f6da51d813bd4ece89c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.2.0 This release

3 release files

1.1.0

3 release files

1.0.1

1.0

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