Skip to content

Commit 505bcf9

Browse files
authored
[Key Vault] Enable pyright for Secrets library (#36095)
1 parent bffe87b commit 505bcf9

File tree

6 files changed

+25
-11
lines changed

6 files changed

+25
-11
lines changed

sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_client.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Licensed under the MIT License.
44
# ------------------------------------
55
from functools import partial
6-
from typing import Any, Optional
6+
from typing import Any, cast, Optional
77

88
from azure.core.paging import ItemPaged
99
from azure.core.polling import LROPoller
@@ -258,7 +258,7 @@ def backup_secret(self, name: str, **kwargs: Any) -> bytes:
258258
259259
"""
260260
backup_result = self._client.backup_secret(self.vault_url, name, **kwargs)
261-
return backup_result.value
261+
return cast(bytes, backup_result.value)
262262

263263
@distributed_trace
264264
def restore_secret_backup(self, backup: bytes, **kwargs: Any) -> SecretProperties:
@@ -319,12 +319,13 @@ def begin_delete_secret(self, name: str, **kwargs: Any) -> LROPoller[DeletedSecr
319319
polling_interval = kwargs.pop("_polling_interval", None)
320320
if polling_interval is None:
321321
polling_interval = 2
322+
# Ignore pyright warning about return type not being iterable because we use `cls` to return a tuple
322323
pipeline_response, deleted_secret_bundle = self._client.delete_secret(
323324
vault_base_url=self.vault_url,
324325
secret_name=name,
325326
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
326327
**kwargs,
327-
)
328+
) # pyright: ignore[reportGeneralTypeIssues]
328329
deleted_secret = DeletedSecret._from_deleted_secret_bundle(deleted_secret_bundle)
329330

330331
command = partial(self.get_deleted_secret, name=name, **kwargs)
@@ -447,12 +448,13 @@ def begin_recover_deleted_secret(self, name: str, **kwargs: Any) -> LROPoller[Se
447448
polling_interval = kwargs.pop("_polling_interval", None)
448449
if polling_interval is None:
449450
polling_interval = 2
451+
# Ignore pyright warning about return type not being iterable because we use `cls` to return a tuple
450452
pipeline_response, recovered_secret_bundle = self._client.recover_deleted_secret(
451453
vault_base_url=self.vault_url,
452454
secret_name=name,
453455
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
454456
**kwargs,
455-
)
457+
) # pyright: ignore[reportGeneralTypeIssues]
456458
recovered_secret = SecretProperties._from_secret_bundle(recovered_secret_bundle)
457459

458460
command = partial(self.get_secret, name=name, **kwargs)

sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/async_client_base.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ def __init__(self, vault_url: str, credential: AsyncTokenCredential, **kwargs: A
5757
)
5858
self._models = _models
5959
except ValueError as exc:
60+
# Ignore pyright error that comes from not identifying ApiVersion as an iterable enum
6061
raise NotImplementedError(
6162
f"This package doesn't support API version '{self.api_version}'. "
62-
+ f"Supported versions: {', '.join(v.value for v in ApiVersion)}"
63+
+ "Supported versions: "
64+
+ f"{', '.join(v.value for v in ApiVersion)}" # pyright: ignore[reportGeneralTypeIssues]
6365
) from exc
6466

6567
@property

sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,11 @@ def __init__(self, vault_url: str, credential: TokenCredential, **kwargs: Any) -
109109
)
110110
self._models = _models
111111
except ValueError as exc:
112+
# Ignore pyright error that comes from not identifying ApiVersion as an iterable enum
112113
raise NotImplementedError(
113114
f"This package doesn't support API version '{self.api_version}'. "
114-
+ f"Supported versions: {', '.join(v.value for v in ApiVersion)}"
115+
+ "Supported versions: "
116+
+ f"{', '.join(v.value for v in ApiVersion)}" # pyright: ignore[reportGeneralTypeIssues]
115117
) from exc
116118

117119
@property

sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/aio/_client.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright (c) Microsoft Corporation.
33
# Licensed under the MIT License.
44
# ------------------------------------
5-
from typing import Any, Optional
5+
from typing import Any, cast, Optional
66
from functools import partial
77

88
from azure.core.tracing.decorator import distributed_trace
@@ -246,7 +246,7 @@ async def backup_secret(self, name: str, **kwargs: Any) -> bytes:
246246
:dedent: 8
247247
"""
248248
backup_result = await self._client.backup_secret(self.vault_url, name, **kwargs)
249-
return backup_result.value
249+
return cast(bytes, backup_result.value)
250250

251251
@distributed_trace_async
252252
async def restore_secret_backup(self, backup: bytes, **kwargs: Any) -> SecretProperties:
@@ -300,12 +300,13 @@ async def delete_secret(self, name: str, **kwargs: Any) -> DeletedSecret:
300300
polling_interval = kwargs.pop("_polling_interval", None)
301301
if polling_interval is None:
302302
polling_interval = 2
303+
# Ignore pyright warning about return type not being iterable because we use `cls` to return a tuple
303304
pipeline_response, deleted_secret_bundle = await self._client.delete_secret(
304305
vault_base_url=self.vault_url,
305306
secret_name=name,
306307
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
307308
**kwargs,
308-
)
309+
) # pyright: ignore[reportGeneralTypeIssues]
309310
deleted_secret = DeletedSecret._from_deleted_secret_bundle(deleted_secret_bundle)
310311

311312
polling_method = AsyncDeleteRecoverPollingMethod(
@@ -420,12 +421,13 @@ async def recover_deleted_secret(self, name: str, **kwargs: Any) -> SecretProper
420421
polling_interval = kwargs.pop("_polling_interval", None)
421422
if polling_interval is None:
422423
polling_interval = 2
424+
# Ignore pyright warning about return type not being iterable because we use `cls` to return a tuple
423425
pipeline_response, recovered_secret_bundle = await self._client.recover_deleted_secret(
424426
vault_base_url=self.vault_url,
425427
secret_name=name,
426428
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
427429
**kwargs,
428-
)
430+
) # pyright: ignore[reportGeneralTypeIssues]
429431
recovered_secret = SecretProperties._from_secret_bundle(recovered_secret_bundle)
430432

431433
command = partial(self.get_secret, name=name, **kwargs)
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
[tool.azure-sdk-build]
2-
pyright = false
32
type_check_samples = false
43
strict_sphinx = true
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"reportMissingImports": false,
3+
"pythonVersion": "3.8",
4+
"exclude": [
5+
"**/_generated/**"
6+
]
7+
}

0 commit comments

Comments
 (0)