Skip to content

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

Merged
merged 4 commits into from
Oct 23, 2018
Merged

Annotate jwt.algorithms #2532

merged 4 commits into from
Oct 23, 2018

Conversation

srittau
Copy link
Collaborator

@srittau srittau commented Oct 21, 2018

Cf. #1446

@staticmethod
def to_jwk(key_obj: _K) -> str: ...
@staticmethod
def from_jwk(jwk: str) -> _K: ...
Copy link
Member

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.

SHA256: ClassVar[_HashAlg]
SHA384: ClassVar[_HashAlg]
SHA512: ClassVar[_HashAlg]
has_alg: _HashAlg
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hash_alg

def __init__(self, _HashAlg) -> None: ...
def prepare_key(self, key: Union[str, bytes]) -> bytes: ...
@staticmethod
def to_jwk(key_obj: Union[str, bytes]) -> Any: ...
Copy link
Member

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.

@staticmethod
def from_jwk(jwk: _LoadsString) -> bytes: ...

# If cryptography is installed, also has classes RSAAlgorithm and ECAlgorithm.
Copy link
Member

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.

Copy link
Collaborator Author

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.

@JelleZijlstra JelleZijlstra merged commit c4f4c40 into python:master Oct 23, 2018
@srittau srittau deleted the jwt branch October 23, 2018 16:45
yedpodtrzitko pushed a commit to yedpodtrzitko/typeshed that referenced this pull request Jan 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants