Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ jobs:

- run: uv run ruff format --check .

- run: uv run mypy beehave

- run: uv run python -m mypy.stubtest beehave --allowlist .stubtest_allowlist

test:
name: Test
runs-on: ubuntu-latest
Expand Down
13 changes: 13 additions & 0 deletions .stubtest_allowlist
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# stubtest allowlist — documented false positives.
# Each line is a regex matched against the error's object path.
#
# beehave.step.step — mypy 2.3.0's @contextmanager inference erases
# positional-only parameter names to None; stubtest then synthesizes
# __arg0/__arg1, which fail to match the runtime-preserved keyword/text.
# The .pyi and .py are faithful (both declare positional-only keyword, text);
# this is a tool quirk, not contract drift. Tracked in
# .cache/beehave-v2/journal.md (build cycle 1 green). Backstopped by the 9
# tests in tests/integration/step_cm_test.py (behavioral coverage) and
# `mypy --strict beehave` (.pyi-internal consistency). Re-verify manually if
# step's signature changes.
beehave.step.step
4 changes: 2 additions & 2 deletions beehave/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""beehave — BDD living documentation in sync."""
from beehave.step import step as step

__version__ = "0.3.1"
__version__ = "2.2.0"
10 changes: 10 additions & 0 deletions beehave/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Public package surface for beehave v2.
#
# - `step` is the executable `with`-block CM (re-exported; lives in
# `beehave.step`).
# - `__version__` is the single source of truth (interview L1 Constraint 3;
# the `== "2.0.0"` assertion is deferred to deliver — only the
# declaration lives here).
from beehave.step import step as step

__version__: str
Loading
Loading