mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-05-04 20:45:49 +08:00
Improve stubs for oauthlib.oauth2.rfc6749 (#13752)
This commit is contained in:
@@ -57,3 +57,4 @@ from .rfc6749.grant_types import (
|
||||
from .rfc6749.request_validator import RequestValidator as RequestValidator
|
||||
from .rfc6749.tokens import BearerToken as BearerToken, OAuth2Token as OAuth2Token
|
||||
from .rfc6749.utils import is_secure_transport as is_secure_transport
|
||||
from .rfc8628.clients import DeviceClient as DeviceClient
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from typing import Any
|
||||
from logging import Logger
|
||||
|
||||
from .endpoints.base import BaseEndpoint as BaseEndpoint, catch_errors_and_unavailability as catch_errors_and_unavailability
|
||||
from .errors import (
|
||||
@@ -8,4 +8,4 @@ from .errors import (
|
||||
TemporarilyUnavailableError as TemporarilyUnavailableError,
|
||||
)
|
||||
|
||||
log: Any
|
||||
log: Logger
|
||||
|
||||
@@ -1,97 +1,122 @@
|
||||
from _typeshed import Incomplete
|
||||
from typing import Any
|
||||
from _typeshed import ConvertibleToInt, Incomplete
|
||||
from collections.abc import Callable
|
||||
from typing import Final, Literal
|
||||
from typing_extensions import TypeAlias
|
||||
|
||||
AUTH_HEADER: str
|
||||
URI_QUERY: str
|
||||
BODY: str
|
||||
FORM_ENC_HEADERS: Any
|
||||
from oauthlib.common import _HTTPMethod
|
||||
from oauthlib.oauth2.rfc6749.tokens import OAuth2Token
|
||||
|
||||
_TokenPlacement: TypeAlias = Literal["auth_header", "query", "body"]
|
||||
|
||||
AUTH_HEADER: Final[_TokenPlacement]
|
||||
URI_QUERY: Final[_TokenPlacement]
|
||||
BODY: Final[_TokenPlacement]
|
||||
FORM_ENC_HEADERS: Final[dict[str, str]]
|
||||
|
||||
class Client:
|
||||
refresh_token_key: str
|
||||
client_id: Any
|
||||
default_token_placement: Any
|
||||
token_type: Any
|
||||
access_token: Any
|
||||
refresh_token: Any
|
||||
mac_key: Any
|
||||
mac_algorithm: Any
|
||||
token: Any
|
||||
scope: Any
|
||||
state_generator: Any
|
||||
state: Any
|
||||
redirect_url: Any
|
||||
code: Any
|
||||
expires_in: Any
|
||||
code_verifier: str
|
||||
code_challenge: str
|
||||
code_challenge_method: str
|
||||
client_id: str
|
||||
default_token_placement: _TokenPlacement
|
||||
token_type: str
|
||||
access_token: str | None
|
||||
refresh_token: str | None
|
||||
mac_key: str | bytes | bytearray | None
|
||||
mac_algorithm: str | None
|
||||
token: dict[str, Incomplete]
|
||||
scope: str | set[object] | tuple[object] | list[object]
|
||||
state_generator: Callable[[], str]
|
||||
state: str | None
|
||||
redirect_url: str | None
|
||||
code: Incomplete
|
||||
expires_in: ConvertibleToInt | None
|
||||
code_verifier: str | None
|
||||
code_challenge: str | None
|
||||
code_challenge_method: str | None
|
||||
def __init__(
|
||||
self,
|
||||
client_id,
|
||||
default_token_placement="auth_header",
|
||||
client_id: str,
|
||||
default_token_placement: _TokenPlacement = "auth_header",
|
||||
token_type: str = "Bearer",
|
||||
access_token: Incomplete | None = None,
|
||||
refresh_token: Incomplete | None = None,
|
||||
mac_key: Incomplete | None = None,
|
||||
mac_algorithm: Incomplete | None = None,
|
||||
token: Incomplete | None = None,
|
||||
scope: Incomplete | None = None,
|
||||
state: Incomplete | None = None,
|
||||
redirect_url: Incomplete | None = None,
|
||||
state_generator=...,
|
||||
access_token: str | None = None,
|
||||
refresh_token: str | None = None,
|
||||
mac_key: str | bytes | bytearray | None = None,
|
||||
mac_algorithm: str | None = None,
|
||||
token: dict[str, Incomplete] | None = None,
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
state: str | None = None,
|
||||
redirect_url: str | None = None,
|
||||
state_generator: Callable[[], str] = ...,
|
||||
code_verifier: str | None = None,
|
||||
code_challenge: str | None = None,
|
||||
code_challenge_method: str | None = None,
|
||||
**kwargs,
|
||||
) -> None: ...
|
||||
@property
|
||||
def token_types(self): ...
|
||||
def token_types(
|
||||
self,
|
||||
) -> dict[
|
||||
Literal["Bearer", "MAC"],
|
||||
Callable[
|
||||
[str, str, str | None, dict[str, str] | None, str | None, Incomplete], tuple[str, dict[str, str] | None, str | None]
|
||||
],
|
||||
]: ...
|
||||
def prepare_request_uri(self, *args, **kwargs) -> str: ...
|
||||
def prepare_request_body(self, *args, **kwargs) -> str: ...
|
||||
def parse_request_uri_response(self, *args, **kwargs) -> dict[str, str]: ...
|
||||
def add_token(
|
||||
self,
|
||||
uri,
|
||||
http_method: str = "GET",
|
||||
body: Incomplete | None = None,
|
||||
headers: Incomplete | None = None,
|
||||
token_placement: Incomplete | None = None,
|
||||
uri: str,
|
||||
http_method: _HTTPMethod = "GET",
|
||||
body: str | None = None,
|
||||
headers: dict[str, str] | None = None,
|
||||
token_placement: _TokenPlacement | None = None,
|
||||
**kwargs,
|
||||
): ...
|
||||
) -> tuple[str, dict[str, str] | None, str | None]: ...
|
||||
def prepare_authorization_request(
|
||||
self,
|
||||
authorization_url,
|
||||
state: Incomplete | None = None,
|
||||
redirect_url: Incomplete | None = None,
|
||||
scope: Incomplete | None = None,
|
||||
authorization_url: str,
|
||||
state: str | None = None,
|
||||
redirect_url: str | None = None,
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
**kwargs,
|
||||
): ...
|
||||
) -> tuple[str, dict[str, str], str]: ...
|
||||
def prepare_token_request(
|
||||
self,
|
||||
token_url,
|
||||
authorization_response: Incomplete | None = None,
|
||||
redirect_url: Incomplete | None = None,
|
||||
state: Incomplete | None = None,
|
||||
token_url: str,
|
||||
authorization_response: str | None = None,
|
||||
redirect_url: str | None = None,
|
||||
state: str | None = None,
|
||||
body: str = "",
|
||||
**kwargs,
|
||||
): ...
|
||||
) -> tuple[str, dict[str, str], str]: ...
|
||||
def prepare_refresh_token_request(
|
||||
self, token_url, refresh_token: Incomplete | None = None, body: str = "", scope: Incomplete | None = None, **kwargs
|
||||
): ...
|
||||
self,
|
||||
token_url: str,
|
||||
refresh_token: str | None = None,
|
||||
body: str = "",
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
**kwargs,
|
||||
) -> tuple[str, dict[str, str], str]: ...
|
||||
def prepare_token_revocation_request(
|
||||
self,
|
||||
revocation_url,
|
||||
token,
|
||||
token_type_hint: str = "access_token",
|
||||
token_type_hint: Literal["access_token", "refresh_token"] | None = "access_token",
|
||||
body: str = "",
|
||||
callback: Incomplete | None = None,
|
||||
callback: Callable[[Incomplete], Incomplete] | None = None,
|
||||
**kwargs,
|
||||
): ...
|
||||
def parse_request_body_response(self, body, scope: Incomplete | None = None, **kwargs): ...
|
||||
def parse_request_body_response(
|
||||
self, body: str, scope: str | set[object] | tuple[object] | list[object] | None = None, **kwargs
|
||||
) -> OAuth2Token: ...
|
||||
def prepare_refresh_body(
|
||||
self, body: str = "", refresh_token: Incomplete | None = None, scope: Incomplete | None = None, **kwargs
|
||||
): ...
|
||||
self,
|
||||
body: str = "",
|
||||
refresh_token: str | None = None,
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
**kwargs,
|
||||
) -> str: ...
|
||||
def create_code_verifier(self, length: int) -> str: ...
|
||||
def create_code_challenge(self, code_verifier: str, code_challenge_method: str | None = None) -> str: ...
|
||||
def populate_code_attributes(self, response) -> None: ...
|
||||
def populate_token_attributes(self, response) -> None: ...
|
||||
def populate_code_attributes(self, response: dict[str, Incomplete]) -> None: ...
|
||||
def populate_token_attributes(self, response: dict[str, Incomplete]) -> None: ...
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
from _typeshed import Incomplete
|
||||
from typing import Any
|
||||
from typing import Any, NoReturn
|
||||
|
||||
from oauthlib.common import Request
|
||||
|
||||
class OAuth2Error(Exception):
|
||||
error: Any
|
||||
error: str | None
|
||||
status_code: int
|
||||
description: str
|
||||
uri: Any
|
||||
uri: str | None
|
||||
state: Any
|
||||
redirect_uri: Any
|
||||
client_id: Any
|
||||
@@ -15,21 +17,21 @@ class OAuth2Error(Exception):
|
||||
grant_type: Any
|
||||
def __init__(
|
||||
self,
|
||||
description: Incomplete | None = None,
|
||||
uri: Incomplete | None = None,
|
||||
description: str | None = None,
|
||||
uri: str | None = None,
|
||||
state: Incomplete | None = None,
|
||||
status_code: Incomplete | None = None,
|
||||
request: Incomplete | None = None,
|
||||
status_code: int | None = None,
|
||||
request: Request | None = None,
|
||||
) -> None: ...
|
||||
def in_uri(self, uri): ...
|
||||
def in_uri(self, uri: str) -> str: ...
|
||||
@property
|
||||
def twotuples(self): ...
|
||||
def twotuples(self) -> list[tuple[str, Incomplete | str | None]]: ...
|
||||
@property
|
||||
def urlencoded(self): ...
|
||||
def urlencoded(self) -> str: ...
|
||||
@property
|
||||
def json(self): ...
|
||||
def json(self) -> str: ...
|
||||
@property
|
||||
def headers(self): ...
|
||||
def headers(self) -> dict[str, str]: ...
|
||||
|
||||
class TokenExpiredError(OAuth2Error):
|
||||
error: str
|
||||
@@ -135,7 +137,14 @@ class LoginRequired(OAuth2Error):
|
||||
error: str
|
||||
|
||||
class CustomOAuth2Error(OAuth2Error):
|
||||
error: Any
|
||||
def __init__(self, error, *args, **kwargs) -> None: ...
|
||||
def __init__(
|
||||
self,
|
||||
error: str,
|
||||
description: str | None = None,
|
||||
uri: str | None = None,
|
||||
state: Incomplete | None = None,
|
||||
status_code: int | None = None,
|
||||
request: Request | None = None,
|
||||
) -> None: ...
|
||||
|
||||
def raise_from_error(error, params: Incomplete | None = None) -> None: ...
|
||||
def raise_from_error(error: str, params: dict[str, Incomplete] | None = None) -> NoReturn: ...
|
||||
|
||||
@@ -1,23 +1,44 @@
|
||||
from _typeshed import Incomplete
|
||||
from collections.abc import Callable
|
||||
from typing import Literal
|
||||
|
||||
from .tokens import OAuth2Token
|
||||
|
||||
def prepare_grant_uri(
|
||||
uri,
|
||||
client_id,
|
||||
response_type,
|
||||
redirect_uri: Incomplete | None = None,
|
||||
scope: Incomplete | None = None,
|
||||
state: Incomplete | None = None,
|
||||
uri: str,
|
||||
client_id: str,
|
||||
response_type: Literal["code", "token"],
|
||||
redirect_uri: str | None = None,
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
state: str | None = None,
|
||||
code_challenge: str | None = None,
|
||||
code_challenge_method: str | None = "plain",
|
||||
**kwargs,
|
||||
): ...
|
||||
) -> str: ...
|
||||
def prepare_token_request(
|
||||
grant_type, body: str = "", include_client_id: bool = True, code_verifier: str | None = None, **kwargs
|
||||
): ...
|
||||
grant_type: str,
|
||||
body: str = "",
|
||||
include_client_id: bool = True,
|
||||
code_verifier: str | None = None,
|
||||
*,
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
client_id: str | None = None,
|
||||
client_secret: str | None = None,
|
||||
**kwargs,
|
||||
) -> str: ...
|
||||
def prepare_token_revocation_request(
|
||||
url, token, token_type_hint: str = "access_token", callback: Incomplete | None = None, body: str = "", **kwargs
|
||||
): ...
|
||||
def parse_authorization_code_response(uri, state: Incomplete | None = None): ...
|
||||
def parse_implicit_response(uri, state: Incomplete | None = None, scope: Incomplete | None = None): ...
|
||||
def parse_token_response(body, scope: Incomplete | None = None): ...
|
||||
def validate_token_parameters(params) -> None: ...
|
||||
url: str,
|
||||
token: str,
|
||||
token_type_hint: Literal["access_token", "refresh_token"] | None = "access_token",
|
||||
callback: Callable[[Incomplete], Incomplete] | None = None,
|
||||
body: str = "",
|
||||
**kwargs,
|
||||
) -> tuple[str, dict[str, str], str]: ...
|
||||
def parse_authorization_code_response(uri: str, state: str | None = None) -> dict[str, str]: ...
|
||||
def parse_implicit_response(
|
||||
uri: str, state: str | None = None, scope: str | set[object] | tuple[object] | list[object] | None = None
|
||||
) -> OAuth2Token: ...
|
||||
def parse_token_response(
|
||||
body: str | bytes | bytearray, scope: str | set[object] | tuple[object] | list[object] | None = None
|
||||
) -> OAuth2Token: ...
|
||||
def validate_token_parameters(params: dict[str, Incomplete]) -> None: ...
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from collections.abc import Mapping
|
||||
from typing import Any, Literal, TypedDict
|
||||
from logging import Logger
|
||||
from typing import Literal, TypedDict
|
||||
from typing_extensions import NotRequired
|
||||
|
||||
from oauthlib.common import Request
|
||||
@@ -18,7 +19,7 @@ class _AuthorizationCode(TypedDict):
|
||||
state: NotRequired[str]
|
||||
nonce: NotRequired[str]
|
||||
|
||||
log: Any
|
||||
log: Logger
|
||||
|
||||
class RequestValidator:
|
||||
def client_authentication_required(self, request: Request, *args, **kwargs) -> bool: ...
|
||||
|
||||
@@ -1,60 +1,67 @@
|
||||
import datetime
|
||||
from _typeshed import Incomplete
|
||||
from typing import Any
|
||||
from collections.abc import Callable
|
||||
from typing import Literal
|
||||
|
||||
class OAuth2Token(dict[Any, Any]):
|
||||
def __init__(self, params, old_scope: Incomplete | None = None) -> None: ...
|
||||
from oauthlib.common import Request, _HTTPMethod
|
||||
from oauthlib.oauth2.rfc6749.request_validator import RequestValidator
|
||||
|
||||
class OAuth2Token(dict[str, Incomplete]):
|
||||
def __init__(
|
||||
self, params: dict[str, Incomplete], old_scope: str | set[object] | tuple[object] | list[object] | None = None
|
||||
) -> None: ...
|
||||
@property
|
||||
def scope_changed(self): ...
|
||||
def scope_changed(self) -> bool: ...
|
||||
@property
|
||||
def old_scope(self): ...
|
||||
def old_scope(self) -> str | None: ...
|
||||
@property
|
||||
def old_scopes(self): ...
|
||||
def old_scopes(self) -> list[str]: ...
|
||||
@property
|
||||
def scope(self): ...
|
||||
def scope(self) -> str | None: ...
|
||||
@property
|
||||
def scopes(self): ...
|
||||
def scopes(self) -> list[str]: ...
|
||||
@property
|
||||
def missing_scopes(self): ...
|
||||
def missing_scopes(self) -> list[str]: ...
|
||||
@property
|
||||
def additional_scopes(self): ...
|
||||
def additional_scopes(self) -> list[str]: ...
|
||||
|
||||
def prepare_mac_header(
|
||||
token,
|
||||
uri,
|
||||
key,
|
||||
http_method,
|
||||
nonce: Incomplete | None = None,
|
||||
headers: Incomplete | None = None,
|
||||
body: Incomplete | None = None,
|
||||
token: str,
|
||||
uri: str,
|
||||
key: str | bytes | bytearray,
|
||||
http_method: _HTTPMethod,
|
||||
nonce: str | None = None,
|
||||
headers: dict[str, str] | None = None,
|
||||
body: str | None = None,
|
||||
ext: str = "",
|
||||
hash_algorithm: str = "hmac-sha-1",
|
||||
issue_time: Incomplete | None = None,
|
||||
issue_time: datetime.datetime | None = None,
|
||||
draft: int = 0,
|
||||
): ...
|
||||
def prepare_bearer_uri(token, uri): ...
|
||||
def prepare_bearer_headers(token, headers: Incomplete | None = None): ...
|
||||
def prepare_bearer_body(token, body: str = ""): ...
|
||||
def random_token_generator(request, refresh_token: bool = False): ...
|
||||
def signed_token_generator(private_pem, **kwargs): ...
|
||||
def get_token_from_header(request): ...
|
||||
) -> dict[str, str]: ...
|
||||
def prepare_bearer_uri(token: str, uri: str) -> str: ...
|
||||
def prepare_bearer_headers(token: str, headers: dict[str, str] | None = None) -> dict[str, str]: ...
|
||||
def prepare_bearer_body(token: str, body: str = "") -> str: ...
|
||||
def random_token_generator(request: Request, refresh_token: bool = False) -> str: ...
|
||||
def signed_token_generator(private_pem: str, **kwargs) -> Callable[[Request], str]: ...
|
||||
def get_token_from_header(request: Request) -> str | None: ...
|
||||
|
||||
class TokenBase:
|
||||
def __call__(self, request, refresh_token: bool = False) -> None: ...
|
||||
def validate_request(self, request) -> None: ...
|
||||
def estimate_type(self, request) -> None: ...
|
||||
def __call__(self, request: Request, refresh_token: bool = False) -> None: ...
|
||||
def validate_request(self, request: Request) -> bool: ...
|
||||
def estimate_type(self, request: Request) -> int: ...
|
||||
|
||||
class BearerToken(TokenBase):
|
||||
request_validator: Any
|
||||
token_generator: Any
|
||||
refresh_token_generator: Any
|
||||
expires_in: Any
|
||||
request_validator: RequestValidator | None
|
||||
token_generator: Callable[[Request], str]
|
||||
refresh_token_generator: Callable[[Request], str]
|
||||
expires_in: int
|
||||
def __init__(
|
||||
self,
|
||||
request_validator: Incomplete | None = None,
|
||||
token_generator: Incomplete | None = None,
|
||||
expires_in: Incomplete | None = None,
|
||||
refresh_token_generator: Incomplete | None = None,
|
||||
request_validator: RequestValidator | None = None,
|
||||
token_generator: Callable[[Request], str] | None = None,
|
||||
expires_in: int | None = None,
|
||||
refresh_token_generator: Callable[[Request], str] | None = None,
|
||||
) -> None: ...
|
||||
def create_token(self, request, refresh_token: bool = False, **kwargs): ...
|
||||
def validate_request(self, request): ...
|
||||
def estimate_type(self, request): ...
|
||||
def create_token(self, request: Request, refresh_token: bool = False, **kwargs) -> OAuth2Token: ...
|
||||
def validate_request(self, request: Request) -> bool: ...
|
||||
def estimate_type(self, request: Request) -> Literal[9, 5, 0]: ...
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
def list_to_scope(scope): ...
|
||||
def scope_to_list(scope): ...
|
||||
def params_from_uri(uri): ...
|
||||
def host_from_uri(uri): ...
|
||||
def escape(u): ...
|
||||
def generate_age(issue_time): ...
|
||||
def is_secure_transport(uri): ...
|
||||
import datetime
|
||||
from typing import overload
|
||||
|
||||
@overload
|
||||
def list_to_scope(scope: None) -> None: ...
|
||||
@overload
|
||||
def list_to_scope(scope: str | set[object] | tuple[object] | list[object]) -> str: ...
|
||||
@overload
|
||||
def scope_to_list(scope: None) -> None: ...
|
||||
@overload
|
||||
def scope_to_list(scope: str | set[object] | tuple[object] | list[object]) -> list[str]: ...
|
||||
def params_from_uri(uri: str) -> dict[str, str | list[str]]: ...
|
||||
def host_from_uri(uri: str) -> tuple[str, str | None]: ...
|
||||
def escape(u: str) -> str: ...
|
||||
def generate_age(issue_time: datetime.datetime | datetime.timedelta) -> str: ...
|
||||
def is_secure_transport(uri: str) -> bool: ...
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
from logging import Logger
|
||||
|
||||
log: Logger
|
||||
@@ -0,0 +1 @@
|
||||
from .device import DeviceClient as DeviceClient
|
||||
@@ -0,0 +1,40 @@
|
||||
from _typeshed import Incomplete
|
||||
from collections.abc import Callable
|
||||
|
||||
from oauthlib.oauth2.rfc6749.clients.base import Client, _TokenPlacement
|
||||
|
||||
class DeviceClient(Client):
|
||||
grant_type: str
|
||||
client_secret: str | None
|
||||
def __init__(
|
||||
self,
|
||||
client_id: str,
|
||||
*,
|
||||
client_secret: str | None = None,
|
||||
default_token_placement: _TokenPlacement = "auth_header",
|
||||
token_type: str = "Bearer",
|
||||
access_token: str | None = None,
|
||||
refresh_token: str | None = None,
|
||||
mac_key: str | bytes | bytearray | None = None,
|
||||
mac_algorithm: str | None = None,
|
||||
token: dict[str, Incomplete] | None = None,
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
state: str | None = None,
|
||||
redirect_url: str | None = None,
|
||||
state_generator: Callable[[], str] = ...,
|
||||
code_verifier: str | None = None,
|
||||
code_challenge: str | None = None,
|
||||
code_challenge_method: str | None = None,
|
||||
**kwargs,
|
||||
) -> None: ...
|
||||
def prepare_request_uri(
|
||||
self, uri: str, scope: str | set[object] | tuple[object] | list[object] | None = None, **kwargs
|
||||
) -> str: ...
|
||||
def prepare_request_body(
|
||||
self,
|
||||
device_code: str,
|
||||
body: str = "",
|
||||
scope: str | set[object] | tuple[object] | list[object] | None = None,
|
||||
include_client_id: bool = False,
|
||||
**kwargs,
|
||||
) -> str: ...
|
||||
Reference in New Issue
Block a user