Metadata-Version: 2.4
Name: duckenv
Version: 0.1.0
Summary: A minimalist .env loader
Project-URL: Homepage, https://codeberg.org/canarduck/duckenv
Project-URL: Issues, https://codeberg.org/canarduck/duckenv/issues
Author-email: Renaud Canarduck <renaud@canarduck.com>
License-Expression: MIT
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Provides-Extra: tests
Requires-Dist: coverage; extra == 'tests'
Description-Content-Type: text/markdown

# duckenv

A minimalist dotenv loader for Python, inspired by [environs](https://github.com/sloria/environs) but with fewer features and dependencies.

## Installation

```bash
pip install duckenv
```

## Usage

Create a `.env` file:
```env
DEBUG=on
TTL=30
NAME=Jean-Michel
MY_LIST=apple,banana,orange
```

Load and parse environment variables:

```python
from duckenv import Env

env = Env()  # reads `.env` by default

env.str("NAME")                    # "Jean-Michel"
env.int("AGE")                     # 30
env.bool("DEBUG")                  # True
env.list("MY_LIST")                # ["apple", "banana", "orange"]
env.str("MISSING_VAR", "default")  # "default"
env.str("MISSING_VAR")             # Raises KeyError
env.int("NAME")                    # Raises ValueError
```

## Supported Methods

- `str(name, default=...)`: Returns a string or `None`.
- `int(name, default=...)`: Returns an integer or `None`.
- `bool(name, default=...)`: Accepts `true/false`, `on/off`, `1/0`, returns `True/False` or `None`.
- `list(name, default=...)`: Parses comma-separated strings into a list of stripped strings, or accepts a list directly.

If a variable is not set and no default is provided, a `KeyError` is raised.

## License

MIT