Skip to content

feat: make gvl.Table an opt-in experimental feature#227

Merged
d-laub merged 2 commits into
mainfrom
feat/experimental-table
Jun 15, 2026
Merged

feat: make gvl.Table an opt-in experimental feature#227
d-laub merged 2 commits into
mainfrom
feat/experimental-table

Conversation

@d-laub

@d-laub d-laub commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

gvl.Table was hard-disabled (constructor raised NotImplementedError) to keep CI green after its polars-bio overlap backend intermittently segfaulted the interpreter (upstream biodatageeks/polars-bio#395). It's proven stable enough in production use, so this re-enables it as an explicitly experimental, opt-in feature rather than a fully supported one.

Changes

  • Re-enable Table — drop the NotImplementedError; it constructs and runs again.
  • sklearn-style experimental namespaceTable is removed from the top-level genvarloader namespace (no more gvl.Table) and must be imported explicitly: from genvarloader.experimental import Table.
  • Experimental signaling — construction emits an ExperimentalWarning; calling overlap methods without the optional polars-bio installed raises a clear ImportError with an install hint.
  • Not tested in CI — Table tests are opt-in via GVL_TEST_EXPERIMENTAL=1. (An importorskip wouldn't keep them out of CI since polars-bio is transitive via genoray.) Removed the now-obsolete test_table_disabled.py.
  • Docs/skill — updated docs/source/api.md, the genvarloader skill, and the repro/ scripts to the new import path.

Test plan

  • ruff check and pyrefly pass clean.
  • All 750 tests collect (no import-time breakage from the removed export).
  • Table test modules skip by default (CI behavior); with GVL_TEST_EXPERIMENTAL=1 the unit suite runs (15 passed) and constructs/queries work.

🤖 Generated with Claude Code

d-laub and others added 2 commits June 15, 2026 03:50
gvl.Table was hard-disabled (raised NotImplementedError) to keep CI green
after its polars-bio overlap backend intermittently segfaulted the
interpreter (upstream biodatageeks/polars-bio#395). It has proven stable
enough in production use, so re-enable it as an explicitly experimental,
opt-in feature instead.

- Drop the NotImplementedError; Table now constructs and runs.
- Move Table out of the top-level namespace into genvarloader.experimental
  (sklearn-style): users must `from genvarloader.experimental import Table`.
  It is no longer re-exported as gvl.Table.
- Emit an ExperimentalWarning on construction; give a clear ImportError
  pointing at the optional polars-bio dependency when it is absent.
- Keep Table out of CI: its tests are opt-in via GVL_TEST_EXPERIMENTAL=1
  (importorskip won't work since polars-bio is transitive via genoray).
- Update docs (api.md), the genvarloader skill, and repro scripts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add an opt-in `genvarloader[table]` extra that pulls in polars-bio so users
can enable the experimental gvl.Table without manually installing the backend.
Point the missing-dependency error, docstrings, and skill at the extra.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@d-laub d-laub merged commit fa3116e into main Jun 15, 2026
7 checks passed
@d-laub d-laub deleted the feat/experimental-table branch June 15, 2026 11:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant