Skip to content

Commit aa44b02

Browse files
author
Yalin Li
authored
Run mypy in azure-keyvault-secrets CI (#20507)
1 parent 0af2ce5 commit aa44b02

File tree

6 files changed

+71
-61
lines changed

6 files changed

+71
-61
lines changed

eng/tox/mypy_hard_failure_packages.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"azure-identity",
1212
"azure-keyvault-administration",
1313
"azure-keyvault-certificates",
14+
"azure-keyvault-secrets",
1415
"azure-servicebus",
1516
"azure-ai-textanalytics",
1617
"azure-ai-formrecognizer",

sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/_polling.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ class KeyVaultOperationPoller(LROPoller):
3333
# pylint: disable=arguments-differ
3434
def __init__(self, polling_method):
3535
# type: (PollingMethod) -> None
36-
super(KeyVaultOperationPoller, self).__init__(None, None, None, NoPolling())
36+
super(KeyVaultOperationPoller, self).__init__(None, None, lambda *_: None, NoPolling())
3737
self._polling_method = polling_method
3838

3939
# pylint: disable=arguments-differ
40-
def result(self):
40+
def result(self): # type: ignore
4141
# type: () -> Any
4242
"""Returns a representation of the final resource without waiting for the operation to complete.
4343

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# ------------------------------------
55
from functools import partial
66
from azure.core.tracing.decorator import distributed_trace
7+
from azure.core.polling import LROPoller
78

89
from ._models import KeyVaultSecret, DeletedSecret, SecretProperties
910
from ._shared import KeyVaultClientBase
@@ -294,7 +295,7 @@ def restore_secret_backup(self, backup, **kwargs):
294295

295296
@distributed_trace
296297
def begin_delete_secret(self, name, **kwargs):
297-
# type: (str, **Any) -> DeletedSecret
298+
# type: (str, **Any) -> LROPoller
298299
"""Delete all versions of a secret. Requires secrets/delete permission.
299300
300301
When this method returns Key Vault has begun deleting the secret. Deletion may take several seconds in a vault
@@ -416,7 +417,7 @@ def purge_deleted_secret(self, name, **kwargs):
416417

417418
@distributed_trace
418419
def begin_recover_deleted_secret(self, name, **kwargs):
419-
# type: (str, **Any) -> SecretProperties
420+
# type: (str, **Any) -> LROPoller
420421
"""Recover a deleted secret to its latest version. Possible only in a vault with soft-delete enabled.
421422
422423
If the vault does not have soft-delete enabled, :func:`begin_delete_secret` is permanent, and this method will

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

Lines changed: 56 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ class SecretProperties(object):
2020
"""A secret's id and attributes."""
2121

2222
def __init__(self, attributes, vault_id, **kwargs):
23-
# type: (_models.SecretAttributes, str, **Any) -> None
23+
# type: (Optional[_models.SecretAttributes], Optional[str], **Any) -> None
2424
self._attributes = attributes
2525
self._id = vault_id
26-
self._vault_id = KeyVaultSecretIdentifier(vault_id)
26+
self._vault_id = KeyVaultSecretIdentifier(vault_id) if vault_id else None
2727
self._content_type = kwargs.get("content_type", None)
2828
self._key_id = kwargs.get("key_id", None)
2929
self._managed = kwargs.get("managed", None)
@@ -60,82 +60,82 @@ def _from_secret_item(cls, secret_item):
6060

6161
@property
6262
def content_type(self):
63-
# type: () -> str
63+
# type: () -> Optional[str]
6464
"""An arbitrary string indicating the type of the secret
6565
66-
:rtype: str
66+
:rtype: str or None
6767
"""
6868
return self._content_type
6969

7070
@property
7171
def id(self):
72-
# type: () -> str
72+
# type: () -> Optional[str]
7373
"""The secret's id
7474
75-
:rtype: str
75+
:rtype: str or None
7676
"""
7777
return self._id
7878

7979
@property
8080
def key_id(self):
81-
# type: () -> str
81+
# type: () -> Optional[str]
8282
"""If this secret backs a certificate, this property is the identifier of the corresponding key.
8383
84-
:rtype: str
84+
:rtype: str or None
8585
"""
8686
return self._key_id
8787

8888
@property
8989
def enabled(self):
90-
# type: () -> bool
90+
# type: () -> Optional[bool]
9191
"""Whether the secret is enabled for use
9292
93-
:rtype: bool
93+
:rtype: bool or None
9494
"""
95-
return self._attributes.enabled
95+
return self._attributes.enabled if self._attributes else None
9696

9797
@property
9898
def not_before(self):
99-
# type: () -> datetime
99+
# type: () -> Optional[datetime]
100100
"""The time before which the secret can not be used, in UTC
101101
102-
:rtype: ~datetime.datetime
102+
:rtype: ~datetime.datetime or None
103103
"""
104-
return self._attributes.not_before
104+
return self._attributes.not_before if self._attributes else None
105105

106106
@property
107107
def expires_on(self):
108-
# type: () -> datetime
108+
# type: () -> Optional[datetime]
109109
"""When the secret expires, in UTC
110110
111-
:rtype: ~datetime.datetime
111+
:rtype: ~datetime.datetime or None
112112
"""
113-
return self._attributes.expires
113+
return self._attributes.expires if self._attributes else None
114114

115115
@property
116116
def created_on(self):
117-
# type: () -> datetime
117+
# type: () -> Optional[datetime]
118118
"""When the secret was created, in UTC
119119
120-
:rtype: ~datetime.datetime
120+
:rtype: ~datetime.datetime or None
121121
"""
122-
return self._attributes.created
122+
return self._attributes.created if self._attributes else None
123123

124124
@property
125125
def updated_on(self):
126-
# type: () -> datetime
126+
# type: () -> Optional[datetime]
127127
"""When the secret was last updated, in UTC
128128
129-
:rtype: ~datetime.datetime
129+
:rtype: ~datetime.datetime or None
130130
"""
131-
return self._attributes.updated
131+
return self._attributes.updated if self._attributes else None
132132

133133
@property
134134
def recoverable_days(self):
135135
# type: () -> Optional[int]
136136
"""The number of days the key is retained before being deleted from a soft-delete enabled Key Vault.
137137
138-
:rtype: int
138+
:rtype: int or None
139139
"""
140140
# recoverable_days was added in 7.1-preview
141141
if self._attributes and hasattr(self._attributes, "recoverable_days"):
@@ -144,54 +144,55 @@ def recoverable_days(self):
144144

145145
@property
146146
def recovery_level(self):
147-
# type: () -> str
147+
# type: () -> Optional[str]
148148
"""The vault's deletion recovery level for secrets
149149
150-
:rtype: str
150+
:rtype: str or None
151151
"""
152-
return self._attributes.recovery_level
152+
return self._attributes.recovery_level if self._attributes else None
153153

154154
@property
155155
def vault_url(self):
156-
# type: () -> str
156+
# type: () -> Optional[str]
157157
"""URL of the vault containing the secret
158158
159-
:rtype: str
159+
:rtype: str or None
160160
"""
161-
return self._vault_id.vault_url
161+
return self._vault_id.vault_url if self._vault_id else None
162162

163163
@property
164164
def name(self):
165-
# type: () -> str
165+
# type: () -> Optional[str]
166166
"""The secret's name
167167
168-
:rtype: str
168+
:rtype: str or None
169169
"""
170-
return self._vault_id.name
170+
return self._vault_id.name if self._vault_id else None
171171

172172
@property
173173
def version(self):
174-
# type: () -> str
174+
# type: () -> Optional[str]
175175
"""The secret's version
176176
177-
:rtype: str
177+
:rtype: str or None
178178
"""
179-
return self._vault_id.version
179+
return self._vault_id.version if self._vault_id else None
180180

181181
@property
182182
def tags(self):
183-
# type: () -> Dict[str, str]
183+
# type: () -> Optional[Dict[str, str]]
184184
"""Application specific metadata in the form of key-value pairs
185185
186-
:rtype: dict"""
186+
:rtype: dict or None
187+
"""
187188
return self._tags
188189

189190

190191
class KeyVaultSecret(object):
191192
"""All of a secret's properties, and its value."""
192193

193194
def __init__(self, properties, value):
194-
# type: (SecretProperties, str) -> None
195+
# type: (SecretProperties, Optional[str]) -> None
195196
self._properties = properties
196197
self._value = value
197198

@@ -210,19 +211,19 @@ def _from_secret_bundle(cls, secret_bundle):
210211

211212
@property
212213
def name(self):
213-
# type: () -> str
214+
# type: () -> Optional[str]
214215
"""The secret's name
215216
216-
:rtype: str
217+
:rtype: str or None
217218
"""
218219
return self._properties.name
219220

220221
@property
221222
def id(self):
222-
# type: () -> str
223+
# type: () -> Optional[str]
223224
"""The secret's id
224225
225-
:rtype: str
226+
:rtype: str or None
226227
"""
227228
return self._properties.id
228229

@@ -237,10 +238,10 @@ def properties(self):
237238

238239
@property
239240
def value(self):
240-
# type: () -> str
241+
# type: () -> Optional[str]
241242
"""The secret's value
242243
243-
:rtype: str
244+
:rtype: str or None
244245
"""
245246
return self._value
246247

@@ -329,19 +330,19 @@ def _from_deleted_secret_item(cls, deleted_secret_item):
329330

330331
@property
331332
def name(self):
332-
# type: () -> str
333+
# type: () -> Optional[str]
333334
"""The secret's name
334335
335-
:rtype: str
336+
:rtype: str or None
336337
"""
337338
return self._properties.name
338339

339340
@property
340341
def id(self):
341-
# type: () -> str
342+
# type: () -> Optional[str]
342343
"""The secret's id
343344
344-
:rtype: str
345+
:rtype: str or None
345346
"""
346347
return self._properties.id
347348

@@ -356,27 +357,27 @@ def properties(self):
356357

357358
@property
358359
def deleted_date(self):
359-
# type: () -> datetime
360+
# type: () -> Optional[datetime]
360361
"""When the secret was deleted, in UTC
361362
362-
:rtype: ~datetime.datetime
363+
:rtype: ~datetime.datetime or None
363364
"""
364365
return self._deleted_date
365366

366367
@property
367368
def recovery_id(self):
368-
# type: () -> str
369+
# type: () -> Optional[str]
369370
"""An identifier used to recover the deleted secret. Returns ``None`` if soft-delete is disabled.
370371
371-
:rtype: str
372+
:rtype: str or None
372373
"""
373374
return self._recovery_id
374375

375376
@property
376377
def scheduled_purge_date(self):
377-
# type: () -> datetime
378+
# type: () -> Optional[datetime]
378379
"""When the secret is scheduled to be purged, in UTC. Returns ``None`` if soft-delete is disabled.
379380
380-
:rtype: ~datetime.datetime
381+
:rtype: ~datetime.datetime or None
381382
"""
382383
return self._scheduled_purge_date

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ class KeyVaultOperationPoller(LROPoller):
3333
# pylint: disable=arguments-differ
3434
def __init__(self, polling_method):
3535
# type: (PollingMethod) -> None
36-
super(KeyVaultOperationPoller, self).__init__(None, None, None, NoPolling())
36+
super(KeyVaultOperationPoller, self).__init__(None, None, lambda *_: None, NoPolling())
3737
self._polling_method = polling_method
3838

3939
# pylint: disable=arguments-differ
40-
def result(self):
40+
def result(self): # type: ignore
4141
# type: () -> Any
4242
"""Returns a representation of the final resource without waiting for the operation to complete.
4343
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[mypy]
2+
python_version = 3.6
3+
warn_unused_configs = True
4+
ignore_missing_imports = True
5+
6+
[mypy-azure.keyvault.*._generated.*]
7+
ignore_errors = True

0 commit comments

Comments
 (0)