-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Annotate jwt.algorithms #2532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Annotate jwt.algorithms #2532
Conversation
third_party/3/jwt/algorithms.pyi
Outdated
@staticmethod | ||
def to_jwk(key_obj: _K) -> str: ... | ||
@staticmethod | ||
def from_jwk(jwk: str) -> _K: ... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this works correctly:
$ cat bin/genstat.py
from typing import *
T = TypeVar('T')
class A(Generic[T]):
@staticmethod
def foo() -> T:
pass
class B(A[int]):
pass
reveal_type(B.foo())
$ python3.7 -m mypy bin/genstat.py
bin/genstat.py:13: error: Revealed type is 'T`1'
This is python/mypy#1337.
There doesn't appear to be a good workaround, so we may have to use Any
for now.
third_party/3/jwt/algorithms.pyi
Outdated
SHA256: ClassVar[_HashAlg] | ||
SHA384: ClassVar[_HashAlg] | ||
SHA512: ClassVar[_HashAlg] | ||
has_alg: _HashAlg |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hash_alg
third_party/3/jwt/algorithms.pyi
Outdated
def __init__(self, _HashAlg) -> None: ... | ||
def prepare_key(self, key: Union[str, bytes]) -> bytes: ... | ||
@staticmethod | ||
def to_jwk(key_obj: Union[str, bytes]) -> Any: ... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems to actually return str
.
third_party/3/jwt/algorithms.pyi
Outdated
@staticmethod | ||
def from_jwk(jwk: _LoadsString) -> bytes: ... | ||
|
||
# If cryptography is installed, also has classes RSAAlgorithm and ECAlgorithm. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should also have stubs for these classes then. False negatives are better than false positives.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. I left them out for now, since we don't have stubs for cryptography, yet, but we could of course use Any
.
Cf. #1446