Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support python3.12
Browse files Browse the repository at this point in the history
https://docs.python.org/dev/whatsnew/3.12.html

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
XuanYang-cn committed Jan 11, 2024
1 parent da7c3b7 commit 72cbbbf
Showing 20 changed files with 438 additions and 439 deletions.
6 changes: 3 additions & 3 deletions .github/mergify.yml
Original file line number Diff line number Diff line change
@@ -7,9 +7,9 @@ pull_request_rules:
- "status-success=Run Python Tests (3.8)"
- "status-success=Run Check Proto (3.8)"
- "status-success=Code lint check (3.8)"
- "status-success=Run Python Tests (3.11)"
- "status-success=Run Check Proto (3.11)"
- "status-success=Code lint check (3.11)"
- "status-success=Run Python Tests (3.12)"
- "status-success=Run Check Proto (3.12)"
- "status-success=Code lint check (3.12)"
actions:
label:
add:
2 changes: 1 addition & 1 deletion .github/workflows/check_milvus_proto.yml
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.11]
python-version: [3.8, 3.12]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
2 changes: 1 addition & 1 deletion .github/workflows/code_checker.yml
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.11]
python-version: [3.8, 3.12]
steps:
- name: Checkout code
uses: actions/checkout@v2
4 changes: 2 additions & 2 deletions .github/workflows/publish_dev_package.yml
Original file line number Diff line number Diff line change
@@ -17,10 +17,10 @@ jobs:
run: |
git fetch --prune --unshallow
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: 3.11
python-version: 3.12
- name: Install pypa/build
run: >-
python -m
4 changes: 2 additions & 2 deletions .github/workflows/publish_on_release.yml
Original file line number Diff line number Diff line change
@@ -16,10 +16,10 @@ jobs:
run: |
git fetch --prune --unshallow
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: 3.11
python-version: 3.12
- name: Install pypa/build
run: >-
python -m
2 changes: 1 addition & 1 deletion .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.11]
python-version: [3.8, 3.12]

steps:
- name: Checkout code
27 changes: 13 additions & 14 deletions pymilvus/grpc_gen/common_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 31 additions & 31 deletions pymilvus/grpc_gen/common_pb2.pyi
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
DESCRIPTOR: _descriptor.FileDescriptor

class ErrorCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
Success: _ClassVar[ErrorCode]
UnexpectedError: _ClassVar[ErrorCode]
ConnectFailed: _ClassVar[ErrorCode]
@@ -70,7 +70,7 @@ class ErrorCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
DDRequestRace: _ClassVar[ErrorCode]

class IndexState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
IndexStateNone: _ClassVar[IndexState]
Unissued: _ClassVar[IndexState]
InProgress: _ClassVar[IndexState]
@@ -79,7 +79,7 @@ class IndexState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
Retry: _ClassVar[IndexState]

class SegmentState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
SegmentStateNone: _ClassVar[SegmentState]
NotExist: _ClassVar[SegmentState]
Growing: _ClassVar[SegmentState]
@@ -90,7 +90,7 @@ class SegmentState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
Importing: _ClassVar[SegmentState]

class PlaceholderType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
None: _ClassVar[PlaceholderType]
BinaryVector: _ClassVar[PlaceholderType]
FloatVector: _ClassVar[PlaceholderType]
@@ -100,7 +100,7 @@ class PlaceholderType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
VarChar: _ClassVar[PlaceholderType]

class MsgType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
Undefined: _ClassVar[MsgType]
CreateCollection: _ClassVar[MsgType]
DropCollection: _ClassVar[MsgType]
@@ -204,26 +204,26 @@ class MsgType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
ListDatabases: _ClassVar[MsgType]

class DslType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
Dsl: _ClassVar[DslType]
BoolExprV1: _ClassVar[DslType]

class CompactionState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
UndefiedState: _ClassVar[CompactionState]
Executing: _ClassVar[CompactionState]
Completed: _ClassVar[CompactionState]

class ConsistencyLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
Strong: _ClassVar[ConsistencyLevel]
Session: _ClassVar[ConsistencyLevel]
Bounded: _ClassVar[ConsistencyLevel]
Eventually: _ClassVar[ConsistencyLevel]
Customized: _ClassVar[ConsistencyLevel]

class ImportState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
ImportPending: _ClassVar[ImportState]
ImportFailed: _ClassVar[ImportState]
ImportStarted: _ClassVar[ImportState]
@@ -233,13 +233,13 @@ class ImportState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
ImportFailedAndCleaned: _ClassVar[ImportState]

class ObjectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
Collection: _ClassVar[ObjectType]
Global: _ClassVar[ObjectType]
User: _ClassVar[ObjectType]

class ObjectPrivilege(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
PrivilegeAll: _ClassVar[ObjectPrivilege]
PrivilegeCreateCollection: _ClassVar[ObjectPrivilege]
PrivilegeDropCollection: _ClassVar[ObjectPrivilege]
@@ -286,15 +286,15 @@ class ObjectPrivilege(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
PrivilegeGetFlushState: _ClassVar[ObjectPrivilege]

class StateCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
Initializing: _ClassVar[StateCode]
Healthy: _ClassVar[StateCode]
Abnormal: _ClassVar[StateCode]
StandBy: _ClassVar[StateCode]
Stopping: _ClassVar[StateCode]

class LoadState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
LoadStateNotExist: _ClassVar[LoadState]
LoadStateNotLoad: _ClassVar[LoadState]
LoadStateLoading: _ClassVar[LoadState]
@@ -557,7 +557,7 @@ PRIVILEGE_EXT_OBJ_FIELD_NUMBER: _ClassVar[int]
privilege_ext_obj: _descriptor.FieldDescriptor

class Status(_message.Message):
__slots__ = ["error_code", "reason", "code", "retriable", "detail"]
__slots__ = ("error_code", "reason", "code", "retriable", "detail")
ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
REASON_FIELD_NUMBER: _ClassVar[int]
CODE_FIELD_NUMBER: _ClassVar[int]
@@ -571,29 +571,29 @@ class Status(_message.Message):
def __init__(self, error_code: _Optional[_Union[ErrorCode, str]] = ..., reason: _Optional[str] = ..., code: _Optional[int] = ..., retriable: bool = ..., detail: _Optional[str] = ...) -> None: ...

class KeyValuePair(_message.Message):
__slots__ = ["key", "value"]
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...

class KeyDataPair(_message.Message):
__slots__ = ["key", "data"]
__slots__ = ("key", "data")
KEY_FIELD_NUMBER: _ClassVar[int]
DATA_FIELD_NUMBER: _ClassVar[int]
key: str
data: bytes
def __init__(self, key: _Optional[str] = ..., data: _Optional[bytes] = ...) -> None: ...

class Blob(_message.Message):
__slots__ = ["value"]
__slots__ = ("value",)
VALUE_FIELD_NUMBER: _ClassVar[int]
value: bytes
def __init__(self, value: _Optional[bytes] = ...) -> None: ...

class PlaceholderValue(_message.Message):
__slots__ = ["tag", "type", "values"]
__slots__ = ("tag", "type", "values")
TAG_FIELD_NUMBER: _ClassVar[int]
TYPE_FIELD_NUMBER: _ClassVar[int]
VALUES_FIELD_NUMBER: _ClassVar[int]
@@ -603,23 +603,23 @@ class PlaceholderValue(_message.Message):
def __init__(self, tag: _Optional[str] = ..., type: _Optional[_Union[PlaceholderType, str]] = ..., values: _Optional[_Iterable[bytes]] = ...) -> None: ...

class PlaceholderGroup(_message.Message):
__slots__ = ["placeholders"]
__slots__ = ("placeholders",)
PLACEHOLDERS_FIELD_NUMBER: _ClassVar[int]
placeholders: _containers.RepeatedCompositeFieldContainer[PlaceholderValue]
def __init__(self, placeholders: _Optional[_Iterable[_Union[PlaceholderValue, _Mapping]]] = ...) -> None: ...

class Address(_message.Message):
__slots__ = ["ip", "port"]
__slots__ = ("ip", "port")
IP_FIELD_NUMBER: _ClassVar[int]
PORT_FIELD_NUMBER: _ClassVar[int]
ip: str
port: int
def __init__(self, ip: _Optional[str] = ..., port: _Optional[int] = ...) -> None: ...

class MsgBase(_message.Message):
__slots__ = ["msg_type", "msgID", "timestamp", "sourceID", "targetID", "properties", "replicateInfo"]
__slots__ = ("msg_type", "msgID", "timestamp", "sourceID", "targetID", "properties", "replicateInfo")
class PropertiesEntry(_message.Message):
__slots__ = ["key", "value"]
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
@@ -642,29 +642,29 @@ class MsgBase(_message.Message):
def __init__(self, msg_type: _Optional[_Union[MsgType, str]] = ..., msgID: _Optional[int] = ..., timestamp: _Optional[int] = ..., sourceID: _Optional[int] = ..., targetID: _Optional[int] = ..., properties: _Optional[_Mapping[str, str]] = ..., replicateInfo: _Optional[_Union[ReplicateInfo, _Mapping]] = ...) -> None: ...

class ReplicateInfo(_message.Message):
__slots__ = ["isReplicate", "msgTimestamp"]
__slots__ = ("isReplicate", "msgTimestamp")
ISREPLICATE_FIELD_NUMBER: _ClassVar[int]
MSGTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
isReplicate: bool
msgTimestamp: int
def __init__(self, isReplicate: bool = ..., msgTimestamp: _Optional[int] = ...) -> None: ...

class MsgHeader(_message.Message):
__slots__ = ["base"]
__slots__ = ("base",)
BASE_FIELD_NUMBER: _ClassVar[int]
base: MsgBase
def __init__(self, base: _Optional[_Union[MsgBase, _Mapping]] = ...) -> None: ...

class DMLMsgHeader(_message.Message):
__slots__ = ["base", "shardName"]
__slots__ = ("base", "shardName")
BASE_FIELD_NUMBER: _ClassVar[int]
SHARDNAME_FIELD_NUMBER: _ClassVar[int]
base: MsgBase
shardName: str
def __init__(self, base: _Optional[_Union[MsgBase, _Mapping]] = ..., shardName: _Optional[str] = ...) -> None: ...

class PrivilegeExt(_message.Message):
__slots__ = ["object_type", "object_privilege", "object_name_index", "object_name_indexs"]
__slots__ = ("object_type", "object_privilege", "object_name_index", "object_name_indexs")
OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int]
OBJECT_PRIVILEGE_FIELD_NUMBER: _ClassVar[int]
OBJECT_NAME_INDEX_FIELD_NUMBER: _ClassVar[int]
@@ -676,17 +676,17 @@ class PrivilegeExt(_message.Message):
def __init__(self, object_type: _Optional[_Union[ObjectType, str]] = ..., object_privilege: _Optional[_Union[ObjectPrivilege, str]] = ..., object_name_index: _Optional[int] = ..., object_name_indexs: _Optional[int] = ...) -> None: ...

class SegmentStats(_message.Message):
__slots__ = ["SegmentID", "NumRows"]
__slots__ = ("SegmentID", "NumRows")
SEGMENTID_FIELD_NUMBER: _ClassVar[int]
NUMROWS_FIELD_NUMBER: _ClassVar[int]
SegmentID: int
NumRows: int
def __init__(self, SegmentID: _Optional[int] = ..., NumRows: _Optional[int] = ...) -> None: ...

class ClientInfo(_message.Message):
__slots__ = ["sdk_type", "sdk_version", "local_time", "user", "host", "reserved"]
__slots__ = ("sdk_type", "sdk_version", "local_time", "user", "host", "reserved")
class ReservedEntry(_message.Message):
__slots__ = ["key", "value"]
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
@@ -707,9 +707,9 @@ class ClientInfo(_message.Message):
def __init__(self, sdk_type: _Optional[str] = ..., sdk_version: _Optional[str] = ..., local_time: _Optional[str] = ..., user: _Optional[str] = ..., host: _Optional[str] = ..., reserved: _Optional[_Mapping[str, str]] = ...) -> None: ...

class ServerInfo(_message.Message):
__slots__ = ["build_tags", "build_time", "git_commit", "go_version", "deploy_mode", "reserved"]
__slots__ = ("build_tags", "build_time", "git_commit", "go_version", "deploy_mode", "reserved")
class ReservedEntry(_message.Message):
__slots__ = ["key", "value"]
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
10 changes: 5 additions & 5 deletions pymilvus/grpc_gen/feder_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions pymilvus/grpc_gen/feder_pb2.pyi
Original file line number Diff line number Diff line change
@@ -7,23 +7,23 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
DESCRIPTOR: _descriptor.FileDescriptor

class SegmentIndexData(_message.Message):
__slots__ = ["segmentID", "index_data"]
__slots__ = ("segmentID", "index_data")
SEGMENTID_FIELD_NUMBER: _ClassVar[int]
INDEX_DATA_FIELD_NUMBER: _ClassVar[int]
segmentID: int
index_data: str
def __init__(self, segmentID: _Optional[int] = ..., index_data: _Optional[str] = ...) -> None: ...

class FederSegmentSearchResult(_message.Message):
__slots__ = ["segmentID", "visit_info"]
__slots__ = ("segmentID", "visit_info")
SEGMENTID_FIELD_NUMBER: _ClassVar[int]
VISIT_INFO_FIELD_NUMBER: _ClassVar[int]
segmentID: int
visit_info: str
def __init__(self, segmentID: _Optional[int] = ..., visit_info: _Optional[str] = ...) -> None: ...

class ListIndexedSegmentRequest(_message.Message):
__slots__ = ["base", "collection_name", "index_name"]
__slots__ = ("base", "collection_name", "index_name")
BASE_FIELD_NUMBER: _ClassVar[int]
COLLECTION_NAME_FIELD_NUMBER: _ClassVar[int]
INDEX_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -33,15 +33,15 @@ class ListIndexedSegmentRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., collection_name: _Optional[str] = ..., index_name: _Optional[str] = ...) -> None: ...

class ListIndexedSegmentResponse(_message.Message):
__slots__ = ["status", "segmentIDs"]
__slots__ = ("status", "segmentIDs")
STATUS_FIELD_NUMBER: _ClassVar[int]
SEGMENTIDS_FIELD_NUMBER: _ClassVar[int]
status: _common_pb2.Status
segmentIDs: _containers.RepeatedScalarFieldContainer[int]
def __init__(self, status: _Optional[_Union[_common_pb2.Status, _Mapping]] = ..., segmentIDs: _Optional[_Iterable[int]] = ...) -> None: ...

class DescribeSegmentIndexDataRequest(_message.Message):
__slots__ = ["base", "collection_name", "index_name", "segmentsIDs"]
__slots__ = ("base", "collection_name", "index_name", "segmentsIDs")
BASE_FIELD_NUMBER: _ClassVar[int]
COLLECTION_NAME_FIELD_NUMBER: _ClassVar[int]
INDEX_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -53,9 +53,9 @@ class DescribeSegmentIndexDataRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., collection_name: _Optional[str] = ..., index_name: _Optional[str] = ..., segmentsIDs: _Optional[_Iterable[int]] = ...) -> None: ...

class DescribeSegmentIndexDataResponse(_message.Message):
__slots__ = ["status", "index_data", "index_params"]
__slots__ = ("status", "index_data", "index_params")
class IndexDataEntry(_message.Message):
__slots__ = ["key", "value"]
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: int
303 changes: 151 additions & 152 deletions pymilvus/grpc_gen/milvus_pb2.py

Large diffs are not rendered by default.

336 changes: 168 additions & 168 deletions pymilvus/grpc_gen/milvus_pb2.pyi

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions pymilvus/grpc_gen/msg_pb2.py
20 changes: 10 additions & 10 deletions pymilvus/grpc_gen/msg_pb2.pyi
Original file line number Diff line number Diff line change
@@ -9,14 +9,14 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
DESCRIPTOR: _descriptor.FileDescriptor

class InsertDataVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
RowBased: _ClassVar[InsertDataVersion]
ColumnBased: _ClassVar[InsertDataVersion]
RowBased: InsertDataVersion
ColumnBased: InsertDataVersion

class InsertRequest(_message.Message):
__slots__ = ["base", "shardName", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID", "segmentID", "timestamps", "rowIDs", "row_data", "fields_data", "num_rows", "version"]
__slots__ = ("base", "shardName", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID", "segmentID", "timestamps", "rowIDs", "row_data", "fields_data", "num_rows", "version")
BASE_FIELD_NUMBER: _ClassVar[int]
SHARDNAME_FIELD_NUMBER: _ClassVar[int]
DB_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -50,7 +50,7 @@ class InsertRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., shardName: _Optional[str] = ..., db_name: _Optional[str] = ..., collection_name: _Optional[str] = ..., partition_name: _Optional[str] = ..., dbID: _Optional[int] = ..., collectionID: _Optional[int] = ..., partitionID: _Optional[int] = ..., segmentID: _Optional[int] = ..., timestamps: _Optional[_Iterable[int]] = ..., rowIDs: _Optional[_Iterable[int]] = ..., row_data: _Optional[_Iterable[_Union[_common_pb2.Blob, _Mapping]]] = ..., fields_data: _Optional[_Iterable[_Union[_schema_pb2.FieldData, _Mapping]]] = ..., num_rows: _Optional[int] = ..., version: _Optional[_Union[InsertDataVersion, str]] = ...) -> None: ...

class DeleteRequest(_message.Message):
__slots__ = ["base", "shardName", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID", "int64_primary_keys", "timestamps", "num_rows", "primary_keys"]
__slots__ = ("base", "shardName", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID", "int64_primary_keys", "timestamps", "num_rows", "primary_keys")
BASE_FIELD_NUMBER: _ClassVar[int]
SHARDNAME_FIELD_NUMBER: _ClassVar[int]
DB_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -78,7 +78,7 @@ class DeleteRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., shardName: _Optional[str] = ..., db_name: _Optional[str] = ..., collection_name: _Optional[str] = ..., partition_name: _Optional[str] = ..., dbID: _Optional[int] = ..., collectionID: _Optional[int] = ..., partitionID: _Optional[int] = ..., int64_primary_keys: _Optional[_Iterable[int]] = ..., timestamps: _Optional[_Iterable[int]] = ..., num_rows: _Optional[int] = ..., primary_keys: _Optional[_Union[_schema_pb2.IDs, _Mapping]] = ...) -> None: ...

class MsgPosition(_message.Message):
__slots__ = ["channel_name", "msgID", "msgGroup", "timestamp"]
__slots__ = ("channel_name", "msgID", "msgGroup", "timestamp")
CHANNEL_NAME_FIELD_NUMBER: _ClassVar[int]
MSGID_FIELD_NUMBER: _ClassVar[int]
MSGGROUP_FIELD_NUMBER: _ClassVar[int]
@@ -90,7 +90,7 @@ class MsgPosition(_message.Message):
def __init__(self, channel_name: _Optional[str] = ..., msgID: _Optional[bytes] = ..., msgGroup: _Optional[str] = ..., timestamp: _Optional[int] = ...) -> None: ...

class CreateCollectionRequest(_message.Message):
__slots__ = ["base", "db_name", "collectionName", "partitionName", "dbID", "collectionID", "partitionID", "schema", "virtualChannelNames", "physicalChannelNames", "partitionIDs"]
__slots__ = ("base", "db_name", "collectionName", "partitionName", "dbID", "collectionID", "partitionID", "schema", "virtualChannelNames", "physicalChannelNames", "partitionIDs")
BASE_FIELD_NUMBER: _ClassVar[int]
DB_NAME_FIELD_NUMBER: _ClassVar[int]
COLLECTIONNAME_FIELD_NUMBER: _ClassVar[int]
@@ -116,7 +116,7 @@ class CreateCollectionRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., db_name: _Optional[str] = ..., collectionName: _Optional[str] = ..., partitionName: _Optional[str] = ..., dbID: _Optional[int] = ..., collectionID: _Optional[int] = ..., partitionID: _Optional[int] = ..., schema: _Optional[bytes] = ..., virtualChannelNames: _Optional[_Iterable[str]] = ..., physicalChannelNames: _Optional[_Iterable[str]] = ..., partitionIDs: _Optional[_Iterable[int]] = ...) -> None: ...

class DropCollectionRequest(_message.Message):
__slots__ = ["base", "db_name", "collectionName", "dbID", "collectionID"]
__slots__ = ("base", "db_name", "collectionName", "dbID", "collectionID")
BASE_FIELD_NUMBER: _ClassVar[int]
DB_NAME_FIELD_NUMBER: _ClassVar[int]
COLLECTIONNAME_FIELD_NUMBER: _ClassVar[int]
@@ -130,7 +130,7 @@ class DropCollectionRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., db_name: _Optional[str] = ..., collectionName: _Optional[str] = ..., dbID: _Optional[int] = ..., collectionID: _Optional[int] = ...) -> None: ...

class CreatePartitionRequest(_message.Message):
__slots__ = ["base", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID"]
__slots__ = ("base", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID")
BASE_FIELD_NUMBER: _ClassVar[int]
DB_NAME_FIELD_NUMBER: _ClassVar[int]
COLLECTION_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -148,7 +148,7 @@ class CreatePartitionRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., db_name: _Optional[str] = ..., collection_name: _Optional[str] = ..., partition_name: _Optional[str] = ..., dbID: _Optional[int] = ..., collectionID: _Optional[int] = ..., partitionID: _Optional[int] = ...) -> None: ...

class DropPartitionRequest(_message.Message):
__slots__ = ["base", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID"]
__slots__ = ("base", "db_name", "collection_name", "partition_name", "dbID", "collectionID", "partitionID")
BASE_FIELD_NUMBER: _ClassVar[int]
DB_NAME_FIELD_NUMBER: _ClassVar[int]
COLLECTION_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -166,13 +166,13 @@ class DropPartitionRequest(_message.Message):
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ..., db_name: _Optional[str] = ..., collection_name: _Optional[str] = ..., partition_name: _Optional[str] = ..., dbID: _Optional[int] = ..., collectionID: _Optional[int] = ..., partitionID: _Optional[int] = ...) -> None: ...

class TimeTickMsg(_message.Message):
__slots__ = ["base"]
__slots__ = ("base",)
BASE_FIELD_NUMBER: _ClassVar[int]
base: _common_pb2.MsgBase
def __init__(self, base: _Optional[_Union[_common_pb2.MsgBase, _Mapping]] = ...) -> None: ...

class DataNodeTtMsg(_message.Message):
__slots__ = ["base", "channel_name", "timestamp", "segments_stats"]
__slots__ = ("base", "channel_name", "timestamp", "segments_stats")
BASE_FIELD_NUMBER: _ClassVar[int]
CHANNEL_NAME_FIELD_NUMBER: _ClassVar[int]
TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
10 changes: 5 additions & 5 deletions pymilvus/grpc_gen/schema_pb2.py
44 changes: 22 additions & 22 deletions pymilvus/grpc_gen/schema_pb2.pyi
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
DESCRIPTOR: _descriptor.FileDescriptor

class DataType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
None: _ClassVar[DataType]
Bool: _ClassVar[DataType]
Int8: _ClassVar[DataType]
@@ -28,7 +28,7 @@ class DataType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
BFloat16Vector: _ClassVar[DataType]

class FieldState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
__slots__ = ()
FieldCreated: _ClassVar[FieldState]
FieldCreating: _ClassVar[FieldState]
FieldDropping: _ClassVar[FieldState]
@@ -55,7 +55,7 @@ FieldDropping: FieldState
FieldDropped: FieldState

class FieldSchema(_message.Message):
__slots__ = ["fieldID", "name", "is_primary_key", "description", "data_type", "type_params", "index_params", "autoID", "state", "element_type", "default_value", "is_dynamic", "is_partition_key"]
__slots__ = ("fieldID", "name", "is_primary_key", "description", "data_type", "type_params", "index_params", "autoID", "state", "element_type", "default_value", "is_dynamic", "is_partition_key")
FIELDID_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
IS_PRIMARY_KEY_FIELD_NUMBER: _ClassVar[int]
@@ -85,7 +85,7 @@ class FieldSchema(_message.Message):
def __init__(self, fieldID: _Optional[int] = ..., name: _Optional[str] = ..., is_primary_key: bool = ..., description: _Optional[str] = ..., data_type: _Optional[_Union[DataType, str]] = ..., type_params: _Optional[_Iterable[_Union[_common_pb2.KeyValuePair, _Mapping]]] = ..., index_params: _Optional[_Iterable[_Union[_common_pb2.KeyValuePair, _Mapping]]] = ..., autoID: bool = ..., state: _Optional[_Union[FieldState, str]] = ..., element_type: _Optional[_Union[DataType, str]] = ..., default_value: _Optional[_Union[ValueField, _Mapping]] = ..., is_dynamic: bool = ..., is_partition_key: bool = ...) -> None: ...

class CollectionSchema(_message.Message):
__slots__ = ["name", "description", "autoID", "fields", "enable_dynamic_field"]
__slots__ = ("name", "description", "autoID", "fields", "enable_dynamic_field")
NAME_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
AUTOID_FIELD_NUMBER: _ClassVar[int]
@@ -99,63 +99,63 @@ class CollectionSchema(_message.Message):
def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., autoID: bool = ..., fields: _Optional[_Iterable[_Union[FieldSchema, _Mapping]]] = ..., enable_dynamic_field: bool = ...) -> None: ...

class BoolArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[bool]
def __init__(self, data: _Optional[_Iterable[bool]] = ...) -> None: ...

class IntArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[int]
def __init__(self, data: _Optional[_Iterable[int]] = ...) -> None: ...

class LongArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[int]
def __init__(self, data: _Optional[_Iterable[int]] = ...) -> None: ...

class FloatArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[float]
def __init__(self, data: _Optional[_Iterable[float]] = ...) -> None: ...

class DoubleArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[float]
def __init__(self, data: _Optional[_Iterable[float]] = ...) -> None: ...

class BytesArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[bytes]
def __init__(self, data: _Optional[_Iterable[bytes]] = ...) -> None: ...

class StringArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[str]
def __init__(self, data: _Optional[_Iterable[str]] = ...) -> None: ...

class ArrayArray(_message.Message):
__slots__ = ["data", "element_type"]
__slots__ = ("data", "element_type")
DATA_FIELD_NUMBER: _ClassVar[int]
ELEMENT_TYPE_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedCompositeFieldContainer[ScalarField]
element_type: DataType
def __init__(self, data: _Optional[_Iterable[_Union[ScalarField, _Mapping]]] = ..., element_type: _Optional[_Union[DataType, str]] = ...) -> None: ...

class JSONArray(_message.Message):
__slots__ = ["data"]
__slots__ = ("data",)
DATA_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[bytes]
def __init__(self, data: _Optional[_Iterable[bytes]] = ...) -> None: ...

class ValueField(_message.Message):
__slots__ = ["bool_data", "int_data", "long_data", "float_data", "double_data", "string_data", "bytes_data"]
__slots__ = ("bool_data", "int_data", "long_data", "float_data", "double_data", "string_data", "bytes_data")
BOOL_DATA_FIELD_NUMBER: _ClassVar[int]
INT_DATA_FIELD_NUMBER: _ClassVar[int]
LONG_DATA_FIELD_NUMBER: _ClassVar[int]
@@ -173,7 +173,7 @@ class ValueField(_message.Message):
def __init__(self, bool_data: bool = ..., int_data: _Optional[int] = ..., long_data: _Optional[int] = ..., float_data: _Optional[float] = ..., double_data: _Optional[float] = ..., string_data: _Optional[str] = ..., bytes_data: _Optional[bytes] = ...) -> None: ...

class ScalarField(_message.Message):
__slots__ = ["bool_data", "int_data", "long_data", "float_data", "double_data", "string_data", "bytes_data", "array_data", "json_data"]
__slots__ = ("bool_data", "int_data", "long_data", "float_data", "double_data", "string_data", "bytes_data", "array_data", "json_data")
BOOL_DATA_FIELD_NUMBER: _ClassVar[int]
INT_DATA_FIELD_NUMBER: _ClassVar[int]
LONG_DATA_FIELD_NUMBER: _ClassVar[int]
@@ -195,7 +195,7 @@ class ScalarField(_message.Message):
def __init__(self, bool_data: _Optional[_Union[BoolArray, _Mapping]] = ..., int_data: _Optional[_Union[IntArray, _Mapping]] = ..., long_data: _Optional[_Union[LongArray, _Mapping]] = ..., float_data: _Optional[_Union[FloatArray, _Mapping]] = ..., double_data: _Optional[_Union[DoubleArray, _Mapping]] = ..., string_data: _Optional[_Union[StringArray, _Mapping]] = ..., bytes_data: _Optional[_Union[BytesArray, _Mapping]] = ..., array_data: _Optional[_Union[ArrayArray, _Mapping]] = ..., json_data: _Optional[_Union[JSONArray, _Mapping]] = ...) -> None: ...

class VectorField(_message.Message):
__slots__ = ["dim", "float_vector", "binary_vector", "float16_vector", "bfloat16_vector"]
__slots__ = ("dim", "float_vector", "binary_vector", "float16_vector", "bfloat16_vector")
DIM_FIELD_NUMBER: _ClassVar[int]
FLOAT_VECTOR_FIELD_NUMBER: _ClassVar[int]
BINARY_VECTOR_FIELD_NUMBER: _ClassVar[int]
@@ -209,7 +209,7 @@ class VectorField(_message.Message):
def __init__(self, dim: _Optional[int] = ..., float_vector: _Optional[_Union[FloatArray, _Mapping]] = ..., binary_vector: _Optional[bytes] = ..., float16_vector: _Optional[bytes] = ..., bfloat16_vector: _Optional[bytes] = ...) -> None: ...

class FieldData(_message.Message):
__slots__ = ["type", "field_name", "scalars", "vectors", "field_id", "is_dynamic"]
__slots__ = ("type", "field_name", "scalars", "vectors", "field_id", "is_dynamic")
TYPE_FIELD_NUMBER: _ClassVar[int]
FIELD_NAME_FIELD_NUMBER: _ClassVar[int]
SCALARS_FIELD_NUMBER: _ClassVar[int]
@@ -225,15 +225,15 @@ class FieldData(_message.Message):
def __init__(self, type: _Optional[_Union[DataType, str]] = ..., field_name: _Optional[str] = ..., scalars: _Optional[_Union[ScalarField, _Mapping]] = ..., vectors: _Optional[_Union[VectorField, _Mapping]] = ..., field_id: _Optional[int] = ..., is_dynamic: bool = ...) -> None: ...

class IDs(_message.Message):
__slots__ = ["int_id", "str_id"]
__slots__ = ("int_id", "str_id")
INT_ID_FIELD_NUMBER: _ClassVar[int]
STR_ID_FIELD_NUMBER: _ClassVar[int]
int_id: LongArray
str_id: StringArray
def __init__(self, int_id: _Optional[_Union[LongArray, _Mapping]] = ..., str_id: _Optional[_Union[StringArray, _Mapping]] = ...) -> None: ...

class SearchResultData(_message.Message):
__slots__ = ["num_queries", "top_k", "fields_data", "scores", "ids", "topks", "output_fields", "group_by_field_value"]
__slots__ = ("num_queries", "top_k", "fields_data", "scores", "ids", "topks", "output_fields", "group_by_field_value")
NUM_QUERIES_FIELD_NUMBER: _ClassVar[int]
TOP_K_FIELD_NUMBER: _ClassVar[int]
FIELDS_DATA_FIELD_NUMBER: _ClassVar[int]
@@ -253,21 +253,21 @@ class SearchResultData(_message.Message):
def __init__(self, num_queries: _Optional[int] = ..., top_k: _Optional[int] = ..., fields_data: _Optional[_Iterable[_Union[FieldData, _Mapping]]] = ..., scores: _Optional[_Iterable[float]] = ..., ids: _Optional[_Union[IDs, _Mapping]] = ..., topks: _Optional[_Iterable[int]] = ..., output_fields: _Optional[_Iterable[str]] = ..., group_by_field_value: _Optional[_Union[FieldData, _Mapping]] = ...) -> None: ...

class VectorClusteringInfo(_message.Message):
__slots__ = ["field", "centroid"]
__slots__ = ("field", "centroid")
FIELD_FIELD_NUMBER: _ClassVar[int]
CENTROID_FIELD_NUMBER: _ClassVar[int]
field: str
centroid: VectorField
def __init__(self, field: _Optional[str] = ..., centroid: _Optional[_Union[VectorField, _Mapping]] = ...) -> None: ...

class ScalarClusteringInfo(_message.Message):
__slots__ = ["field"]
__slots__ = ("field",)
FIELD_FIELD_NUMBER: _ClassVar[int]
field: str
def __init__(self, field: _Optional[str] = ...) -> None: ...

class ClusteringInfo(_message.Message):
__slots__ = ["vector_clustering_infos", "scalar_clustering_infos"]
__slots__ = ("vector_clustering_infos", "scalar_clustering_infos")
VECTOR_CLUSTERING_INFOS_FIELD_NUMBER: _ClassVar[int]
SCALAR_CLUSTERING_INFOS_FIELD_NUMBER: _ClassVar[int]
vector_clustering_infos: _containers.RepeatedCompositeFieldContainer[VectorClusteringInfo]
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -17,7 +17,8 @@ requires-python = '>=3.8'
description = "Python Sdk for Milvus"
readme = "README.md"
dependencies=[
"grpcio>=1.49.1,<=1.58.0",
"setuptools >= 67", # python3.12 pkg_resources
"grpcio>=1.49.1,<=1.60.0",
"protobuf>=3.20.0",
"environs<=9.5.0",
"ujson>=2.0.0",
12 changes: 6 additions & 6 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -2,10 +2,10 @@ build==0.4.0
certifi==2023.7.22
chardet==4.0.0
environs==9.5.0
grpcio==1.56.2
grpcio-testing==1.56.2
grpcio-tools==1.56.2
protobuf>=3.17.1
grpcio==1.60.0
grpcio-testing==1.60.0
grpcio-tools==1.60.0
protobuf==4.25.2
idna==2.10
packaging==20.9
pep517==0.10.0
@@ -30,8 +30,8 @@ sphinxcontrib-prettyspecialmethods
tqdm==4.65.0
pyarrow>=12.0.0
pytest>=5.3.4
pytest-cov==2.8.1
pytest-timeout==1.3.4
pytest-cov>=2.8.1
pytest-timeout>=1.3.4
pandas>=1.1.5
ruff
black
6 changes: 3 additions & 3 deletions test_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pytest>=5.3.4
pytest-cov==2.8.1
pytest-timeout==1.3.4
grpcio-testing
pytest-cov>=2.8.1
pytest-timeout>=1.3.4
grpcio-testing==1.60.0
sklearn==0.0
ruff
black
4 changes: 2 additions & 2 deletions tests/test_create_collection.py
Original file line number Diff line number Diff line change
@@ -66,15 +66,15 @@ class TestCreateCollection:
def collection_name(self):
return f"test_collection_{random.randint(100000, 999999)}"

def setup(self) -> None:
def setup_method(self) -> None:
self._real_time = grpc_testing.strict_real_time()
self._real_time_channel = grpc_testing.channel(
milvus_pb2.DESCRIPTOR.services_by_name.values(), self._real_time
)
self._servicer = milvus_pb2.DESCRIPTOR.services_by_name["MilvusService"]
self._milvus = Milvus(channel=self._real_time_channel)

def teardown(self) -> None:
def teardown_method(self) -> None:
pass

def test_create_collection(self, collection_name):

0 comments on commit 72cbbbf

Please sign in to comment.