From be30fc808e0915397bcfdca8d86b4038c54a7cca Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Tue, 8 May 2012 10:24:37 -0400 Subject: [PATCH] env is written --- env.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 env.py diff --git a/env.py b/env.py new file mode 100644 index 0000000..1abf3dc --- /dev/null +++ b/env.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +from os import environ + +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 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. + """ + + d = {} + e = lower_dict(environ.copy()) + + for k, v in kwargs.iteritems(): + d[k] = e.get(v) + + return d