Source code for manyconfig.environment
import os
from .config import MetaConfig
[docs]class EnvironmentMetaConfig(MetaConfig):
"""Pull configuration from environment
An environment variable is considered to be in a namespace if it begins by
it. That is, FOO_BAR is part of the FOO\_ namespace.
All environment variables of the given namespace will be collected, and the
namespace removed from its beginning. It is then inserted in the
configuration with its value.
:param namespace: The namespace to pull from
"""
def __init__(self, namespace, **kwargs):
self.namespace = namespace
super(EnvironmentMetaConfig, self).__init__(**kwargs)
def _load(self):
ns_len = len(self.namespace)
return {key[ns_len:].lower(): value
for key, value in os.environ.items()
if key.startswith(self.namespace)}