Metadata-Version: 2.1
Name: magnet
Version: 1.0.1
Summary: Hierarchical YAML config reader that reads from multiple files and an environment variable
Home-page: https://gitlab.com/jeremija/pymagnet
Author: Jerko Steiner
Author-email: jerko.steiner@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.5
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: PyYAML (>=3.12)

# magnet

A library that makes it easy to load YAML config files in a hierarchical
manner. Also loads YAML content from `CONFIG` environment variable.

# Usage

```python
from magnet import Config

config = Config().read_all('path/to/custom/config/file')
# will result in KeyError if value is missing
value = config['key.subkey.subsubkey']
```

By default, this library will load the config files in order:

1. `./config/default.yml` - can be committed to the repository
2. `./config/local.yml` - should not be committed to allow custom config for devs
3. A custom config YAML file
4. YAML from the `CONFIG` environment variable

All of these files are optional, but the key lookups will result with
`KeyError` if a key is missing.

# Development

```
make ci            - Run the CI pipeline (deps, lint, test-coverage)
make lint          - Lint all project files
make test          - Run all tests
make test-watch    - Run all tests and re-run on file changes
make test-coverage - Run all tests and calculate test coverage
make deps          - Create a virtual environment and install dependencies
make freeze        - Freeze the requirements
make env           - Create a virtual environment
```


