diff --git a/poetry.lock b/poetry.lock index 498e17d..401d968 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1443,32 +1443,28 @@ files = [ [[package]] name = "singer-sdk" -version = "0.38.0" +version = "0.39.0a1.post29.dev0+078cffdd" description = "A framework for building Singer taps" optional = false python-versions = ">=3.8" -files = [ - {file = "singer_sdk-0.38.0-py3-none-any.whl", hash = "sha256:c8be06edae149571df907262ce870dca990dc86a588609dec4ee8404aed3dc01"}, - {file = "singer_sdk-0.38.0.tar.gz", hash = "sha256:22f13980f9d5d26b98c2654a28e30ddda92d334eade6c50b6a0668be5a8aa55b"}, -] +files = [] +develop = false [package.dependencies] backoff = {version = ">=2.0.0", markers = "python_version < \"4\""} backports-datetime-fromisoformat = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -click = ">=8.0,<9.0" -cryptography = ">=3.4.6" +click = "~=8.0" fs = ">=2.4.16" -importlib-metadata = {version = "<8.0.0", markers = "python_version < \"3.12\""} -importlib-resources = {version = ">=5.12.0,<6.2.0 || >6.2.0,<6.3.0 || >6.3.0,<6.3.1 || >6.3.1", markers = "python_version < \"3.9\""} +importlib-metadata = {version = "<9.0.0", markers = "python_version < \"3.12\""} +importlib-resources = {version = ">=5.12.0,!=6.2.0,!=6.3.0,!=6.3.1", markers = "python_version < \"3.10\""} inflection = ">=0.5.1" joblib = ">=1.3.0" jsonpath-ng = ">=1.5.3" jsonschema = ">=4.16.0" packaging = ">=23.1" pendulum = ">=2.1.0,<4" -PyJWT = ">=2.4,<3.0" -pytest = {version = ">=7.2.1", optional = true, markers = "extra == \"docs\" or extra == \"testing\""} -pytest-durations = {version = ">=1.2.0", optional = true, markers = "extra == \"testing\""} +pytest = {version = ">=7.2.1", optional = true} +pytest-durations = {version = ">=1.2.0", optional = true} python-dateutil = ">=2.8.2" python-dotenv = ">=0.20" PyYAML = ">=6.0" @@ -1481,12 +1477,19 @@ typing-extensions = ">=4.5.0" urllib3 = ">=1.26,<2" [package.extras] -docs = ["furo (>=2022.12.7)", "myst-parser (>=1)", "pytest (>=7.2.1)", "sphinx (>=4.5)", "sphinx-autobuild (>=2021.3.14)", "sphinx-copybutton (>=0.3.1)", "sphinx-inline-tabs (>=2023.4.21)", "sphinx-notfound-page (>=1.0.0)", "sphinx-reredirects (>=0.1.1)"] -faker = ["faker (>=22.5,<26.0)"] +docs = ["furo (>=2024.5.6)", "myst-parser (>=3)", "pytest (>=7.2.1)", "sphinx (>=7)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinx-notfound-page (>=1.0.0)", "sphinx-reredirects (>=0.1.5)"] +faker = ["faker (>=22.5,<27.0)"] +jwt = ["PyJWT (>=2.4,<3.0)", "cryptography (>=3.4.6)"] parquet = ["numpy (>=1.22)", "numpy (>=1.22,<1.25)", "pyarrow (>=13)"] s3 = ["fs-s3fs (>=1.1.1)"] testing = ["pytest (>=7.2.1)", "pytest-durations (>=1.2.0)"] +[package.source] +type = "git" +url = "https://github.com/meltano/sdk.git" +reference = "HEAD" +resolved_reference = "078cffddfa8ee514ff740fca035ddac03dc37ae8" + [[package]] name = "six" version = "1.16.0" @@ -1745,4 +1748,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.8" -content-hash = "3a0a8ceaab1c913f18a55adbcdf8c1c2193f3ae13c3595992eae80cdbc609596" +content-hash = "847109928ba0bee51445cbcb66810fdd90102af660c8b401965e94c781de099c" diff --git a/pyproject.toml b/pyproject.toml index 3fcf4a8..92861d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ packages = [ [tool.poetry.dependencies] python = ">=3.8" cryptography = ">=40,<43" -singer-sdk = "~=0.38.0" +singer-sdk = { git = "https://github.com/meltano/sdk.git" } snowflake-sqlalchemy = "~=1.6.1" snowflake-connector-python = { version = "<4.0.0", extras = ["secure-local-storage"] } sqlalchemy = "<2" @@ -25,7 +25,7 @@ sqlalchemy = "<2" coverage = ">=7.2.7" pytest = ">=7.4.3" pytest-xdist = ">=3.3.1" -singer-sdk = { version="~=0.38.0", extras = ["testing"] } +singer-sdk = { git = "https://github.com/meltano/sdk.git", extras = ["testing"] } [tool.ruff] line-length = 120 diff --git a/target_snowflake/sinks.py b/target_snowflake/sinks.py index fc980fb..4c2313b 100644 --- a/target_snowflake/sinks.py +++ b/target_snowflake/sinks.py @@ -21,7 +21,7 @@ from target_snowflake.connector import SnowflakeConnector if t.TYPE_CHECKING: - from singer_sdk import PluginBase, SQLConnector + from singer_sdk import PluginBase DEFAULT_BATCH_CONFIG = { "encoding": {"format": "jsonl", "compression": "gzip"}, @@ -29,7 +29,7 @@ } -class SnowflakeSink(SQLSink): +class SnowflakeSink(SQLSink[SnowflakeConnector]): """Snowflake target sink class.""" connector_class = SnowflakeConnector @@ -40,7 +40,7 @@ def __init__( stream_name: str, schema: dict, key_properties: list[str] | None, - connector: SQLConnector | None = None, + connector: SnowflakeConnector | None = None, ) -> None: """Initialize Snowflake Sink.""" self.target = target