Metadata-Version: 2.4
Name: behave-data
Version: 0.1.0
Summary: Data management for Behave — typed tables, diff, dynamic examples, fixtures, secrets
Project-URL: Homepage, https://github.com/MathiasPaulenko/behave-data
Project-URL: Repository, https://github.com/MathiasPaulenko/behave-data
Project-URL: Issues, https://github.com/MathiasPaulenko/behave-data/issues
Project-URL: Changelog, https://github.com/MathiasPaulenko/behave-data/blob/main/CHANGELOG.md
Author: Mathias Paulenko
License-Expression: MIT
License-File: LICENSE
Keywords: bdd,behave,data-tables,diff,examples,fixtures,testing,typing
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Testing :: BDD
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: behave-tables>=1.3.0
Requires-Dist: behave>=1.2.6
Provides-Extra: aws
Requires-Dist: boto3>=1.34; extra == 'aws'
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Provides-Extra: excel
Requires-Dist: openpyxl>=3.1; extra == 'excel'
Provides-Extra: pandas
Requires-Dist: pandas>=2.0; extra == 'pandas'
Provides-Extra: vault
Requires-Dist: hvac>=2.0; extra == 'vault'
Provides-Extra: yaml
Requires-Dist: pyyaml>=6.0; extra == 'yaml'
Description-Content-Type: text/markdown

# behave-data

Data management for Behave — typed tables, diff, dynamic examples, fixtures, secrets.

## Install

```bash
pip install behave-data
```

For development:

```bash
pip install -e ".[dev,yaml,excel]"
```

## Quickstart

```python
# features/environment.py
from behave_data import setup_data, before_step_hook

def before_all(context):
    setup_data(context)

def before_step(context, step):
    before_step_hook(context, step)
```

```python
# features/steps/typing.py
from behave_data import typed_wrap

@then("the car should have")
def step_car(context):
    table = typed_wrap(context.table)
    cars = table.typed_objects(Car)
    for car in cars:
        assert car.doors == 4  # int, not str
```

## License

MIT
