Skip to content

Commit 47133e7

Browse files
authored
[Key Vault] Update docstrings for next-pylint (#30699)
1 parent 7cf8b83 commit 47133e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1045
-408
lines changed

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_access_control_client.py

+7
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def create_role_assignment(
5353
:keyword name: a name for the role assignment. Must be a UUID.
5454
:paramtype name: str or uuid.UUID or None
5555
56+
:returns: The created role assignment.
5657
:rtype: ~azure.keyvault.administration.KeyVaultRoleAssignment
5758
"""
5859
name = kwargs.pop("name", None) or uuid4()
@@ -84,6 +85,7 @@ def delete_role_assignment(
8485
:type name: str or uuid.UUID
8586
8687
:returns: None
88+
:rtype: None
8789
"""
8890
try:
8991
self._client.role_assignments.delete(
@@ -104,6 +106,7 @@ def get_role_assignment(
104106
:param name: the role assignment's name.
105107
:type name: str or uuid.UUID
106108
109+
:returns: The fetched role assignment.
107110
:rtype: ~azure.keyvault.administration.KeyVaultRoleAssignment
108111
"""
109112
assignment = self._client.role_assignments.get(
@@ -121,6 +124,7 @@ def list_role_assignments(
121124
Specify a narrower scope as a string.
122125
:type scope: str or KeyVaultRoleScope
123126
127+
:returns: A paged response containing the role assignments for the specified scope.
124128
:rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.administration.KeyVaultRoleAssignment]
125129
"""
126130
return self._client.role_assignments.list_for_scope(
@@ -200,6 +204,7 @@ def get_role_definition(
200204
:param name: the role definition's name.
201205
:type name: str or uuid.UUID
202206
207+
:returns: The fetched role definition.
203208
:rtype: ~azure.keyvault.administration.KeyVaultRoleDefinition
204209
"""
205210
definition = self._client.role_definitions.get(
@@ -220,6 +225,7 @@ def delete_role_definition(
220225
:type name: str or uuid.UUID
221226
222227
:returns: None
228+
:rtype: None
223229
"""
224230
try:
225231
self._client.role_definitions.delete(
@@ -238,6 +244,7 @@ def list_role_definitions(
238244
Specify a narrower scope as a string.
239245
:type scope: str or KeyVaultRoleScope
240246
247+
:returns: A paged response containing the role definitions for the specified scope.
241248
:rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.administration.KeyVaultRoleDefinition]
242249
"""
243250
return self._client.role_definitions.list(

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
import functools
77
import pickle
88
from typing import TYPE_CHECKING
9-
109
from urllib.parse import urlparse
1110

11+
from azure.core.tracing.decorator import distributed_trace
12+
1213
from ._models import KeyVaultBackupResult
1314
from ._internal import KeyVaultClientBase, parse_folder_url
1415
from ._internal.polling import KeyVaultBackupClientPolling, KeyVaultBackupClientPollingMethod
1516

1617
if TYPE_CHECKING:
1718
# pylint:disable=unused-import
18-
from typing import Any
1919
from azure.core.polling import LROPoller
2020

2121

@@ -42,6 +42,7 @@ class KeyVaultBackupClient(KeyVaultClientBase):
4242
"""
4343

4444
# pylint:disable=protected-access
45+
@distributed_trace
4546
def begin_backup(
4647
self, blob_storage_url: str, sas_token: str, **kwargs
4748
) -> "LROPoller[KeyVaultBackupResult]":
@@ -98,6 +99,7 @@ def begin_backup(
9899
**kwargs
99100
)
100101

102+
@distributed_trace
101103
def begin_restore(self, folder_url: str, sas_token: str, **kwargs) -> "LROPoller":
102104
"""Restore a Key Vault backup.
103105
@@ -111,6 +113,8 @@ def begin_restore(self, folder_url: str, sas_token: str, **kwargs) -> "LROPoller
111113
:keyword str continuation_token: a continuation token to restart polling from a saved state
112114
:keyword str key_name: name of a single key in the backup. When set, only this key will be restored.
113115
116+
:returns: An :class:`~azure.core.polling.LROPoller` instance. Call `wait()` or `result()` on this object to wait
117+
for the operation to complete (the return value is None in either case).
114118
:rtype: ~azure.core.polling.LROPoller
115119
116120
Examples:

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
def parse_vault_id(url: str) -> "_VaultId":
2727
try:
2828
parsed_uri = urlparse(url)
29-
except Exception: # pylint: disable=broad-except
30-
raise ValueError(f"'{url}' is not a valid url")
29+
except Exception as exc: # pylint: disable=broad-except
30+
raise ValueError(f"'{url}' is not a valid url") from exc
3131
if not (parsed_uri.scheme and parsed_uri.hostname):
3232
raise ValueError(f"'{url}' is not a valid url")
3333

@@ -52,14 +52,19 @@ def parse_folder_url(folder_url: str) -> "BackupLocation":
5252
5353
For example, https://<account>.blob.core.windows.net/backup/mhsm-account-2020090117323313 parses to
5454
(container_url="https://<account>.blob.core.windows.net/backup", folder_name="mhsm-account-2020090117323313").
55+
56+
:param str folder_url: The URL to a backup's blob storage folder.
57+
58+
:returns: A named tuple with a `container_url` and `folder_name`, representing the location of the backup.
59+
:rtype: BackupLocation
5560
"""
5661

5762
try:
5863
parsed = urlparse(folder_url)
5964

6065
# the first segment of the path is the container name
6166
stripped_path = parsed.path.strip("/")
62-
container = stripped_path.split("/")[0]
67+
container = stripped_path.split("/", maxsplit=1)[0]
6368

6469
# the rest of the path is the folder name
6570
folder_name = stripped_path[len(container) + 1 :]
@@ -68,11 +73,11 @@ def parse_folder_url(folder_url: str) -> "BackupLocation":
6873
container_url = f"{parsed.scheme}://{parsed.netloc}/{container}"
6974

7075
return BackupLocation(container_url, folder_name)
71-
except: # pylint:disable=broad-except
76+
except Exception as exc: # pylint:disable=broad-except
7277
raise ValueError(
7378
'"folder_url" should be the URL of a blob holding a Key Vault backup, for example '
7479
'"https://<account>.blob.core.windows.net/backup/mhsm-account-2020090117323313"'
75-
)
80+
) from exc
7681

7782

7883
try:

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/async_challenge_auth_policy.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,24 @@
2424
from .challenge_auth_policy import _enforce_tls, _update_challenge
2525

2626
if TYPE_CHECKING:
27-
from typing import Any, Optional
27+
from typing import Optional
2828
from azure.core.credentials import AccessToken
2929
from azure.core.credentials_async import AsyncTokenCredential
3030
from azure.core.pipeline import PipelineRequest, PipelineResponse
3131

3232

3333
class AsyncChallengeAuthPolicy(AsyncBearerTokenCredentialPolicy):
34-
"""policy for handling HTTP authentication challenges"""
34+
"""Policy for handling HTTP authentication challenges.
35+
36+
:param credential: An object which can provide an access token for the vault, such as a credential from
37+
:mod:`azure.identity.aio`
38+
:type credential: :class:`~azure.core.credentials_async.AsyncTokenCredential`
39+
"""
3540

3641
def __init__(self, credential: "AsyncTokenCredential", *scopes: str, **kwargs) -> None:
3742
super().__init__(credential, *scopes, **kwargs)
3843
self._credential = credential
39-
self._token = None # type: Optional[AccessToken]
44+
self._token: "Optional[AccessToken]" = None
4045
self._verify_challenge_resource = kwargs.pop("verify_challenge_resource", True)
4146

4247
async def on_request(self, request: "PipelineRequest") -> None:

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/async_client_base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ def __init__(self, vault_url: str, credential: "AsyncTokenCredential", **kwargs)
6262
**kwargs
6363
)
6464
self._models = _KeyVaultClient.models(api_version=self.api_version)
65-
except ValueError:
65+
except ValueError as exc:
6666
raise NotImplementedError(
6767
f"This package doesn't support API version '{self.api_version}'. "
6868
+ f"Supported versions: {', '.join(v.value for v in ApiVersion)}"
69-
)
69+
) from exc
7070

7171
@property
7272
def vault_url(self) -> str:

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/challenge_auth_policy.py

+19-9
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"""
1616

1717
import time
18+
from typing import TYPE_CHECKING
1819
from urllib.parse import urlparse
1920

2021
from azure.core.exceptions import ServiceRequestError
@@ -24,13 +25,8 @@
2425
from .http_challenge import HttpChallenge
2526
from . import http_challenge_cache as ChallengeCache
2627

27-
try:
28-
from typing import TYPE_CHECKING
29-
except ImportError:
30-
TYPE_CHECKING = False
31-
3228
if TYPE_CHECKING:
33-
from typing import Any, Optional
29+
from typing import Optional
3430
from azure.core.credentials import AccessToken, TokenCredential
3531
from azure.core.pipeline import PipelineResponse
3632

@@ -43,7 +39,16 @@ def _enforce_tls(request: PipelineRequest) -> None:
4339

4440

4541
def _update_challenge(request: PipelineRequest, challenger: "PipelineResponse") -> HttpChallenge:
46-
"""Parse challenge from challenger, cache it, return it"""
42+
"""Parse challenge from a challenge response, cache it, and return it.
43+
44+
:param request: The pipeline request that prompted the challenge response.
45+
:type request: :class:`~azure.core.pipeline.PipelineRequest`
46+
:param challenger: The pipeline response containing the authentication challenge.
47+
:type challenger: :class:`~azure.core.pipeline.PipelineResponse`
48+
49+
:returns: An HttpChallenge object representing the authentication challenge.
50+
:rtype: HttpChallenge
51+
"""
4752

4853
challenge = HttpChallenge(
4954
request.http_request.url,
@@ -55,12 +60,17 @@ def _update_challenge(request: PipelineRequest, challenger: "PipelineResponse")
5560

5661

5762
class ChallengeAuthPolicy(BearerTokenCredentialPolicy):
58-
"""Policy for handling HTTP authentication challenges"""
63+
"""Policy for handling HTTP authentication challenges.
64+
65+
:param credential: An object which can provide an access token for the vault, such as a credential from
66+
:mod:`azure.identity`
67+
:type credential: :class:`~azure.core.credentials.TokenCredential`
68+
"""
5969

6070
def __init__(self, credential: "TokenCredential", *scopes: str, **kwargs) -> None:
6171
super(ChallengeAuthPolicy, self).__init__(credential, *scopes, **kwargs)
6272
self._credential = credential
63-
self._token = None # type: Optional[AccessToken]
73+
self._token: "Optional[AccessToken]" = None
6474
self._verify_challenge_resource = kwargs.pop("verify_challenge_resource", True)
6575

6676
def on_request(self, request: PipelineRequest) -> None:

Diff for: sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,15 @@ class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta):
3939

4040

4141
def _format_api_version(request: "HttpRequest", api_version: str) -> "HttpRequest":
42-
"""Returns a request copy that includes an api-version query parameter if one wasn't originally present."""
42+
"""Returns a request copy that includes an api-version query parameter if one wasn't originally present.
43+
44+
:param request: The HTTP request being sent.
45+
:type request: :class:`~azure.core.rest.HttpRequest`
46+
:param str api_version: The service API version that the request should include.
47+
48+
:returns: A copy of the request that includes an api-version query parameter.
49+
:rtype: :class:`~azure.core.rest.HttpRequest`
50+
"""
4351
request_copy = deepcopy(request)
4452
params = {"api-version": api_version} # By default, we want to use the client's API version
4553
query = urlparse(request_copy.url).query
@@ -97,11 +105,11 @@ def __init__(self, vault_url: str, credential: "TokenCredential", **kwargs) -> N
97105
**kwargs
98106
)
99107
self._models = _KeyVaultClient.models(api_version=self.api_version)
100-
except ValueError:
108+
except ValueError as exc:
101109
raise NotImplementedError(
102110
f"This package doesn't support API version '{self.api_version}'. "
103111
+ f"Supported versions: {', '.join(v.value for v in ApiVersion)}"
104-
)
112+
) from exc
105113

106114
@property
107115
def vault_url(self) -> str:

0 commit comments

Comments
 (0)