Skip to content

Commit 7373db2

Browse files
author
Yalin Li
authored
Run mypy in azure-keyvault-keys CI (#20545)
1 parent 51f09fa commit 7373db2

File tree

16 files changed

+191
-133
lines changed

16 files changed

+191
-133
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-keys",
1415
"azure-keyvault-secrets",
1516
"azure-servicebus",
1617
"azure-ai-textanalytics",

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
# pylint:disable=unused-import
2020
from typing import Any, Optional, Union
2121
from azure.core.paging import ItemPaged
22+
from azure.core.polling import LROPoller
2223
from ._models import JsonWebKey
24+
from ._enums import KeyType
2325

2426

2527
class KeyClient(KeyVaultClientBase):
@@ -55,7 +57,7 @@ def _get_attributes(self, enabled, not_before, expires_on, exportable=None):
5557

5658
@distributed_trace
5759
def create_key(self, name, key_type, **kwargs):
58-
# type: (str, Union[str, azure.keyvault.keys.KeyType], **Any) -> KeyVaultKey
60+
# type: (str, Union[str, KeyType], **Any) -> KeyVaultKey
5961
"""Create a key or, if ``name`` is already in use, create a new version of the key.
6062
6163
Requires keys/create permission.
@@ -242,7 +244,7 @@ def create_oct_key(self, name, **kwargs):
242244

243245
@distributed_trace
244246
def begin_delete_key(self, name, **kwargs):
245-
# type: (str, **Any) -> DeletedKey
247+
# type: (str, **Any) -> LROPoller
246248
"""Delete all versions of a key and its cryptographic material.
247249
248250
Requires keys/delete permission. When this method returns Key Vault has begun deleting the key. Deletion may
@@ -450,7 +452,7 @@ def purge_deleted_key(self, name, **kwargs):
450452

451453
@distributed_trace
452454
def begin_recover_deleted_key(self, name, **kwargs):
453-
# type: (str, **Any) -> KeyVaultKey
455+
# type: (str, **Any) -> LROPoller
454456
"""Recover a deleted key to its latest version. Possible only in a vault with soft-delete enabled.
455457
456458
Requires keys/recover permission.

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

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313

1414
if TYPE_CHECKING:
1515
# pylint:disable=unused-import
16-
from typing import Any, Dict, Optional
16+
from typing import Any, Dict, Optional, List
1717
from datetime import datetime
1818
from ._generated.v7_0 import models as _models
19-
from ._enums import KeyOperation
19+
from ._enums import KeyOperation, KeyType
2020

2121
KeyOperationResult = namedtuple("KeyOperationResult", ["id", "value"])
2222

@@ -83,13 +83,15 @@ def _from_key_bundle(cls, key_bundle):
8383
"""Construct a KeyProperties from an autorest-generated KeyBundle"""
8484
# release_policy was added in 7.3-preview
8585
release_policy = None
86-
if hasattr(key_bundle, "release_policy") and key_bundle.release_policy is not None:
86+
if (hasattr(key_bundle, "release_policy") and
87+
key_bundle.release_policy is not None): # type: ignore[attr-defined]
8788
release_policy = KeyReleasePolicy(
88-
data=key_bundle.release_policy.data, content_type=key_bundle.release_policy.content_type
89+
data=key_bundle.release_policy.data, # type: ignore[attr-defined]
90+
content_type=key_bundle.release_policy.content_type # type: ignore[attr-defined]
8991
)
9092

9193
return cls(
92-
key_bundle.key.kid,
94+
key_bundle.key.kid, # type: ignore
9395
attributes=key_bundle.attributes,
9496
managed=key_bundle.managed,
9597
tags=key_bundle.tags,
@@ -100,7 +102,12 @@ def _from_key_bundle(cls, key_bundle):
100102
def _from_key_item(cls, key_item):
101103
# type: (_models.KeyItem) -> KeyProperties
102104
"""Construct a KeyProperties from an autorest-generated KeyItem"""
103-
return cls(key_id=key_item.kid, attributes=key_item.attributes, managed=key_item.managed, tags=key_item.tags)
105+
return cls(
106+
key_id=key_item.kid, # type: ignore
107+
attributes=key_item.attributes,
108+
managed=key_item.managed,
109+
tags=key_item.tags
110+
)
104111

105112
@property
106113
def id(self):
@@ -122,57 +129,57 @@ def name(self):
122129

123130
@property
124131
def version(self):
125-
# type: () -> str
132+
# type: () -> Optional[str]
126133
"""The key's version
127134
128-
:rtype: str
135+
:rtype: str or None
129136
"""
130137
return self._vault_id.version
131138

132139
@property
133140
def enabled(self):
134-
# type: () -> bool
141+
# type: () -> Optional[bool]
135142
"""Whether the key is enabled for use
136143
137-
:rtype: bool
144+
:rtype: bool or None
138145
"""
139-
return self._attributes.enabled
146+
return self._attributes.enabled if self._attributes else None
140147

141148
@property
142149
def not_before(self):
143-
# type: () -> datetime
150+
# type: () -> Optional[datetime]
144151
"""The time before which the key can not be used, in UTC
145152
146-
:rtype: ~datetime.datetime
153+
:rtype: ~datetime.datetime or None
147154
"""
148-
return self._attributes.not_before
155+
return self._attributes.not_before if self._attributes else None
149156

150157
@property
151158
def expires_on(self):
152-
# type: () -> datetime
159+
# type: () -> Optional[datetime]
153160
"""When the key will expire, in UTC
154161
155-
:rtype: ~datetime.datetime
162+
:rtype: ~datetime.datetime or None
156163
"""
157-
return self._attributes.expires
164+
return self._attributes.expires if self._attributes else None
158165

159166
@property
160167
def created_on(self):
161-
# type: () -> datetime
168+
# type: () -> Optional[datetime]
162169
"""When the key was created, in UTC
163170
164-
:rtype: ~datetime.datetime
171+
:rtype: ~datetime.datetime or None
165172
"""
166-
return self._attributes.created
173+
return self._attributes.created if self._attributes else None
167174

168175
@property
169176
def updated_on(self):
170-
# type: () -> datetime
177+
# type: () -> Optional[datetime]
171178
"""When the key was last updated, in UTC
172179
173-
:rtype: ~datetime.datetime
180+
:rtype: ~datetime.datetime or None
174181
"""
175-
return self._attributes.updated
182+
return self._attributes.updated if self._attributes else None
176183

177184
@property
178185
def vault_url(self):
@@ -188,7 +195,7 @@ def recoverable_days(self):
188195
# type: () -> Optional[int]
189196
"""The number of days the key is retained before being deleted from a soft-delete enabled Key Vault.
190197
191-
:rtype: int
198+
:rtype: int or None
192199
"""
193200
# recoverable_days was added in 7.1-preview
194201
if self._attributes:
@@ -197,12 +204,12 @@ def recoverable_days(self):
197204

198205
@property
199206
def recovery_level(self):
200-
# type: () -> str
207+
# type: () -> Optional[str]
201208
"""The vault's deletion recovery level for keys
202209
203-
:rtype: str
210+
:rtype: str or None
204211
"""
205-
return self._attributes.recovery_level
212+
return self._attributes.recovery_level if self._attributes else None
206213

207214
@property
208215
def tags(self):
@@ -326,7 +333,7 @@ def _from_key_bundle(cls, key_bundle):
326333
"""Construct a KeyVaultKey from an autorest-generated KeyBundle"""
327334
# pylint:disable=protected-access
328335
return cls(
329-
key_id=key_bundle.key.kid,
336+
key_id=key_bundle.key.kid, # type: ignore
330337
jwk={field: getattr(key_bundle.key, field, None) for field in JsonWebKey._FIELDS},
331338
properties=KeyProperties._from_key_bundle(key_bundle),
332339
)
@@ -369,21 +376,23 @@ def key(self):
369376

370377
@property
371378
def key_type(self):
372-
# type: () -> str
379+
# type: () -> KeyType
373380
"""The key's type. See :class:`~azure.keyvault.keys.KeyType` for possible values.
374381
375382
:rtype: ~azure.keyvault.keys.KeyType or str
376383
"""
377-
return self._key_material.kty # pylint:disable=no-member
384+
# pylint:disable=no-member
385+
return self._key_material.kty # type: ignore[attr-defined]
378386

379387
@property
380388
def key_operations(self):
381-
# type: () -> list[KeyOperation]
389+
# type: () -> List[KeyOperation]
382390
"""Permitted operations. See :class:`~azure.keyvault.keys.KeyOperation` for possible values.
383391
384392
:rtype: list[~azure.keyvault.keys.KeyOperation or str]
385393
"""
386-
return self._key_material.key_ops # pylint:disable=no-member
394+
# pylint:disable=no-member
395+
return self._key_material.key_ops # type: ignore[attr-defined]
387396

388397

389398
class KeyVaultKeyIdentifier(object):
@@ -454,7 +463,7 @@ def _from_deleted_key_bundle(cls, deleted_key_bundle):
454463
# pylint:disable=protected-access
455464
return cls(
456465
properties=KeyProperties._from_key_bundle(deleted_key_bundle),
457-
key_id=deleted_key_bundle.key.kid,
466+
key_id=deleted_key_bundle.key.kid, # type: ignore
458467
jwk={field: getattr(deleted_key_bundle.key, field, None) for field in JsonWebKey._FIELDS},
459468
deleted_date=deleted_key_bundle.deleted_date,
460469
recovery_id=deleted_key_bundle.recovery_id,
@@ -475,28 +484,28 @@ def _from_deleted_key_item(cls, deleted_key_item):
475484

476485
@property
477486
def deleted_date(self):
478-
# type: () -> datetime
487+
# type: () -> Optional[datetime]
479488
"""When the key was deleted, in UTC
480489
481-
:rtype: ~datetime.datetime
490+
:rtype: ~datetime.datetime or None
482491
"""
483492
return self._deleted_date
484493

485494
@property
486495
def recovery_id(self):
487-
# type: () -> str
496+
# type: () -> Optional[str]
488497
"""An identifier used to recover the deleted key. Returns ``None`` if soft-delete is disabled.
489498
490-
:rtype: str
499+
:rtype: str or None
491500
"""
492501
return self._recovery_id
493502

494503
@property
495504
def scheduled_purge_date(self):
496-
# type: () -> datetime
505+
# type: () -> Optional[datetime]
497506
"""When the key is scheduled to be purged, in UTC. Returns ``None`` if soft-delete is disabled.
498507
499-
:rtype: ~datetime.datetime
508+
:rtype: ~datetime.datetime or None
500509
"""
501510
return self._scheduled_purge_date
502511

0 commit comments

Comments
 (0)