Files
env/env.py
T
2012-08-02 23:06:46 +10:00

69 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
from os import environ
from urlparse import urlparse as _urlparse
def lower_dict(d):
"""Lower cases string keys in given dict."""
_d = {}
for k, v in d.iteritems():
try:
_d[k.lower()] = v
except AttributeError:
_d[k] = v
return _d
def urlparse(d, keys=None):
"""Returns a copy of the given dictionary with url values parsed."""
d = d.copy()
if keys is None:
keys = d.keys()
for key in keys:
d[key] = _urlparse(d[key])
return d
def prefix(prefix):
"""Returns a dictionary of all environment variables starting with
the given prefix, lower cased and stripped.
"""
d = {}
e = lower_dict(environ.copy())
prefix = prefix.lower()
for k, v in e.iteritems():
try:
if k.startswith(prefix):
k = k[len(prefix):]
d[k] = v
except AttributeError:
print k
pass
return d
def map(**kwargs):
"""Returns a dictionary of the given keyword arguments mapped to their
values from the environment, with input and output keys lower cased.
"""
d = {}
e = lower_dict(environ.copy())
for k, v in kwargs.iteritems():
d[k] = e.get(v.lower())
return d