Version 0.0.3
Added
-
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__.
Changed
-
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.
Fixed
Removed
- Removed outdated eager import logic from
__init__.py, reducing import-time overhead and making the package plugin-friendly.