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