Metadata-Version: 2.1
Name: alchemy-config
Version: 1.0.0
Summary: Configuration framework in Python for general configuration use.
Home-page: https://github.com/IBM/alchemy-config
Author: Gabe Goodhart
Author-email: gabe.l.hart@gmail.com
License: MIT
Keywords: config
Platform: UNKNOWN
Description-Content-Type: text/markdown
License-File: LICENSE

# Alchemy Config
The `aconfig` library provides simple `yaml` configuration in `python` with environment-based overrides.

## Installation

To install, simply use `pip`

```sh
pip install alchemy-config
```

## Quick Start

**config.yaml**
```yaml
foo: 1
bar:
    baz: "bat"
```

**main.py**
```py
import aconfig

if __name__ == "__main__":
    config = aconfig.Config.from_yaml("config.yaml")
    print(config.foo)
    print(config.bar.baz)
```

```sh
export BAR_BAZ="buz"
python3 main.py
```

## Corner-case Behavior

You CAN set builtin method names as attributes on the `config`. However, you should only access/delete them via dictionary access methods.

For example:

```py
import aconfig
cfg = {"update": True}

config = aconfig.Config(cfg)

# DO NOT DO THIS:
config.update

# DO THIS INSTEAD:
config["update"]
```

This is because there is no way in Python to tell whether you want the method or the attribute `"update"` when "getting" it from the object.


