Skip to content

feat(python): support path-like inputs and improve errors - #166

Merged
gouyt13 merged 2 commits into
mainfrom
feat/python-input-boundaries
Oct 27, 2026
Merged

gouyt13 merged 2 commits into
mainfrom
feat/python-input-boundaries

Conversation

@gouyt13

@gouyt13 gouyt13 commented Oct 27, 2026

Copy link
Copy Markdown
Member

Summary

Support pathlib.Path and os.PathLike in IVF, HNSW and SymphonyQG save/load. Preserve string and byte-path compatibility, resolve callbacks before index guards, and reject embedded NUL before file access.

Improve clustering keyword and array-validation errors with public parameter names, expected dimensions, actual shapes/dtypes and invalid ID positions. Preserve existing exception categories and index formats; update stubs and documentation.

Testing

  • Portable wheel build/install; installed files verified against the wheel.
  • Python suite: 804 passed, 6 skipped. New boundary coverage consolidated to 60 cases, retaining all path-type round trips, sidecars, encoding and guard-order checks.
  • Mypy/Pyright, full clang-tidy, C++ formatting, Ruff, strict MkDocs and git diff --check passed.

Skipped tests require C++ example executables (4) or repaired Linux ARM64/macOS wheels (2). Windows/ARM execution remains for PR CI.

@github-actions github-actions Bot added the release:added Release category managed from the PR title label Oct 27, 2026
@gouyt13
gouyt13 merged commit efca813 into main Oct 27, 2026
42 checks passed
@gouyt13
gouyt13 deleted the feat/python-input-boundaries branch October 27, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:added Release category managed from the PR title

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant