From 7313e0d1fb98a619097a848fdf29f5a2e029b48c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Wed, 10 Jul 2024 13:21:27 -0600 Subject: [PATCH] WIP: Use `.context` attribue form sdk#2529 --- pyproject.toml | 7 +++++-- tap_nasa/client.py | 14 +++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 717e563..acdc57a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dynamic = [ "version", ] dependencies = [ - "singer-sdk~=0.38.0", + "singer-sdk @ git+https://github.com/meltano/sdk@main", ] optional-dependencies.dev = [ "tap-nasa[testing,typing]", @@ -43,7 +43,7 @@ optional-dependencies.dev = [ optional-dependencies.testing = [ "deptry>=0.12", "pytest>=8", - "singer-sdk[testing]", + "singer-sdk[testing] @ git+https://github.com/meltano/sdk@main", ] optional-dependencies.typing = [ "mypy", @@ -53,6 +53,9 @@ urls.Homepage = "https://github.com/edgarrmondragon/tap-nasa" urls.Repository = "https://github.com/edgarrmondragon/tap-nasa" scripts."tap-nasa" = "tap_nasa.tap:TapNASA.cli" +[tool.hatch.metadata] +allow-direct-references = true + [tool.hatch.version] source = "vcs" diff --git a/tap_nasa/client.py b/tap_nasa/client.py index e0bcaf0..abc79a0 100644 --- a/tap_nasa/client.py +++ b/tap_nasa/client.py @@ -11,6 +11,9 @@ from singer_sdk.authenticators import APIKeyAuthenticator from singer_sdk.pagination import BaseAPIPaginator +if t.TYPE_CHECKING: + from singer_sdk.helpers import types + DATE_FORMAT = "%Y-%m-%d" @@ -39,7 +42,7 @@ def increase(self) -> DateRange: self.max_date, ) - def valid(self) -> bool: + def is_valid(self) -> bool: """Check if the date range is not past the max date. Returns: @@ -70,10 +73,7 @@ def get_next(self, response) -> DateRange | None: # type: ignore[no-untyped-def """ new = self.current_value.increase() - if new.valid(): - return new - - return None + return new if new.is_valid() else None class NASAStream(RESTStream[DateRange]): @@ -156,7 +156,7 @@ def http_headers(self) -> dict[str, str]: def get_new_paginator(self) -> DateRangePaginator: """Get a new paginator.""" - start_dt = self.get_starting_timestamp(context=None) + start_dt = self.get_starting_timestamp(context=self.context) if start_dt is None: msg = "A start date is required" @@ -174,7 +174,7 @@ def get_new_paginator(self) -> DateRangePaginator: def get_url_params( self, - context: dict[str, t.Any] | None, + context: types.Context[str, t.Any] | None, next_page_token: DateRange | None, ) -> dict[str, t.Any] | str: """Get URL query parameters.