Contributing
Thank you for contributing. IterableData supports both human developers and AI coding agents.
Getting started
git clone https://github.com/datenoio/iterabledata.git
cd iterabledata
pip install -e ".[dev]"
pre-commit install
pytest --verbose
See the repository AGENTS.md for setup, code style, testing, and project structure. Pre-commit hooks mirror CI lint and format checks (ruff).
Spec-driven changes
Behavior changes and new capabilities need an OpenSpec proposal before implementation:
- Read openspec/AGENTS.md
- List active changes:
openspec list - Scaffold
openspec/changes/<change-id>/withproposal.md,tasks.md, and spec deltas - Validate:
openspec validate <change-id> --strict - Implement only after the proposal is approved
Pull requests
- Tests pass:
pytest --verbose - Lint and format:
ruff check iterable tests && ruff format --check iterable tests - Include tests for new behavior
- Update these docs when changing public APIs
- This package is a library only — do not add a CLI or
[project.scripts]entry point
Adding a format or codec
See Adding formats.
Quality and release
Committed files under tests/fixtures/ are read-only inputs. Write tests to tmp_path. Before a release, see Releasing.
Related
- Type stubs
- Plugin system — third-party formats, codecs, and drivers without changing core
- License