merge from functions from develop to release/v1.1.0#164
Merged
hnwyllmm merged 10 commits intorelease/v1.1.0from Feb 2, 2026
Merged
merge from functions from develop to release/v1.1.0#164hnwyllmm merged 10 commits intorelease/v1.1.0from
hnwyllmm merged 10 commits intorelease/v1.1.0from
Conversation
…138) ## Summary close #103 ## Solution Description In hybrid_search, users use "include" on the SDK side to control the returned fields. However, "include" only filters data on the SDK side; in reality, the database returns data for all fields, which causes additional overhead. Therefore, "_source" is introduced to control the actual fields returned by the database. The main purpose is to reduce overhead, not to add a new filtering option. For users who are already using "include", efforts should be made to reduce overhead while keeping the change as unnoticeable as possible. The SDK will derive the minimal "_source" based on the "include" parameter to ensure that users are not affected while reducing overhead. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added an include parameter to hybrid search so users can request specific fields (documents, metadata, embeddings); results now always include the record id and return only requested fields in a deterministic order. * **Tests** * New unit and integration tests validating include-driven result shapes, SQL generation, and various include combinations. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary Fix #136. Support [Morph](https://docs.morphllm.com/api-reference/endpoint/embedding) embedding platform based on OpenAI. ## Solution Description Morph provides an OpenAI-compatible Embedding API and morph-embedding-v4 as the default model (1536 dimensions). Morph test result: ``` .venv/bin/python -m pytest tests/unit_tests/test_morph_embedding_function.py -vv =========================================================================================== test session starts ============================================================================================ platform darwin -- Python 3.11.13, pytest-9.0.2, pluggy-1.6.0 -- /pyseekdb/.venv/bin/python cachedir: .pytest_cache rootdir: /pyseekdb configfile: pyproject.toml plugins: anyio-4.12.1 collected 22 items tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_morph_env PASSED [ 4%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_initialization_with_model_name PASSED [ 9%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_initialization_with_custom_api_key_env PASSED [ 13%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_initialization_with_custom_api_base PASSED [ 18%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_initialization_with_kwargs PASSED [ 22%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_initialization_missing_api_key PASSED [ 27%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_initialization_missing_model_name PASSED [ 31%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_dimension_property_known_model PASSED [ 36%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_call_single_document PASSED [ 40%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_call_multiple_documents PASSED [ 45%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_call_empty_input PASSED [ 50%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_dimension_of_function PASSED [ 54%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_get_default_api_base PASSED [ 59%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_get_default_api_key_env PASSED [ 63%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunction::test_get_model_dimensions PASSED [ 68%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_name PASSED [ 72%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_get_config_with_defaults PASSED [ 77%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_get_config_with_custom_values PASSED [ 81%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_build_from_config_with_defaults PASSED [ 86%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_build_from_config_with_custom_values PASSED [ 90%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_build_from_config_with_dimensions_ignored PASSED [ 95%] tests/unit_tests/test_morph_embedding_function.py::TestMorphEmbeddingFunctionPersistence::test_persistence_roundtrip PASSED [100%] ============================================================================================ 22 passed in 3.97s ============================================================================================ ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added Morph embedding function ("morph") with support for morph-embedding-v4, discoverable via the embedding registry * Configurable via environment variables and custom API endpoints * **Tests** * Added comprehensive unit tests covering initialization, configuration, dimensions, embedding calls, and persistence round-trips <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary Fix #135. Integrate [Mistral](https://docs.morphllm.com/api-reference/endpoint/embedding) embedding function ## Solution Description Mistral test result: ``` uv run pytest tests/unit_tests/test_mistral_embedding_function.py -vv ================================================================================ test session starts ================================================================================ platform darwin -- Python 3.11.13, pytest-9.0.2, pluggy-1.6.0 -- /pyseekdb/.venv/bin/python3 cachedir: .pytest_cache rootdir: /pyseekdb configfile: pyproject.toml plugins: anyio-4.12.1 collected 12 items tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_mistral_env PASSED [ 8%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_initialization_with_defaults PASSED [ 16%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_initialization_with_custom_api_key_env PASSED [ 25%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_initialization_with_custom_api_base PASSED [ 33%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_initialization_with_additional_kwargs PASSED [ 41%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_initialization_with_missing_api_key PASSED [ 50%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_dimension_property_for_known_model PASSED [ 58%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_embedding_generation_single_document PASSED [ 66%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_embedding_generation_multiple_documents PASSED [ 75%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_embedding_with_empty_input PASSED [ 83%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_dimension_of_function PASSED [ 91%] tests/unit_tests/test_mistral_embedding_function.py::TestMistralEmbeddingFunction::test_persistence PASSED [100%] ================================================================================ 12 passed in 3.22s ================================================================================= <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added support for Mistral text embeddings: a new embedding provider is available and can be configured via environment variable and standard embedding settings; supports batch inputs and serialization. * **Tests** * Added comprehensive unit tests for the Mistral embedding provider (guarded for runtime API availability). <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary Addressing issue #105. Formatted the docstrings for the collection management APIs in `client_base.py` to improve readability and consistency. ### Changes - Updated docstrings for the following methods in `BaseClient` and `ClientAPI`: - `create_collection` - `get_collection` - `get_or_create_collection` - `delete_collection` - `list_collections` - `count_collection` - `has_collection` - Adopted a more standard docstring format (closer to Google style) with clear `Args`, `Returns`, `Raises`, and `Examples` sections. - Removed redundant or repetitive text. - Added comprehensive examples for `create_collection` showing different configuration options. ## Test plan - Verified that the code still parses and runs correctly by running existing tests: `uv run pytest tests/unit_tests/test_collection_name_validation.py -v`. - Checked formatting visually to ensure clarity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Expanded user-facing documentation for collection management methods with detailed examples and clearer behavior descriptions. * **Improvements** * Enhanced validation and error messaging for collection operations. * Improved handling of embedding function configuration and automatic dimension inference. * More robust collection lifecycle management. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - Add Development section to README with UV workflow documentation (prerequisites, setup, common commands, build artifacts) - Update Testing section to use `uv run pytest` consistently - Add `build` job to CI workflow to verify `uv build` produces valid artifacts Closes #130 ## Test plan - [x] Verified `uv build` produces both `.tar.gz` and `.whl` artifacts locally - [ ] CI build job runs successfully 🤖 Generated with [Claude Code](https://claude.ai/code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Enhanced CI/CD pipeline with automated build verification and artifact management. * **Documentation** * Restructured and expanded development and setup instructions for improved clarity and ease of contributor onboarding. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
<!-- Thank you for contributing to OceanBase! Please feel free to ping the maintainers for the review! --> ## Summary close #104 <!-- Please clearly and concisely describe the purpose of this pull request. If this pull request resolves an issue, please link it via "close #xxx" or "fix #xxx". --> ## Solution Description 1. 多版本文档构建系统 - 集成 sphinx-multiversion 扩展,支持为多个分支和标签构建文档 - 配置了版本白名单规则: - 标签格式:v *.*.*(如 v1.0.0, v1.1.0) - 分支:main 和 develop - 自动创建重定向页面,默认跳转到 develop 版本 2. Makefile 新增命令 - `make docs-multiversion`:构建所有版本的文档 - `make docs-serve`:启动支持自动重载的开发服务器 - `make docs`:单版本构建(已更新注释) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Multi-version documentation build and a local doc server with auto-reload for live previews * Version selector dropdown in the docs UI to switch between documentation versions * **Documentation** * New styling and banners for version-aware documentation and a redirect to the latest version for easy access <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 6.33.2 to 6.33.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf/releases">protobuf's releases</a>.</em></p> <blockquote> <h2>Protocol Buffers v34.0-rc1</h2> <h1>Announcements</h1> <ul> <li><strong>This version includes breaking changes to: C++, Objective-C, PHP, Python.</strong></li> <li>[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (<a href="https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb">https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb</a>)</li> <li>[C++] Make generator headers private (<a href="https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e">https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e</a>)</li> <li>[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (<a href="https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1">https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1</a>)</li> <li>[C++] Add [[nodiscard]] to many APIs. (<a href="https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738">https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738</a>)</li> <li>[C++] Make the arena-enabled constructors of <code>RepeatedField</code>, <code>RepeatedPtrField</code>, and <code>Map</code> private. (<a href="https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336">https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336</a>)</li> <li>[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (<a href="https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292">https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292</a>)</li> <li>[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (<a href="https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae">https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae</a>)</li> <li>[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (<a href="https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8">https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8</a>)</li> <li>[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (<a href="https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536">https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536</a>)</li> <li>[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (<a href="https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af">https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af</a>)</li> <li>[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (<a href="https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00">https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00</a>)</li> <li>[C++] All entity names have length limit (2afb0dc)</li> <li>[ObjC] Remove <code>generate_minimal_imports</code> generation option warning (<a href="https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4">https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4</a>)</li> <li>[ObjC] Fix nullability annotations on some <code>GPB*Dictionary</code> types. (<a href="https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50">https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50</a>)</li> <li>[ObjC] Remove <code>-[GPBFieldDescriptor optional]</code> (<a href="https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4">https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4</a>)</li> <li>[Other] Remove deprecated flag for enabling MSVC support (<a href="https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7">https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7</a>)</li> <li>[PHP] Remove deprecated PHP APIs (<a href="https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5">https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5</a>)</li> <li>[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (<a href="https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345">https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345</a>, <a href="https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6">https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6</a>, <a href="https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345">https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345</a>)</li> <li>[PHP] Add PHP typehints for setters and remove redundant GPBUtil checks (<a href="https://redirect.github.com/protocolbuffers/protobuf/pull/25296">protocolbuffers/protobuf#25296</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd">https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd</a>)</li> <li>[PHP] support default values for editions/proto2 (<a href="https://redirect.github.com/protocolbuffers/protobuf/pull/25161">protocolbuffers/protobuf#25161</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17">https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17</a>)</li> <li>[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (<a href="https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c">https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c</a>)</li> <li>[Python] Remove float_format/double_format from python proto text_format (<a href="https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488">https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488</a>)</li> <li>[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (<a href="https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c">https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c</a>)</li> <li>[Python] Remove float_precision from python proto json_format (<a href="https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5">https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5</a>)</li> <li>[Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (<a href="https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292">https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292</a>)</li> <li>[Python] Remove deprecated FieldDescriptor.label (<a href="https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9">https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9</a>)</li> <li>[Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (<a href="https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00">https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00</a>)</li> <li><a href="https://protobuf.dev/news/">Protobuf News</a> may include additional announcements or pre-announcements for upcoming changes.</li> <li><a href="https://protobuf.dev/support/migration/">Migration Guide</a> may include additional guidance for breaking changes.</li> </ul> <h1>Bazel</h1> <ul> <li>Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/25168">#25168</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9">https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9</a>)</li> <li>Breaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (<a href="https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb">https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb</a>)</li> <li>Feat(bazel): wire up prebuilt protoc toolchain (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/24115">#24115</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6">https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6</a>)</li> <li>Migrate <code>proto_descriptor_set</code> (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/23369">#23369</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8">https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8</a>)</li> </ul> <h1>Compiler</h1> <ul> <li>Ruby codegen: support generation of rbs files (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/15633">#15633</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d">https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d</a>)</li> <li>Avoid collision name problems between a message named <code>Xyz</code> and a direct sibling enum named <code>XyzView</code> (<a href="https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1">https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1</a>)</li> <li>Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (<a href="https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0">https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0</a>)</li> <li>Fix a bug with custom features outside of the <code>pb</code> package. (<a href="https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8">https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8</a>)</li> <li>Fix import option handling when include_imports isn't set. (<a href="https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e">https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e</a>)</li> <li>Fix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (<a href="https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f">https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f</a>)</li> <li>Prevent accidental stripping of <code>debug_redact</code> options via import option. (<a href="https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28">https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28</a>)</li> </ul> <h1>C++</h1> <ul> <li>Add EnumerateEnumValues function. (<a href="https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7">https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/protocolbuffers/protobuf/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/oceanbase/pyseekdb/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Introduce a **CLI for pyseekdb** to support debugging and managing SeekDB databases/collections (close #55). ### Changes - **CLI 模块** - 新增 `src/pyseekdb/cli/__init__.py`、`src/pyseekdb/cli/main.py`,实现命令行入口与子命令分发。 - **连接方式**(与 spec 一致) - 嵌入式:`--path`(默认当前目录下 `seekdb.db`)。 - 服务端:`--host`、`--port`(默认 2881)、`--tenant`、`--database`、`--user`、`--password`(或环境变量 `SEEKDB_PASSWORD`)。 - **子命令** - **db**:`list` / `create <name>` / `delete <name>`(数据库管理)。 - **collections**(别名 **coll**):`list` / `create <name> [--dimension N]` / `delete <name>` / `info <name> [--sample N]`(collection 管理及预览)。 - **sql**:执行原始 SQL(调试用)。 - **query**:按文本对指定 collection 做向量/语义查询(`--text`、`--n`)。 - **get**:按 id 或 limit 拉取 collection 文档(`--ids`、`--limit`)。 - **输出**:全局 `-o table`(默认)或 `-o json`。 - **入口**:在 `pyproject.toml` 中增加 `[project.scripts]`,将 `pyseekdb` 指向 `pyseekdb.cli:main`。 ## Solution Description 针对 [issue #55](https://github.com/oceanbase/pyseekdb/issues/55),基于现有 `Client` / `AdminClient` 和 spec 中的连接与能力说明,实现一个统一的 CLI,便于: - **管理**:列出/创建/删除数据库与 collections,查看 collection 信息与样本数据。 - **调试**:执行任意 SQL、对 collection 做 query/get,支持 table 与 json 两种输出。 CLI 复用 `Client()` 与 `AdminClient()` 的工厂逻辑,支持嵌入式(`--path`)与服务端(`--host`/`--port` 等)两种模式;子命令通过 argparse 组织,无额外依赖。 ## Test plan - 安装后执行 `pyseekdb --help`、`pyseekdb db --help`、`pyseekdb collections --help` 等,确认子命令与参数展示正确。 - 在嵌入式或服务端环境下分别验证:`db list`、`collections list`、`collections info <name> --sample N`、`sql "SHOW TABLES"`、`query <collection> --text "..."`、`get <collection> --limit N` 及 `-o json` 输出,确认无报错且结果符合预期。 related to #55 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Packs a command-line interface (CLI) as a public executable entry point. * Adds DB management commands: list, create, delete. * Adds collection commands: list, create, delete, info (with optional sample). * Adds query, document retrieval, and raw SQL execution commands. * Supports embedded/server connection modes, configurable credentials, and output formats (table or JSON). <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary close #137 refactor DefaultEmbeddingFunction. Split it into two classes: OnnxEmbeddingFunction and DefaultEmbeddingFunction. DefaultEmbeddingFunction worked based on OnnxEmbeddingFunction. OnnxEmbeddingFunction can execute model based on ONNX. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a standalone ONNX-based embedding implementation and exposed it as an embedding option. * **Refactor** * Default embedding now delegates embedding work to the new ONNX embedding path for simpler, modular behavior. * **Breaking Change** * Removed several public embedding-related attributes and updated the default embedding constructor signature. * **Tests** * Added unit tests for the ONNX embedding and adjusted test startup path handling. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary close #70 Pyseekdb depends on onnxruntime to execute default embedding function. But onnxruntime doesn't support python3.14 yet and we waited it too long. ## Solution Description We use Sentence Transformers to execute default embedding model on python3.14. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Broadened Python support to include newer 3.14+ runtimes with an optimized embedding backend on those versions * **Chores** * CI updated to run tests across multiple Python versions and test modes with more robust pass/fail checks * Dependency declarations adjusted for broader Python compatibility and conditional packages * Reduced routine log verbosity for successful client operations; improved connection-close log details * Deferred network library imports to improve import-time behavior * **Tests** * Added and refactored tests to validate embedding behavior across Python versions and simplified integration flows <!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
merge from functions from develop to release/v1.1.0: