v0.1.1 — strict-quality cleanup
Cleanup to the publish-ready strict-quality bar. No new features; no API breaks for code that consumed the existing public re-exports from shared_libs_python and shared_libs_python.vector_mgmt.
Changed
mypy --strictclean, Radon Grade A (cyclomatic ≤ 5), all functions ≤ 15 lines, noDict[str, Any]in user code.- Replaced ad-hoc
dict[str, Any]metadata/filter types withScalar/Metadatatype aliases (Scalar = str | int | float | bool | None). - Introduced
IndexFactoryProtocol replacing the previousCallable[..., Awaitable[VectorIndex]]annotation. Existing callers passing a plainasync def factory(name, config=None)continue to satisfy the Protocol structurally. IndexManager.searchrefactored via_compose_filters+_merge_top_khelpers (Grade A).TwoTierPartitionStrategy.get_partitionsrefactored via a_classify_embeddinghelper (Grade A). Behavior preserved exactly: naivedatetime.now(); missing or non-stringcreated_at→ hot; parse error → cold.- Magic-number thresholds in
IndexManager.rebuild_if_needednamed withFinal[float]. - Moved unused runtime extras (
pgvector,sqlalchemy[asyncio],numpy) from required dependencies to[project.optional-dependencies].pgvector. Default install is now lean (Pydantic only). - Added
poetasks:lint,fmt,typecheck,complexity,test,quality. - Updated
pyproject.tomlauthor to Harish Seshadri.
Removed
- Empty
shared_libs_python.vector_mgmt.indexingandshared_libs_python.vector_mgmt.reindexsubmodules (advertised by the README but contained no public symbols). - "Reindexing utilities" feature claim from the README.
Added
xenon,radon,poethepoetdev dependencies powering the strict quality gate.
Install
uv pip install git+https://github.com/hseshadr/shared-libs-python.git@v0.1.1
# or with the pgvector extra for ready-made pgvector/SQLAlchemy/NumPy stack
uv pip install "shared-libs-python[pgvector] @ git+https://github.com/hseshadr/shared-libs-python.git@v0.1.1"Full Changelog: v0.1.0...v0.1.1