isage-middleware 0.1.3__py3-none-any.whl → 0.1.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {isage_middleware-0.1.3.dist-info → isage_middleware-0.1.3.1.dist-info}/METADATA +2 -2
- {isage_middleware-0.1.3.dist-info → isage_middleware-0.1.3.1.dist-info}/RECORD +222 -225
- sage/middleware/__init__.py +2 -2
- sage/middleware/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/__pycache__/_version.cpython-311.opt-2.pyc +0 -0
- sage/middleware/__pycache__/_version.cpython-311.pyc +0 -0
- sage/middleware/_version.py +20 -17
- sage/middleware/api/__init__.py +2 -2
- sage/middleware/api/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/graph_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/graph_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/kv_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/kv_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/memory_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/memory_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/vdb_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/vdb_api.cpython-311.pyc +0 -0
- sage/middleware/components/enterprise/__init__.py +2 -2
- sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__init__.py +2 -2
- sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__init__.py +2 -2
- sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__init__.py +2 -2
- sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/__init__.py +2 -2
- sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__init__.py +2 -2
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/hybird_index/__init__.py +2 -2
- sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__init__.py +2 -2
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__init__.py +2 -2
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__init__.py +2 -2
- sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__init__.py +2 -2
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/__init__.py +2 -2
- sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/__init__.py +2 -2
- sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__init__.py +2 -2
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/utils/__init__.py +2 -2
- sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/__init__.py +2 -2
- sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/sage_db.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/python/__init__.py +2 -2
- sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/sage_db.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/sage_db.py +3 -211
- sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_demo.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.pyc +0 -0
- sage/middleware/services/__init__.py +2 -2
- sage/middleware/services/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__init__.py +2 -2
- sage/middleware/services/graph/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_index.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_service.cpython-311.pyc +0 -0
- sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.pyc +0 -0
- sage/middleware/services/graph/search_engine/__init__.py +2 -2
- sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.pyc +0 -0
- sage/middleware/services/kv/__init__.py +2 -2
- sage/middleware/services/kv/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/kv/__pycache__/kv_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/__pycache__/kv_service.cpython-311.pyc +0 -0
- sage/middleware/services/kv/examples/__pycache__/kv_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/examples/__pycache__/kv_demo.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__init__.py +2 -2
- sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.pyc +0 -0
- sage/middleware/services/memory/__init__.py +2 -2
- sage/middleware/services/memory/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/memory/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/__pycache__/memory_service.cpython-311.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/memory_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/memory_demo.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
- sage/middleware/services/memory/utils/__init__.py +2 -2
- sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/__init__.py +2 -2
- sage/middleware/services/vdb/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/examples/__pycache__/vdb_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/examples/__pycache__/vdb_demo.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__init__.py +2 -2
- sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.pyc +0 -0
- sage/middleware/utils/__init__.py +2 -2
- sage/middleware/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__init__.py +2 -2
- sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/hf.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/hf.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/jina.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/jina.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/openai.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/openai.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.pyc +0 -0
- sage/__init__.py +0 -56
- sage/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/__pycache__/__init__.cpython-311.pyc +0 -0
- {isage_middleware-0.1.3.dist-info → isage_middleware-0.1.3.1.dist-info}/WHEEL +0 -0
- {isage_middleware-0.1.3.dist-info → isage_middleware-0.1.3.1.dist-info}/top_level.txt +0 -0
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,218 +1,10 @@
|
|
|
1
1
|
"""
|
|
2
|
-
SAGE DB -
|
|
2
|
+
SAGE DB - High-performance vector database with FAISS backend
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
This module provides a Python interface to the SAGE DB vector database,
|
|
5
|
+
which supports efficient similarity search with metadata filtering.
|
|
5
6
|
"""
|
|
6
7
|
|
|
7
|
-
# 直接从 C++ 扩展导入所有必要的类
|
|
8
|
-
try:
|
|
9
|
-
from ._sage_db import (
|
|
10
|
-
SageDB,
|
|
11
|
-
DatabaseConfig,
|
|
12
|
-
IndexType,
|
|
13
|
-
DistanceMetric,
|
|
14
|
-
QueryResult,
|
|
15
|
-
SearchParams,
|
|
16
|
-
SageDBException,
|
|
17
|
-
create_database,
|
|
18
|
-
index_type_to_string,
|
|
19
|
-
string_to_index_type,
|
|
20
|
-
distance_metric_to_string,
|
|
21
|
-
string_to_distance_metric
|
|
22
|
-
)
|
|
23
|
-
print("✓ SAGE DB C++ extension loaded successfully")
|
|
24
|
-
except ImportError as e:
|
|
25
|
-
raise ImportError(f"Failed to import SAGE DB C++ extension: {e}")
|
|
26
|
-
|
|
27
|
-
# 导出所有API
|
|
28
|
-
__all__ = [
|
|
29
|
-
'SageDB',
|
|
30
|
-
'DatabaseConfig',
|
|
31
|
-
'IndexType',
|
|
32
|
-
'DistanceMetric',
|
|
33
|
-
'QueryResult',
|
|
34
|
-
'SearchParams',
|
|
35
|
-
'SageDBException',
|
|
36
|
-
'create_database',
|
|
37
|
-
'index_type_to_string',
|
|
38
|
-
'string_to_index_type',
|
|
39
|
-
'distance_metric_to_string',
|
|
40
|
-
'string_to_distance_metric'
|
|
41
|
-
]
|
|
42
|
-
|
|
43
|
-
import numpy as np
|
|
44
|
-
from typing import List, Dict, Any, Optional, Callable, Tuple, Union
|
|
45
|
-
|
|
46
|
-
# 尝试导入C++扩展
|
|
47
|
-
try:
|
|
48
|
-
from . import _sage_db
|
|
49
|
-
_cpp_available = True
|
|
50
|
-
except ImportError:
|
|
51
|
-
try:
|
|
52
|
-
import _sage_db
|
|
53
|
-
_cpp_available = True
|
|
54
|
-
except ImportError:
|
|
55
|
-
_cpp_available = False
|
|
56
|
-
raise ImportError("SAGE DB C++ extension not available")
|
|
57
|
-
|
|
58
|
-
# 重新导出C++类和枚举
|
|
59
|
-
IndexType = _sage_db.IndexType
|
|
60
|
-
DistanceMetric = _sage_db.DistanceMetric
|
|
61
|
-
QueryResult = _sage_db.QueryResult
|
|
62
|
-
SearchParams = _sage_db.SearchParams
|
|
63
|
-
DatabaseConfig = _sage_db.DatabaseConfig
|
|
64
|
-
SageDBException = _sage_db.SageDBException
|
|
65
|
-
|
|
66
|
-
class SageDB:
|
|
67
|
-
"""
|
|
68
|
-
High-performance vector database with FAISS backend.
|
|
69
|
-
|
|
70
|
-
Supports efficient similarity search, metadata filtering, and hybrid search.
|
|
71
|
-
"""
|
|
72
|
-
|
|
73
|
-
def __init__(self, dimension: int,
|
|
74
|
-
index_type: IndexType = IndexType.AUTO,
|
|
75
|
-
metric: DistanceMetric = DistanceMetric.L2):
|
|
76
|
-
"""
|
|
77
|
-
Initialize a new SageDB instance.
|
|
78
|
-
|
|
79
|
-
Args:
|
|
80
|
-
dimension: Vector dimension
|
|
81
|
-
index_type: Index type for similarity search
|
|
82
|
-
metric: Distance metric
|
|
83
|
-
"""
|
|
84
|
-
self._db = _sage_db.create_database(dimension, index_type, metric)
|
|
85
|
-
|
|
86
|
-
@classmethod
|
|
87
|
-
def from_config(cls, config: DatabaseConfig):
|
|
88
|
-
"""Create SageDB from configuration object."""
|
|
89
|
-
instance = cls.__new__(cls)
|
|
90
|
-
instance._db = _sage_db.create_database(config)
|
|
91
|
-
return instance
|
|
92
|
-
|
|
93
|
-
def add(self, vector: Union[List[float], np.ndarray],
|
|
94
|
-
metadata: Optional[Dict[str, str]] = None) -> int:
|
|
95
|
-
"""Add a single vector with optional metadata."""
|
|
96
|
-
if isinstance(vector, np.ndarray):
|
|
97
|
-
vector = vector.tolist()
|
|
98
|
-
return self._db.add(vector, metadata or {})
|
|
99
|
-
|
|
100
|
-
def add_batch(self, vectors: Union[List[List[float]], np.ndarray],
|
|
101
|
-
metadata: Optional[List[Dict[str, str]]] = None) -> List[int]:
|
|
102
|
-
"""Add multiple vectors with optional metadata."""
|
|
103
|
-
if isinstance(vectors, np.ndarray):
|
|
104
|
-
if len(vectors.shape) != 2:
|
|
105
|
-
raise ValueError("Vectors array must be 2-dimensional")
|
|
106
|
-
return _sage_db.add_numpy(self._db, vectors, metadata or [])
|
|
107
|
-
else:
|
|
108
|
-
return self._db.add_batch(vectors, metadata or [])
|
|
109
|
-
|
|
110
|
-
def search(self, query: Union[List[float], np.ndarray],
|
|
111
|
-
k: int = 10, include_metadata: bool = True) -> List[QueryResult]:
|
|
112
|
-
"""Search for similar vectors."""
|
|
113
|
-
if isinstance(query, np.ndarray):
|
|
114
|
-
return _sage_db.search_numpy(self._db, query, SearchParams(k))
|
|
115
|
-
return self._db.search(query, k, include_metadata)
|
|
116
|
-
|
|
117
|
-
def search_with_params(self, query: Union[List[float], np.ndarray],
|
|
118
|
-
params: SearchParams) -> List[QueryResult]:
|
|
119
|
-
"""Search with custom parameters."""
|
|
120
|
-
if isinstance(query, np.ndarray):
|
|
121
|
-
return _sage_db.search_numpy(self._db, query, params)
|
|
122
|
-
return self._db.search(query, params)
|
|
123
|
-
|
|
124
|
-
def filtered_search(self, query: Union[List[float], np.ndarray],
|
|
125
|
-
params: SearchParams,
|
|
126
|
-
filter_fn: Callable[[Dict[str, str]], bool]) -> List[QueryResult]:
|
|
127
|
-
"""Search with metadata filtering."""
|
|
128
|
-
if isinstance(query, np.ndarray):
|
|
129
|
-
query = query.tolist()
|
|
130
|
-
return self._db.filtered_search(query, params, filter_fn)
|
|
131
|
-
|
|
132
|
-
def remove(self, vector_id: int) -> bool:
|
|
133
|
-
"""Remove a vector by ID."""
|
|
134
|
-
return self._db.remove(vector_id)
|
|
135
|
-
|
|
136
|
-
def update(self, vector_id: int, vector: Union[List[float], np.ndarray],
|
|
137
|
-
metadata: Optional[Dict[str, str]] = None) -> bool:
|
|
138
|
-
"""Update a vector and its metadata."""
|
|
139
|
-
if isinstance(vector, np.ndarray):
|
|
140
|
-
vector = vector.tolist()
|
|
141
|
-
return self._db.update(vector_id, vector, metadata or {})
|
|
142
|
-
|
|
143
|
-
def build_index(self):
|
|
144
|
-
"""Build the search index."""
|
|
145
|
-
self._db.build_index()
|
|
146
|
-
|
|
147
|
-
def train_index(self, training_data: Optional[List[List[float]]] = None):
|
|
148
|
-
"""Train the index with training data."""
|
|
149
|
-
self._db.train_index(training_data or [])
|
|
150
|
-
|
|
151
|
-
def is_trained(self) -> bool:
|
|
152
|
-
"""Check if the index is trained."""
|
|
153
|
-
return self._db.is_trained()
|
|
154
|
-
|
|
155
|
-
def set_metadata(self, vector_id: int, metadata: Dict[str, str]) -> bool:
|
|
156
|
-
"""Set metadata for a vector."""
|
|
157
|
-
return self._db.set_metadata(vector_id, metadata)
|
|
158
|
-
|
|
159
|
-
def get_metadata(self, vector_id: int) -> Optional[Dict[str, str]]:
|
|
160
|
-
"""Get metadata for a vector."""
|
|
161
|
-
result = self._db.get_metadata(vector_id)
|
|
162
|
-
return result if result is not None else None
|
|
163
|
-
|
|
164
|
-
def find_by_metadata(self, key: str, value: str) -> List[int]:
|
|
165
|
-
"""Find vectors by metadata key-value pair."""
|
|
166
|
-
return self._db.find_by_metadata(key, value)
|
|
167
|
-
|
|
168
|
-
def save(self, filepath: str):
|
|
169
|
-
"""Save database to file."""
|
|
170
|
-
self._db.save(filepath)
|
|
171
|
-
|
|
172
|
-
def load(self, filepath: str):
|
|
173
|
-
"""Load database from file."""
|
|
174
|
-
self._db.load(filepath)
|
|
175
|
-
|
|
176
|
-
def size(self) -> int:
|
|
177
|
-
"""Get number of vectors in database."""
|
|
178
|
-
return self._db.size()
|
|
179
|
-
|
|
180
|
-
def dimension(self) -> int:
|
|
181
|
-
"""Get vector dimension."""
|
|
182
|
-
return self._db.dimension()
|
|
183
|
-
|
|
184
|
-
def index_type(self) -> IndexType:
|
|
185
|
-
"""Get index type."""
|
|
186
|
-
return self._db.index_type()
|
|
187
|
-
|
|
188
|
-
def config(self) -> DatabaseConfig:
|
|
189
|
-
"""Get database configuration."""
|
|
190
|
-
return self._db.config()
|
|
191
|
-
|
|
192
|
-
# 高级功能访问
|
|
193
|
-
def query_engine(self):
|
|
194
|
-
"""Get query engine for advanced search operations."""
|
|
195
|
-
return self._db.query_engine()
|
|
196
|
-
|
|
197
|
-
def vector_store(self):
|
|
198
|
-
"""Get vector store for low-level operations."""
|
|
199
|
-
return self._db.vector_store()
|
|
200
|
-
|
|
201
|
-
def metadata_store(self):
|
|
202
|
-
"""Get metadata store for metadata operations."""
|
|
203
|
-
return self._db.metadata_store()
|
|
204
|
-
|
|
205
|
-
# 导出的API
|
|
206
|
-
__all__ = [
|
|
207
|
-
'SageDB',
|
|
208
|
-
'IndexType',
|
|
209
|
-
'DistanceMetric',
|
|
210
|
-
'QueryResult',
|
|
211
|
-
'SearchParams',
|
|
212
|
-
'DatabaseConfig',
|
|
213
|
-
'SageDBException'
|
|
214
|
-
]
|
|
215
|
-
|
|
216
8
|
import numpy as np
|
|
217
9
|
from typing import List, Dict, Any, Optional, Callable, Tuple, Union
|
|
218
10
|
try:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.opt-2.pyc
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc
CHANGED
|
Binary file
|
sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc
CHANGED
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,7 +35,7 @@ def _load_version():
|
|
|
35
35
|
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
36
|
exec(f.read(), version_globals)
|
|
37
37
|
return {
|
|
38
|
-
'version': version_globals.get('__version__', '0.1.
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.3'),
|
|
39
39
|
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
40
|
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
41
|
}
|
|
@@ -44,7 +44,7 @@ def _load_version():
|
|
|
44
44
|
|
|
45
45
|
# 最后的默认值
|
|
46
46
|
return {
|
|
47
|
-
'version': '0.1.
|
|
47
|
+
'version': '0.1.3',
|
|
48
48
|
'author': 'SAGE Team',
|
|
49
49
|
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
50
|
}
|
|
Binary file
|
|
Binary file
|