diff --git a/pyproject.toml b/pyproject.toml index 9b263d01..fa421db3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ "psycopg2-binary==2.9.10", "sqlalchemy==2.0.43", "sshtunnel==0.4.0", - "singer-sdk[faker]~=0.49.0", + "singer-sdk[faker,sql]~=0.49.0", ] [project.urls] @@ -132,3 +132,6 @@ convention = "google" [tool.pytest.ini_options] addopts = '--durations=10' +filterwarnings = [ + "error", +] diff --git a/tap_postgres/client.py b/tap_postgres/client.py index f6a216fc..75651f3d 100644 --- a/tap_postgres/client.py +++ b/tap_postgres/client.py @@ -17,10 +17,10 @@ import sqlalchemy as sa import sqlalchemy.types from psycopg2 import extras -from singer_sdk import SQLConnector, SQLStream -from singer_sdk.connectors.sql import SQLToJSONSchema from singer_sdk.helpers._state import increment_state from singer_sdk.helpers._typing import TypeConformanceLevel +from singer_sdk.sql import SQLConnector, SQLStream +from singer_sdk.sql.connector import SQLToJSONSchema from sqlalchemy.dialects import postgresql if t.TYPE_CHECKING: diff --git a/tap_postgres/tap.py b/tap_postgres/tap.py index c89ddd91..60fda64f 100644 --- a/tap_postgres/tap.py +++ b/tap_postgres/tap.py @@ -12,9 +12,10 @@ from typing import TYPE_CHECKING, Any, cast import paramiko -from singer_sdk import SQLStream, SQLTap, Stream +from singer_sdk import Stream from singer_sdk import typing as th # JSON schema typing helpers from singer_sdk.singerlib import Catalog, Metadata, Schema +from singer_sdk.sql import SQLStream, SQLTap from sqlalchemy.engine import URL from sqlalchemy.engine.url import make_url from sshtunnel import SSHTunnelForwarder @@ -499,7 +500,7 @@ def ssh_tunnel_connect(self, *, ssh_config: dict[str, Any], url: URL) -> URL: self.ssh_tunnel: SSHTunnelForwarder = SSHTunnelForwarder( ssh_address_or_host=(ssh_config["host"], ssh_config["port"]), ssh_username=ssh_config["username"], - ssh_private_key=self.guess_key_type(ssh_config["private_key"]), + ssh_pkey=self.guess_key_type(ssh_config["private_key"]), ssh_private_key_password=ssh_config.get("private_key_password"), remote_bind_address=(url.host, url.port), ) diff --git a/uv.lock b/uv.lock index 05ce88d9..c2583893 100644 --- a/uv.lock +++ b/uv.lock @@ -501,7 +501,7 @@ source = { editable = "." } dependencies = [ { name = "paramiko" }, { name = "psycopg2-binary" }, - { name = "singer-sdk", extra = ["faker"] }, + { name = "singer-sdk", extra = ["faker", "sql"] }, { name = "sqlalchemy" }, { name = "sshtunnel" }, ] @@ -540,7 +540,7 @@ typing = [ requires-dist = [ { name = "paramiko", specifier = ">=3,<4" }, { name = "psycopg2-binary", specifier = "==2.9.10" }, - { name = "singer-sdk", extras = ["faker"], specifier = "~=0.49.0" }, + { name = "singer-sdk", extras = ["faker", "sql"], specifier = "~=0.49.0" }, { name = "sqlalchemy", specifier = "==2.0.43" }, { name = "sshtunnel", specifier = "==0.4.0" }, ] @@ -1134,6 +1134,9 @@ wheels = [ faker = [ { name = "faker" }, ] +sql = [ + { name = "sqlalchemy" }, +] testing = [ { name = "pytest" }, ]