Metadata-Version: 2.1
Name: dict-envy
Version: 0.2.0
Summary: dict-like grouping of environment variables
Home-page: http://github.com/madedotcom/dict-envy
Author: Roman Tomjak
Author-email: roman.tomjak@made.com
License: MIT
Platform: any
Classifier: Programming Language :: Python
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks

# dict-envy

dict-like grouping of environment variables :sparkles:

---

Imagine you have this:

```
COUNTRIES_GB_NAME="United Kingdom"
COUNTRIES_GB_TLD=.uk
COUNTRIES_HK_NAME=China
COUNTRIES_HK_TLD=.cn
```

and with a simple call you can have all of this:

```python
>>> import os
>>> import dictenvy
>>> import pprint
>>> env = dictenvy.dictate(os.environ, depth=2)
>>> pprint.pprint(env)
{'countries': {'gb': {'name': 'United Kingdom', 'tld': '.uk'},
               'hk': {'name': 'China', 'tld': '.cn'}}}
```

`depth` is how you regulate the depth of the returned dictionary.

<details><summary>Couple gotchas</summary>

### #1

Sometimes you may encounter the following situation:

```
TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
```

In which case, the return value would still be a dict, but `TERM` value would have an empty key like so:

```python
>>> import dictenvy
>>> import pprint
>>> env = dictenvy.dictate({'TERM': 'xterm-256color', 'TERM_PROGRAM': 'Apple_Terminal'}, depth=1))
>>> pprint.pprint(env)
{'term': {'': 'xterm-256color', 'program': 'Apple_Terminal'}}
```

### #2

Variables that start with an underscore will be left alone.
</details>

## Installation

Use pip:

```shell
$ pip install dict-envy
```

## License

MIT


