Skip to content

Commit 4035973

Browse files
authored
Add __hash__ to jwcrypto.jwk.JWK
1 parent 6e3b4fa commit 4035973

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

stubs/jwcrypto/jwcrypto/jwk.pyi

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,23 @@ class InvalidJWKValue(JWException): ...
104104

105105
class JWK(dict[str, Any]):
106106
unsafe_skip_rsa_key_validation: bool
107+
@overload
108+
def __init__(
109+
self,
110+
*,
111+
generate: Literal["RSA"],
112+
public_exponent: int | None = None,
113+
size: int | None = None,
114+
kid: str | None = None,
115+
alg: str | None = None,
116+
use: _JWKUseSupported | None = None,
117+
key_ops: list[_JWKOperationSupported] | None = None
118+
) -> Self: ...
119+
@overload
120+
def __init__(self, *, generate: _JWKKeyTypeSupported, **kwargs) -> None: ...
121+
@overload
107122
def __init__(self, **kwargs) -> None: ...
108-
# `kty` and the other keyword arguments are passed as `params` to the called generator
109-
# function. The possible arguments depend on the value of `kty`.
110-
# TODO: Add overloads for the individual `kty` values.
123+
# TODO: __init__ may not be typed adequately because keyword arguments depend on the value of generate
111124
@classmethod
112125
@overload
113126
def generate(
@@ -230,6 +243,8 @@ class JWK(dict[str, Any]):
230243
@classmethod
231244
def from_password(cls, password: str) -> Self: ...
232245
def setdefault(self, key: str, default: _T | None = None) -> _T: ...
246+
def __hash__(self) -> int: ...
247+
def __eq__(self, other: JWK) -> bool: ...
233248

234249
class JWKSet(dict[Literal["keys"], set[JWK]]):
235250
@overload

0 commit comments

Comments
 (0)