Changelog¶
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.2] - 2026-07-19¶
Fixed¶
Move empty-source validation before
import requestsinHttpLoader.load()soValueErroris raised regardless of whetherrequestsis installed.Add
httpextra to CI dependencies so HTTP loader tests can run withrequestsinstalled.
[1.0.1] - 2026-07-19¶
Fixed¶
Fixed mypy cross-version compatibility: removed
--strictflag from CI command (already inpyproject.toml), allowingwarn_unused_ignores = falseto take effect across Python 3.11–3.14.Removed redundant
cast()inTypedTableWrapper.headingsproperty.
[1.0.0] - 2026-07-19¶
First stable release. The API is frozen and ready for production use.
Added¶
excelschema alias for@load_examplestags (in addition toxlsx).wrapandTableWrapperre-exports documented in the API reference.docs/migration.md— step-by-step migration guide from behave-tables.MANIFEST.into ensure LICENSE and README are included in the sdist.pre-committo thedevextras.Regression tests for
TableLikecompatibility,resolve_placeholdertype checking, andConfigmarker validation.
Fixed¶
TypedTableWrappernow fully satisfies theTableLikeprotocol, exposingheadingsandrowsproperties.TypedTableWrappercan re-wrap an existingTableWrapperorTypedTableWrapperwithout re-extracting rows.resolve_placeholderraises a clearTypeErrorwhen given a non-string value.Configvalidates thatnull_markersandnull_markers_by_columncontain only string values.Codecov action updated to v4 with token authentication in CI.
Changed¶
Version bumped to 1.0.0 — API is considered stable.
Development Statusclassifier set toProduction/Stable.Coverage threshold enforced at 90% in
Makefileandpyproject.toml.Polished README, documentation, contributing guidelines, security policy, and package metadata for public release.
Improved
TypedTableWrapper.typed_dicts()performance by precomputing column type and null-marker metadata once per call.
[0.1.4] - 2026-07-17¶
Added¶
Sphinx documentation site with furo theme
13 documentation pages: quickstart, installation, typed tables, null handling, diff, raw tables, dynamic examples, fixtures, builders, secrets, tags, hooks, configuration, API reference, migration guide, changelog
GitHub Actions workflow
docs.ymlto build and deploy docs to GitHub PagesDocumentation URL in
pyproject.tomldocsandalloptional dependency extras
Fixed¶
test_to_pandas_raises_without_pandasnow usesmonkeypatchonsys.modules["pandas"]for robustness whenpandasextra is installed
[0.1.3] - 2026-07-17¶
Added¶
75 edge case unit tests covering hooks, secrets, examples, raw_table, yaml, types, diff, fixtures, loaders, config, and manager
4 new E2E Behave integration features: fixtures_builders, secrets, typed_table_edge, dynamic_examples
27 E2E scenarios with 64 steps testing all behave-data features in real Behave
Fixed¶
tags.pynow strips@prefix from Behave tags (Behave strips@from scenario tags)tags.py@needs_datanow sets attribute on context in addition to_behave_data_loadedtags.pycleanup functions now support bothfunc(context)andfunc()signatures
Changed¶
Coverage increased from 94% to 98%
Total tests: 411 passed, 1 skipped (pandas optional)
[0.1.2] - 2026-07-17¶
Fixed¶
mypy --strictpasses with zero errorsAdded
[tool.mypy]config withignore_missing_imports = trueFixed
RawTable.__hash__type signatureFixed
secrets.pyvault/aws return type annotationsFixed
loaders/__init__.pyloader return type annotationFixed
examples.py_SimpleRow._headersattributeRemoved unused
type: ignorecomments inpatch.pyandraw_table.py
[0.1.1] - 2026-07-17¶
Added¶
Fixtures registry with scoping, nesting (
ref:), and parametrization (@data_fixture)Builders registry with derived fields, overrides, and count support (
@data_builder)Full
DataManager— unified access to fixtures, builders, and secret resolutionSecret masking — values resolved via
secret:are automatically masked with***Advanced secret backends:
env,vault(HashiCorp Vault via hvac),aws(AWS Secrets Manager via boto3)Declarative tags:
@needs_data:name,@with_fixture:name,@cleanup_afterbefore_feature_hook— loads dynamic Examples before a feature runsbefore_scenario_hook/after_scenario_hook— tag processing and cleanupprocess_tags_before_scenario/process_tags_after_scenario— tag processing functionsComprehensive README with full API reference, examples, and migration guide
Changed¶
DataManageris no longer a stub — full implementation withfixture(),build(),resolve(),mask()resolve_placeholdernow supportssecret:prefix with configurable backendssetup_datanow acceptsConfig | None(defaults toConfig())
[0.1.0] - 2026-07-17¶
Added¶
Core types:
int,float,bool,str,date,datetimewithregister_type()andconvert_cell()Null resolution: configurable null markers, per-column overrides,
is_null(),resolve_null()TypedTableWrapperwithtyped_dicts()andtyped_objects()RawTablefor headerless table accessTable diff with Cucumber-style output and
TableDiffErrorConfigdataclass withfrom_file()forbehave_data.ymlBehave patches:
apply_patches()/revert_patches()Data loaders: CSV, JSON, YAML, Excel, SQL, HTTP with lazy imports
Dynamic Examples loading via
@load_examples:sourcetagsSecret placeholders:
env:VAR,file:path,ref:fixturesetup_data()andbefore_step_hook()for Behave integrationDataManagerstub (full implementation in 0.1.1)Project scaffolding: CI/CD, community files, Makefile, pre-commit