Metadata-Version: 2.1
Name: python-set-ings
Version: 0.2.0
Summary: Load configuration from the environment for your python app.
Home-page: https://github.com/evocount/python-set-ings
Author: Till Theato
Author-email: till.theato@evocount.de
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6.0
Description-Content-Type: text/markdown
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'


# Python set-ings

Load configuration from the environment for your python app. Supports typecasting and default values. Settings are made available in a way which plays nicely with IDEs and is easy to read.

## Installation

* `pipenv install python-set-ings` or `pip install python-set-ings`

## Usage

```python
# my_app/settings.py

from set_ings import Property
from set_ings import Settings as SettingsBase


Settings(SettingsBase):
    _PREFIX = 'YOUR_PREFIX'

    FOO = Property(10, cast=int)
    BAR = Property()


settings = Settings()
```

Then make sure you set the environment variables defined in your settings.
For the example above you would have to set `YOUR_PREFIX_BAR` and optionally
`YOUR_PREFIX_FOO`.

To use the settings anywhere in your app:
```python
from my_app.settings import settings

print(settings.FOO + 2)
```

## Contributing

### Installation

* `git clone git@github.com:evocount/python-set-ings.git`
* `cd python-set-ings`
* `pipenv install --dev`

### Running tests

* `pipenv run pytest`
or `pipenv run pytest --cov set_ings`

## License

This project is licensed under the [MIT License](LICENSE.md).


