Skip to content

Commit 0702bf9

Browse files
authored
enhance: [2.4] Make load parameter naming normal (#2243) (#2244)
Previously added parameters for `load` API have leading underscore, which is misused and copied from `_async` parameter. The leading "_" is to avoid use python keyword `async` and other parameters do not have to follow this pattern. This PR make `load` API support parameter with or without leading underscore and update related comment. Note that the ones without leading "_" have higher priority than the ones with it. --------- Signed-off-by: Congqi Xia <[email protected]>
1 parent b3e8cbf commit 0702bf9

File tree

2 files changed

+37
-21
lines changed

2 files changed

+37
-21
lines changed

pymilvus/client/grpc_handler.py

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,25 +1142,31 @@ def load_collection(
11421142
check_pass_param(
11431143
collection_name=collection_name, replica_number=replica_number, timeout=timeout
11441144
)
1145-
_refresh = kwargs.get("_refresh", False)
1146-
_resource_groups = kwargs.get("_resource_groups")
1147-
_load_fields = kwargs.get("_load_fields")
1148-
_skip_load_dynamic_field = kwargs.get("_skip_load_dynamic_field", False)
1145+
# leading _ is misused for keywork escape for `async`
1146+
# other params now support prefix _ or not
1147+
# params without leading "_" have higher priority
1148+
refresh = kwargs.get("refresh", kwargs.get("_refresh", False))
1149+
resource_groups = kwargs.get("resource_groups", kwargs.get("_resource_groups"))
1150+
load_fields = kwargs.get("load_fields", kwargs.get("_load_fields"))
1151+
skip_load_dynamic_field = kwargs.get(
1152+
"skip_load_dynamic_field", kwargs.get("_skip_load_dynamic_field", False)
1153+
)
1154+
11491155
request = Prepare.load_collection(
11501156
"",
11511157
collection_name,
11521158
replica_number,
1153-
_refresh,
1154-
_resource_groups,
1155-
_load_fields,
1156-
_skip_load_dynamic_field,
1159+
refresh,
1160+
resource_groups,
1161+
load_fields,
1162+
skip_load_dynamic_field,
11571163
)
11581164
rf = self._stub.LoadCollection.future(request, timeout=timeout)
11591165
response = rf.result()
11601166
check_status(response)
11611167
_async = kwargs.get("_async", False)
11621168
if not _async:
1163-
self.wait_for_loading_collection(collection_name, timeout, is_refresh=_refresh)
1169+
self.wait_for_loading_collection(collection_name, timeout, is_refresh=refresh)
11641170

11651171
@retry_on_rpc_failure()
11661172
def load_collection_progress(self, collection_name: str, timeout: Optional[float] = None):
@@ -1213,19 +1219,25 @@ def load_partitions(
12131219
replica_number=replica_number,
12141220
timeout=timeout,
12151221
)
1216-
_refresh = kwargs.get("_refresh", False)
1217-
_resource_groups = kwargs.get("_resource_groups")
1218-
_load_fields = kwargs.get("_load_fields")
1219-
_skip_load_dynamic_field = kwargs.get("_skip_load_dynamic_field", False)
1222+
# leading _ is misused for keywork escape for `async`
1223+
# other params now support prefix _ or not
1224+
# params without leading "_" have higher priority
1225+
refresh = kwargs.get("refresh", kwargs.get("_refresh", False))
1226+
resource_groups = kwargs.get("resource_groups", kwargs.get("_resource_groups"))
1227+
load_fields = kwargs.get("load_fields", kwargs.get("_load_fields"))
1228+
skip_load_dynamic_field = kwargs.get(
1229+
"skip_load_dynamic_field", kwargs.get("_skip_load_dynamic_field", False)
1230+
)
1231+
12201232
request = Prepare.load_partitions(
12211233
"",
12221234
collection_name,
12231235
partition_names,
12241236
replica_number,
1225-
_refresh,
1226-
_resource_groups,
1227-
_load_fields,
1228-
_skip_load_dynamic_field,
1237+
refresh,
1238+
resource_groups,
1239+
load_fields,
1240+
skip_load_dynamic_field,
12291241
)
12301242
future = self._stub.LoadPartitions.future(request, timeout=timeout)
12311243

@@ -1234,7 +1246,7 @@ def load_partitions(
12341246
def _check():
12351247
if kwargs.get("sync", True):
12361248
self.wait_for_loading_partitions(
1237-
collection_name, partition_names, is_refresh=_refresh
1249+
collection_name, partition_names, is_refresh=refresh
12381250
)
12391251

12401252
load_partitions_future = LoadPartitionsFuture(future)
@@ -1250,7 +1262,7 @@ def _check():
12501262
check_status(response)
12511263
sync = kwargs.get("sync", True)
12521264
if sync:
1253-
self.wait_for_loading_partitions(collection_name, partition_names, is_refresh=_refresh)
1265+
self.wait_for_loading_partitions(collection_name, partition_names, is_refresh=refresh)
12541266
return None
12551267
return None
12561268

pymilvus/orm/collection.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,14 @@ def load(
391391
* *_async*(``bool``)
392392
Indicate if invoke asynchronously.
393393
394-
* *_refresh*(``bool``)
394+
* *refresh*(``bool``)
395395
Whether to renew the segment list of this collection before loading
396-
* *_resource_groups(``List[str]``)
396+
* *resource_groups(``List[str]``)
397397
Specify resource groups which can be used during loading.
398+
* *load_fields(``List[str]``)
399+
Specify load fields list needed during this load
400+
* *skip_load_dynamic_field(``bool``)
401+
Specify whether this load shall skip dynamic schmea field
398402
399403
Raises:
400404
MilvusException: If anything goes wrong.

0 commit comments

Comments
 (0)