Skip to content

Commit 555223a

Browse files
author
Yalin Li
authored
[Tables] Fix pylint errors (#33686)
* Fix pylint errors * Fix the same pylint error in other client ops * Address same errors in base_client.py * Remove two unnecessary pylint ignores * Fix errors in Analyze
1 parent 31e9842 commit 555223a

File tree

7 files changed

+162
-75
lines changed

7 files changed

+162
-75
lines changed

sdk/tables/azure-data-tables/azure/data/tables/_base_client.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import os
88
from uuid import uuid4
99
from urllib.parse import parse_qs, quote, urlparse
10-
from typing import Any, Dict, List, Optional, Mapping, Union
10+
from typing import Any, List, Optional, Mapping, Union
1111
from typing_extensions import Self
1212

1313
from azure.core.credentials import AzureSasCredential, AzureNamedKeyCredential, TokenCredential
@@ -49,8 +49,7 @@
4949
_DEV_CONN_STRING = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1" # pylint: disable=line-too-long
5050

5151

52-
def get_api_version(kwargs: Dict[str, Any], default: str) -> str:
53-
api_version = kwargs.pop("api_version", None)
52+
def get_api_version(api_version: Optional[str], default: str) -> str:
5453
if api_version and api_version not in _SUPPORTED_API_VERSIONS:
5554
versions = "\n".join(_SUPPORTED_API_VERSIONS)
5655
raise ValueError(f"Unsupported API version '{api_version}'. Please select from:\n{versions}")
@@ -71,6 +70,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
7170
endpoint: str,
7271
*,
7372
credential: Optional[Union[AzureSasCredential, AzureNamedKeyCredential, TokenCredential]] = None,
73+
api_version: Optional[str] = None,
7474
**kwargs: Any,
7575
) -> None:
7676
"""
@@ -135,7 +135,9 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
135135

136136
self._client = AzureTable(self.url, policies=kwargs.pop("policies", self._policies), **kwargs)
137137
# Incompatible assignment when assigning a str value to a Literal type variable
138-
self._client._config.version = get_api_version(kwargs, self._client._config.version) # type: ignore[assignment]
138+
self._client._config.version = get_api_version(
139+
api_version, self._client._config.version
140+
) # type: ignore[assignment]
139141

140142
@property
141143
def url(self) -> str:

sdk/tables/azure-data-tables/azure/data/tables/_serialize.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def _prepare_key(keyvalue: str) -> str:
4343
raise TypeError("PartitionKey or RowKey must be of type string.") from exc
4444

4545

46-
def _parameter_filter_substitution(parameters: Dict[str, str], query_filter: str) -> str:
46+
def _parameter_filter_substitution(parameters: Optional[Dict[str, str]], query_filter: str) -> str:
4747
"""Replace user defined parameters in filter.
4848
4949
:param parameters: User defined parameters

sdk/tables/azure-data-tables/azure/data/tables/_table_client.py

Lines changed: 65 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
6060
table_name: str,
6161
*,
6262
credential: Optional[Union[AzureSasCredential, AzureNamedKeyCredential, TokenCredential]] = None,
63+
api_version: Optional[str] = None,
6364
**kwargs: Any,
6465
) -> None:
6566
"""Create TableClient from a Credential.
@@ -82,7 +83,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
8283
if not table_name:
8384
raise ValueError("Please specify a table name.")
8485
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)
8687

8788
@classmethod
8889
def from_connection_string(cls, conn_str: str, table_name: str, **kwargs: Any) -> "TableClient":
@@ -263,7 +264,15 @@ def delete_table(self, **kwargs) -> None:
263264
raise
264265

265266
@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:
267276
"""Deletes the specified entity in a table. No error will be raised if
268277
the entity or PartitionKey-RowKey pairing is not found.
269278
@@ -288,7 +297,14 @@ def delete_entity(self, partition_key: str, row_key: str, **kwargs: Any) -> None
288297
"""
289298

290299
@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:
292308
"""Deletes the specified entity in a table. No error will be raised if
293309
the entity or PartitionKey-RowKey pairing is not found.
294310
@@ -390,7 +406,15 @@ def create_entity(self, entity: EntityType, **kwargs) -> Dict[str, Any]:
390406
return _trim_service_metadata(metadata, content=content)
391407

392408
@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]:
394418
"""Update entity in a table.
395419
396420
:param entity: The properties for the table entity.
@@ -415,8 +439,6 @@ def update_entity(self, entity: EntityType, mode: UpdateMode = UpdateMode.MERGE,
415439
:dedent: 16
416440
:caption: Updating an already exiting entity in a Table
417441
"""
418-
match_condition = kwargs.pop("match_condition", None)
419-
etag = kwargs.pop("etag", None)
420442
if match_condition and not etag and isinstance(entity, TableEntity):
421443
etag = entity.metadata.get("etag")
422444
match_condition = _get_match_condition(
@@ -462,7 +484,13 @@ def update_entity(self, entity: EntityType, mode: UpdateMode = UpdateMode.MERGE,
462484
return _trim_service_metadata(metadata, content=content)
463485

464486
@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]:
466494
"""Lists entities in a table.
467495
468496
:keyword int results_per_page: Number of entities returned per service request.
@@ -481,22 +509,28 @@ def list_entities(self, **kwargs) -> ItemPaged[TableEntity]:
481509
:dedent: 16
482510
:caption: List all entities held within a table
483511
"""
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)
488514

489515
command = functools.partial(self._client.table.query_entities, **kwargs)
490516
return ItemPaged(
491517
command,
492518
table=self.table_name,
493-
results_per_page=top,
494-
select=user_select,
519+
results_per_page=results_per_page,
520+
select=select,
495521
page_iterator_class=TableEntityPropertiesPaged,
496522
)
497523

498524
@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]:
500534
# pylint: disable=line-too-long
501535
"""Lists entities in a table.
502536
@@ -520,25 +554,29 @@ def query_entities(self, query_filter: str, **kwargs) -> ItemPaged[TableEntity]:
520554
:dedent: 8
521555
:caption: Query entities held within a table
522556
"""
523-
parameters = kwargs.pop("parameters", None)
524557
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)
529560

530561
command = functools.partial(self._client.table.query_entities, **kwargs)
531562
return ItemPaged(
532563
command,
533564
table=self.table_name,
534-
results_per_page=top,
565+
results_per_page=results_per_page,
535566
filter=query_filter,
536-
select=user_select,
567+
select=select,
537568
page_iterator_class=TableEntityPropertiesPaged,
538569
)
539570

540571
@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:
542580
"""Get a single entity in a table.
543581
544582
: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:
560598
:dedent: 16
561599
:caption: Get a single entity from a table
562600
"""
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
566606
try:
567607
entity = self._client.table.query_entity_with_partition_and_row_key(
568608
table=self.table_name,

sdk/tables/azure-data-tables/azure/data/tables/_table_service_client.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,14 @@ def delete_table(self, table_name: str, **kwargs) -> None:
240240
table.delete_table(**kwargs)
241241

242242
@distributed_trace
243-
def query_tables(self, query_filter: str, **kwargs) -> ItemPaged[TableItem]:
243+
def query_tables(
244+
self,
245+
query_filter: str,
246+
*,
247+
results_per_page: Optional[int] = None,
248+
parameters: Optional[Dict[str, Any]] = None,
249+
**kwargs,
250+
) -> ItemPaged[TableItem]:
244251
"""Queries tables under the given account.
245252
246253
:param str query_filter: Specify a filter to return certain tables.
@@ -260,20 +267,18 @@ def query_tables(self, query_filter: str, **kwargs) -> ItemPaged[TableItem]:
260267
:dedent: 16
261268
:caption: Querying tables in a storage account
262269
"""
263-
parameters = kwargs.pop("parameters", None)
264270
query_filter = _parameter_filter_substitution(parameters, query_filter)
265-
top = kwargs.pop("results_per_page", None)
266271

267272
command = functools.partial(self._client.table.query, **kwargs)
268273
return ItemPaged(
269274
command,
270-
results_per_page=top,
275+
results_per_page=results_per_page,
271276
filter=query_filter,
272277
page_iterator_class=TablePropertiesPaged,
273278
)
274279

275280
@distributed_trace
276-
def list_tables(self, **kwargs) -> ItemPaged[TableItem]:
281+
def list_tables(self, *, results_per_page: Optional[int] = None, **kwargs) -> ItemPaged[TableItem]:
277282
"""Queries tables under the given account.
278283
279284
:keyword int results_per_page: Number of tables per page in returned ItemPaged
@@ -290,12 +295,10 @@ def list_tables(self, **kwargs) -> ItemPaged[TableItem]:
290295
:dedent: 16
291296
:caption: Listing all tables in a storage account
292297
"""
293-
top = kwargs.pop("results_per_page", None)
294-
295298
command = functools.partial(self._client.table.query, **kwargs)
296299
return ItemPaged(
297300
command,
298-
results_per_page=top,
301+
results_per_page=results_per_page,
299302
page_iterator_class=TablePropertiesPaged,
300303
)
301304

sdk/tables/azure-data-tables/azure/data/tables/aio/_base_client_async.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
5757
endpoint: str,
5858
*,
5959
credential: Optional[Union[AzureSasCredential, AzureNamedKeyCredential, AsyncTokenCredential]] = None,
60+
api_version: Optional[str] = None,
6061
**kwargs: Any,
6162
) -> None:
6263
"""
@@ -121,7 +122,9 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
121122

122123
self._client = AzureTable(self.url, policies=kwargs.pop("policies", self._policies), **kwargs)
123124
# Incompatible assignment when assigning a str value to a Literal type variable
124-
self._client._config.version = get_api_version(kwargs, self._client._config.version) # type: ignore[assignment]
125+
self._client._config.version = get_api_version(
126+
api_version, self._client._config.version
127+
) # type: ignore[assignment]
125128

126129
@property
127130
def url(self) -> str:

0 commit comments

Comments
 (0)