Skip to content

Commit

Permalink
chore: Define Auth type alias in types module
Browse files Browse the repository at this point in the history
  • Loading branch information
edgarrmondragon committed Aug 5, 2024
1 parent a4a3561 commit fab2410
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,9 @@
import importlib_resources

if TYPE_CHECKING:
from singer_sdk.helpers.types import Context
from singer_sdk.helpers.types import Auth, Context


_Auth = Callable[[requests.PreparedRequest], requests.PreparedRequest]

# TODO: Delete this is if not using json files for schema definition
SCHEMAS_DIR = importlib_resources.files(__package__) / "schemas"

Expand All @@ -74,7 +72,7 @@ def url_base(self) -> str:
{%- if cookiecutter.auth_method in ("OAuth2", "JWT") %}

@cached_property
def authenticator(self) -> _Auth:
def authenticator(self) -> Auth:
"""Return a new authenticator object.
Returns:
Expand Down
4 changes: 4 additions & 0 deletions singer_sdk/helpers/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import sys
import typing as t

import requests

if sys.version_info < (3, 9):
from typing import Mapping # noqa: ICN003
else:
Expand All @@ -15,10 +17,12 @@
else:
from typing import TypeAlias # noqa: ICN003


__all__ = [
"Context",
"Record",
]

Context: TypeAlias = Mapping[str, t.Any]
Record: TypeAlias = t.Dict[str, t.Any]
Auth: TypeAlias = t.Callable[[requests.PreparedRequest], requests.PreparedRequest]
11 changes: 2 additions & 9 deletions singer_sdk/streams/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,18 @@
from singer_sdk.streams.core import Stream

if t.TYPE_CHECKING:
import sys
from datetime import datetime

from backoff.types import Details

from singer_sdk._singerlib import Schema
from singer_sdk.helpers.types import Context
from singer_sdk.helpers.types import Auth, Context
from singer_sdk.tap_base import Tap

if sys.version_info >= (3, 10):
from typing import TypeAlias # noqa: ICN003
else:
from typing_extensions import TypeAlias

DEFAULT_PAGE_SIZE = 1000
DEFAULT_REQUEST_TIMEOUT = 300 # 5 minutes

_TToken = t.TypeVar("_TToken")
_Auth: TypeAlias = t.Callable[[requests.PreparedRequest], requests.PreparedRequest]


class RESTStream(Stream, t.Generic[_TToken], metaclass=abc.ABCMeta): # noqa: PLR0904
Expand Down Expand Up @@ -610,7 +603,7 @@ def parse_response(self, response: requests.Response) -> t.Iterable[dict]:
# Abstract methods:

@property
def authenticator(self) -> _Auth:
def authenticator(self) -> Auth:
"""Return or set the authenticator for managing HTTP auth headers.
If an authenticator is not specified, REST-based taps will simply pass
Expand Down

0 comments on commit fab2410

Please sign in to comment.