[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Documentation Status](https://readthedocs.org/projects/bobbie/badge/?version=latest)](http://bobbie.readthedocs.io/?badge=latest)

bobbie provides a lightweight, easy-to-use, flexible class for loading and storing configuration settings for a python project. Unlike some other packages, bobbie neither tinkers with environment variables nor limits users to a single source type. boobbie has built-in type inference for data sources (e.g. ini files) which do not allow for typing. bobbie stores the configuration settings in a class which can be used both as a drop-in dict and with extra features for accessing specific settings. 

bobbie's framework supports a wide range of coding styles. You can create complex multiple inheritance structures with mixins galore or simpler, compositional objects. Even though the data structures are necessarily object-oriented, all of the tools to modify them are also available as functions, for those who prefer a more funcitonal approaching to programming. 

The project is also highly internally documented so that users and developers can easily make bobbie work with their projects. It is designed for Python coders at all levels. Beginners should be able to follow the readable code and internal documentation to understand how it works. More advanced users should find complex and tricky problems addressed through efficient code.