@@ -60,6 +60,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
60
60
table_name : str ,
61
61
* ,
62
62
credential : Optional [Union [AzureSasCredential , AzureNamedKeyCredential , TokenCredential ]] = None ,
63
+ api_version : Optional [str ] = None ,
63
64
** kwargs : Any ,
64
65
) -> None :
65
66
"""Create TableClient from a Credential.
@@ -82,7 +83,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
82
83
if not table_name :
83
84
raise ValueError ("Please specify a table name." )
84
85
self .table_name : str = table_name
85
- super (TableClient , self ).__init__ (endpoint , credential = credential , ** kwargs )
86
+ super (TableClient , self ).__init__ (endpoint , credential = credential , api_version = api_version , ** kwargs )
86
87
87
88
@classmethod
88
89
def from_connection_string (cls , conn_str : str , table_name : str , ** kwargs : Any ) -> "TableClient" :
@@ -263,7 +264,15 @@ def delete_table(self, **kwargs) -> None:
263
264
raise
264
265
265
266
@overload
266
- def delete_entity (self , partition_key : str , row_key : str , ** kwargs : Any ) -> None :
267
+ def delete_entity (
268
+ self ,
269
+ partition_key : str ,
270
+ row_key : str ,
271
+ * ,
272
+ etag : Optional [str ] = None ,
273
+ match_condition : Optional [MatchConditions ] = None ,
274
+ ** kwargs : Any ,
275
+ ) -> None :
267
276
"""Deletes the specified entity in a table. No error will be raised if
268
277
the entity or PartitionKey-RowKey pairing is not found.
269
278
@@ -288,7 +297,14 @@ def delete_entity(self, partition_key: str, row_key: str, **kwargs: Any) -> None
288
297
"""
289
298
290
299
@overload
291
- def delete_entity (self , entity : EntityType , ** kwargs : Any ) -> None :
300
+ def delete_entity (
301
+ self ,
302
+ entity : EntityType ,
303
+ * ,
304
+ etag : Optional [str ] = None ,
305
+ match_condition : Optional [MatchConditions ] = None ,
306
+ ** kwargs : Any ,
307
+ ) -> None :
292
308
"""Deletes the specified entity in a table. No error will be raised if
293
309
the entity or PartitionKey-RowKey pairing is not found.
294
310
@@ -390,7 +406,15 @@ def create_entity(self, entity: EntityType, **kwargs) -> Dict[str, Any]:
390
406
return _trim_service_metadata (metadata , content = content )
391
407
392
408
@distributed_trace
393
- def update_entity (self , entity : EntityType , mode : UpdateMode = UpdateMode .MERGE , ** kwargs ) -> Dict [str , Any ]:
409
+ def update_entity (
410
+ self ,
411
+ entity : EntityType ,
412
+ mode : UpdateMode = UpdateMode .MERGE ,
413
+ * ,
414
+ etag : Optional [str ] = None ,
415
+ match_condition : Optional [MatchConditions ] = None ,
416
+ ** kwargs ,
417
+ ) -> Dict [str , Any ]:
394
418
"""Update entity in a table.
395
419
396
420
:param entity: The properties for the table entity.
@@ -415,8 +439,6 @@ def update_entity(self, entity: EntityType, mode: UpdateMode = UpdateMode.MERGE,
415
439
:dedent: 16
416
440
:caption: Updating an already exiting entity in a Table
417
441
"""
418
- match_condition = kwargs .pop ("match_condition" , None )
419
- etag = kwargs .pop ("etag" , None )
420
442
if match_condition and not etag and isinstance (entity , TableEntity ):
421
443
etag = entity .metadata .get ("etag" )
422
444
match_condition = _get_match_condition (
@@ -462,7 +484,13 @@ def update_entity(self, entity: EntityType, mode: UpdateMode = UpdateMode.MERGE,
462
484
return _trim_service_metadata (metadata , content = content )
463
485
464
486
@distributed_trace
465
- def list_entities (self , ** kwargs ) -> ItemPaged [TableEntity ]:
487
+ def list_entities (
488
+ self ,
489
+ * ,
490
+ results_per_page : Optional [int ] = None ,
491
+ select : Optional [Union [str , List [str ]]] = None ,
492
+ ** kwargs ,
493
+ ) -> ItemPaged [TableEntity ]:
466
494
"""Lists entities in a table.
467
495
468
496
:keyword int results_per_page: Number of entities returned per service request.
@@ -481,22 +509,28 @@ def list_entities(self, **kwargs) -> ItemPaged[TableEntity]:
481
509
:dedent: 16
482
510
:caption: List all entities held within a table
483
511
"""
484
- user_select = kwargs .pop ("select" , None )
485
- if user_select and not isinstance (user_select , str ):
486
- user_select = "," .join (user_select )
487
- top = kwargs .pop ("results_per_page" , None )
512
+ if select and not isinstance (select , str ):
513
+ select = "," .join (select )
488
514
489
515
command = functools .partial (self ._client .table .query_entities , ** kwargs )
490
516
return ItemPaged (
491
517
command ,
492
518
table = self .table_name ,
493
- results_per_page = top ,
494
- select = user_select ,
519
+ results_per_page = results_per_page ,
520
+ select = select ,
495
521
page_iterator_class = TableEntityPropertiesPaged ,
496
522
)
497
523
498
524
@distributed_trace
499
- def query_entities (self , query_filter : str , ** kwargs ) -> ItemPaged [TableEntity ]:
525
+ def query_entities (
526
+ self ,
527
+ query_filter : str ,
528
+ * ,
529
+ results_per_page : Optional [int ] = None ,
530
+ select : Optional [Union [str , List [str ]]] = None ,
531
+ parameters : Optional [Dict [str , Any ]] = None ,
532
+ ** kwargs ,
533
+ ) -> ItemPaged [TableEntity ]:
500
534
# pylint: disable=line-too-long
501
535
"""Lists entities in a table.
502
536
@@ -520,25 +554,29 @@ def query_entities(self, query_filter: str, **kwargs) -> ItemPaged[TableEntity]:
520
554
:dedent: 8
521
555
:caption: Query entities held within a table
522
556
"""
523
- parameters = kwargs .pop ("parameters" , None )
524
557
query_filter = _parameter_filter_substitution (parameters , query_filter )
525
- top = kwargs .pop ("results_per_page" , None )
526
- user_select = kwargs .pop ("select" , None )
527
- if user_select and not isinstance (user_select , str ):
528
- user_select = "," .join (user_select )
558
+ if select and not isinstance (select , str ):
559
+ select = "," .join (select )
529
560
530
561
command = functools .partial (self ._client .table .query_entities , ** kwargs )
531
562
return ItemPaged (
532
563
command ,
533
564
table = self .table_name ,
534
- results_per_page = top ,
565
+ results_per_page = results_per_page ,
535
566
filter = query_filter ,
536
- select = user_select ,
567
+ select = select ,
537
568
page_iterator_class = TableEntityPropertiesPaged ,
538
569
)
539
570
540
571
@distributed_trace
541
- def get_entity (self , partition_key : str , row_key : str , ** kwargs ) -> TableEntity :
572
+ def get_entity (
573
+ self ,
574
+ partition_key : str ,
575
+ row_key : str ,
576
+ * ,
577
+ select : Optional [Union [str , List [str ]]] = None ,
578
+ ** kwargs ,
579
+ ) -> TableEntity :
542
580
"""Get a single entity in a table.
543
581
544
582
:param partition_key: The partition key of the entity.
@@ -560,9 +598,11 @@ def get_entity(self, partition_key: str, row_key: str, **kwargs) -> TableEntity:
560
598
:dedent: 16
561
599
:caption: Get a single entity from a table
562
600
"""
563
- user_select = kwargs .pop ("select" , None )
564
- if user_select and not isinstance (user_select , str ):
565
- user_select = "," .join (user_select )
601
+ user_select = None
602
+ if select and not isinstance (select , str ):
603
+ user_select = "," .join (select )
604
+ elif isinstance (select , str ):
605
+ user_select = select
566
606
try :
567
607
entity = self ._client .table .query_entity_with_partition_and_row_key (
568
608
table = self .table_name ,
0 commit comments