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.
HNSWIndex,AddResult,init_logging,init_file_loggingandis_logging_initializedare now importable fromzeusdb. The package re-exports the whole public surface ofzeusdb-vector-databaseapart from its__version__.zeusdb.logging_configsubmodule, providingget_loggerandoperation_context.get_loggerreturns aLoggerAdapterthat accepts arbitrary keyword fields and wraps the loggerzeusdb-vector-databaseconfigures.- Test suite covering the exported surface, the import forms used by
langchain-zeusdbandllama-index-vector-stores-zeusdb, and the declared dependency constraint against what it resolves to. 40 tests. ci.yml, running the test suite on Python 3.10 through 3.14 on push and pull request againstmainanddevelopment.- Tag-triggered publishing, TestPyPI routing for prerelease tags, and a
workflow_dispatchdry run path inpublish-pypi.yml. - Version consistency gate and a built-wheel import check in the publish workflow.
devoptional dependency group.Programming Language :: Python :: 3.14classifier.- Integrations landing page with overview and quick links.
- LangChain integration guide: install steps, quick start, advanced search (similarity scores, MMR), metadata filtering (with docs link), persistence (hard link to persistence docs), and async examples for scripts & notebooks.
- LlamaIndex Integration Guide: Comprehensive documentation (
llamaindex.md) with 9 tested, copy-paste ready examples
zeusdb-vector-databaseconstraint from>=0.4.1to>=0.5.0,<0.6.0.__all__is an explicit literal list rather than one computed from the package registry.- The
AttributeErrorraised for an unknown attribute lists every available attribute, including__version__. - Licence declaration from the
{file = 'LICENSE'}table form to the SPDX expressionApache-2.0, withlicense-filesnamingLICENSEandNOTICE. __getattr__caches a resolved name on the module, so each name is imported once.__dir__returns its names sorted.- Regenerated
uv.lock, which recordedzeusdb-vector-database>=0.3.0and pinned 0.3.0.
import zeusdb.logging_configresolves.langchain-zeusdbandllama-index-vector-stores-zeusdbboth importget_loggerandoperation_contextfrom it, and both were silently falling back to a private copy.test_missing_attribute_message_formatasserted an error string the package stopped producing when the message gained its list of available attributes.
License :: OSI Approved :: Apache Software Licenseclassifier, superseded by the SPDX licence expression.publish-check.yml. Its build and metadata check are thebuildjob ofpublish-pypi.yml, reached by aworkflow_dispatchrun with the publish input left unticked.
- Updated dependency:
zeusdb-vector-databasefrom0.4.0to0.4.1to ensure critical overwrite and memory leak fixes are applied.
- Critical: Fixed duplicate document bug where
overwrite=Truecreated multiple entries instead of replacing existing ones - Fixed memory leak from accumulated duplicate vectors in HNSW graph during overwrites
- Fixed Product Quantization codes and training state not properly cleaned up during document removal
- Fixed vector count inconsistencies when removing documents during overwrite operations
- Legacy overwrite behavior that created duplicates instead of proper replacements
- New logging guide added to documentation
- Updated minimum required version of
zeusdb-vector-databaseto v0.4.0
- Comprehensive API documentation with detailed examples and parameter references
- Read the Docs integration with custom domain (docs.zeusdb.com)
- Documentation pages for Create, Add Data, Search, and Persistence operations
- Product Quantization configuration guide with usage examples
- Sphinx-based documentation system with MyST parser and pydata theme
- Interactive code examples with expected outputs for all core operations
- Documentation badge in README linking to hosted docs
- Updated the
README.mdto include a revised Quick Start example that better reflects the current ZeusDB Vector Database API - Updated dependency to require
zeusdb-vector-database>=0.3.0inpyproject.toml
- Introduced a plugin architecture in
__init__.pyusing_PACKAGE_MAPfor dynamic class resolution. - Implemented lazy loading via
__getattr__()to import database modules only when accessed. - Automatically synced
__all__with available plugin names for static analyzers and IDE tab-completion. - Enhanced
ImportErrormessages with actionable install instructions (uvandpip). - Added
__dir__()override to improve developer experience when exploring the package interactively.
__init__.pyis now fully self-contained and no longer relies on_utils.py.- Removed runtime version checking in favor of relying on proper dependency management through
pyproject.toml.
- Future plugins can be added to
_PACKAGE_MAPwithout changing the core logic - The package now avoids all network operations during import
- Removed
_utils.pyand all related logic:- Version checking logic against PyPI (
get_latest_pypi_version,check_package_version) - Environment variable support for disabling version checks (
ZEUSDB_SKIP_VERSION_CHECK,CI, etc.) - PyPI network dependency on import
- Version checking logic against PyPI (
- Introduced modular
__init__.pyusing__getattr__()for PEP 562-style lazy loading of database backends likeVectorDatabase. This change improves robustness for partial installations and prepares the master package for a plugin-based or modular architecture. - Added version constant
__version__ = "0.0.3". - Implemented module-level
__getattr__to support lazy loading of database backends (PEP 562). - Added
__dir__()for better introspection and tab-completion in REPLs and IDEs. - Included clear and actionable error messages when optional submodules are accessed but not installed.
- Added helpful runtime warnings when installed packages are outdated compared to PyPI.
- Added
import_database_class()to dynamically import database classes based on configuration. - Added
_utils.pycontaining:get_latest_pypi_version()for cached PyPI version retrieval.check_package_version()for installed package validation and warning if outdated.should_check_versions()to suppress version checks in CI, offline, or env-flagged contexts.ZEUSDB_PACKAGESregistry to manage and extend backend database support.
- Added
test_missing_modules.pywith tests covering:- AttributeError messaging for undefined database types.
- Case sensitivity of attribute access.
- Expected attributes in
__all__and__dir__.
- Replaced eager
try/except ImportErrorblock-based loading with centralized, dynamic imports usingimport_database_class()from_utils.py. - Reorganized
__all__to be static and Pylance-compatible, with type hints provided separately for static analysis. - Suppressed Pyright warnings using
# pyright: reportUnsupportedDunderAll=falseto support dynamic symbol declarations. VectorDatabaseremains the only active backend; additional backends (RelationalDatabase,GraphDatabase,DocumentDatabase) are included as placeholders in configuration and docstrings for future expansion.
- Removed outdated eager import logic from
__init__.py, reducing import-time overhead and making the package plugin-friendly.
- Declared zeusdb-vector-database>=0.0.1 as a required dependency in pyproject.toml to ensure correct module availability during import.
- Fixed and clarified the code example in the README.
- Initial project structure and configuration.
pyproject.tomlwith Hatchling build backend and project metadata..gitignorefor Python, build, and editor artifacts.- GitHub Actions workflows:
publish-pypi.ymlfor trusted publishing to PyPI.publish-check.ymlfor build verification without publishing.
CHANGELOG.mdfollowing Keep a Changelog format.
shutdown_loggingis importable fromzeusdb, completing the re-export ofzeusdb-vector-database0.8.0's public surface.- Documentation for the 0.8.0 surface:
space="dot", boolean filter composition, thenin,any,all,exists,is_missingandis_nulloperators,indexed_fields,len(),in,count(),remove_points(),remove_where(),delete(),clear(),update_metadata(),rebuild(),shrink_to_fit(),list()paging withoffsetandafter,get_records(strict=True),AddResult.ids, the read-only index properties,shutdown_logging()and the exit drain, atomic saves and per-artefact digests, the ceilings ondim,ef_construction,top_kandef_search, and the quantization refusals forl1anddot. - Documentation for
zeusdb.logging_config.get_loggerandoperation_contexton the logging page. - An "Upgrading to 0.8.0" section on the upgrading page.
- The vector database landing page's code samples run under the documentation sample test.
zeusdb-vector-databaseconstraint from>=0.5.0,<0.6.0to>=0.8.0,<0.9.0.- Regenerated
uv.lock, which pinszeusdb-vector-database0.8.0. - The dependency floor test requires 0.8.0, the release that first exported
shutdown_logging. - Documentation corrected for 0.8.0:
dimis required, a filter decides which records are ranked, the saved graph is one file, saves are atomic and verified,save()andload()print nothing, every log level spelling is accepted,list()returns arrival order,quantized_with_rawholds more memory than an unquantized index, and the memory, search and training figures are re-measured. - README quick start output matches what the current release prints, and the Python badge lists 3.14.
- The LlamaIndex guide listed
IS_EMPTYas a supported filter operator; the adapter translates it to an operator the backend refuses.