Add typing information
parent
83abe85c81
commit
198e2dae5c
1
Makefile
1
Makefile
|
@ -2,6 +2,7 @@ SHELL=/bin/bash
|
|||
|
||||
lint:
|
||||
flake8
|
||||
mypy requests_http_signature
|
||||
|
||||
test: lint
|
||||
python ./test/test.py -v
|
||||
|
|
|
@ -2,7 +2,7 @@ import datetime
|
|||
import email.utils
|
||||
import hashlib
|
||||
import secrets
|
||||
from typing import List, Union
|
||||
from typing import Union, Sequence, Type
|
||||
|
||||
import http_sfv
|
||||
import requests
|
||||
|
@ -10,7 +10,7 @@ import requests
|
|||
from requests.exceptions import RequestException
|
||||
from http_message_signatures import (algorithms, HTTPSignatureComponentResolver, HTTPSignatureKeyResolver, # noqa: F401
|
||||
HTTPMessageSigner, HTTPMessageVerifier, HTTPSignatureAlgorithm, InvalidSignature)
|
||||
from http_message_signatures.structures import CaseInsensitiveDict
|
||||
from http_message_signatures.structures import CaseInsensitiveDict, VerifyResult
|
||||
|
||||
|
||||
class RequestsHttpSignatureException(RequestException):
|
||||
|
@ -84,11 +84,11 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
|
|||
_auto_cover_header_fields = {"authorization", "content-digest", "date"}
|
||||
|
||||
def __init__(self, *,
|
||||
signature_algorithm: HTTPSignatureAlgorithm,
|
||||
signature_algorithm: Type[HTTPSignatureAlgorithm],
|
||||
key: bytes = None,
|
||||
key_id: str,
|
||||
key_resolver: HTTPSignatureKeyResolver = None,
|
||||
covered_component_ids: List[str] = ("@method", "@authority", "@target-uri"),
|
||||
covered_component_ids: Sequence[str] = ("@method", "@authority", "@target-uri"),
|
||||
label: str = None,
|
||||
include_alg: bool = True,
|
||||
use_nonce: bool = False,
|
||||
|
@ -168,10 +168,10 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
|
|||
|
||||
@classmethod
|
||||
def verify(cls, message: Union[requests.PreparedRequest, requests.Response], *,
|
||||
require_components: List[str] = ("@method", "@authority", "@target-uri"),
|
||||
signature_algorithm: HTTPSignatureAlgorithm,
|
||||
require_components: Sequence[str] = ("@method", "@authority", "@target-uri"),
|
||||
signature_algorithm: Type[HTTPSignatureAlgorithm],
|
||||
key_resolver: HTTPSignatureKeyResolver,
|
||||
max_age: datetime.timedelta = datetime.timedelta(days=1)):
|
||||
max_age: datetime.timedelta = datetime.timedelta(days=1)) -> VerifyResult:
|
||||
"""
|
||||
Verify an HTTP message signature.
|
||||
|
||||
|
|
5
setup.py
5
setup.py
|
@ -15,7 +15,7 @@ setup(
|
|||
},
|
||||
setup_requires=['setuptools_scm >= 3.4.3'],
|
||||
install_requires=[
|
||||
"http-message-signatures >= 0.4.0",
|
||||
"http-message-signatures >= 0.4.3",
|
||||
"http-sfv >= 0.9.3",
|
||||
"requests >= 2.25.1"
|
||||
],
|
||||
|
@ -30,6 +30,9 @@ setup(
|
|||
},
|
||||
packages=find_packages(exclude=['test']),
|
||||
include_package_data=True,
|
||||
package_data={
|
||||
"http_message_signatures": ["py.typed"],
|
||||
},
|
||||
platforms=['MacOS X', 'Posix'],
|
||||
test_suite='test',
|
||||
classifiers=[
|
||||
|
|
Loading…
Reference in New Issue