Source code for behave_kit.data.providers
"""`@data_provider` — register named functions that produce test data on demand.
Uses the shared `Registry` backbone (see `behave_kit._core.registry`), so
registration/lookup errors surface as the same `FixtureError` used by
fixtures and parameter types.
"""
from __future__ import annotations
from collections.abc import Callable
from behave_kit._core.registry import Registry
_registry: Registry[Callable[..., object]] = Registry()
[docs]
def data_provider(name: str) -> Callable[[Callable[..., object]], Callable[..., object]]:
"""Register ``func`` as the data provider named ``name``."""
def decorator(func: Callable[..., object]) -> Callable[..., object]:
"""Register ``func`` as the data provider named ``name``."""
_registry.register(name, func)
return func
return decorator
[docs]
def get_provider(name: str) -> Callable[..., object]:
"""Return the provider function registered under ``name``."""
return _registry.get(name)