[build-system]
requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"]
build-backend = "setuptools.build_meta"

[project]
name = "prefect-snowflake"
dependencies = [
  "snowflake>=1.5.0",
  "snowflake-connector-python>=3.17.2",
  "prefect>=3.0.0",
]
dynamic = ["version"]
description = "Prefect integrations for interacting with Snowflake"
readme = "README.md"
requires-python = ">=3.10"
license = { text = "Apache License 2.0" }
keywords = ["prefect"]
authors = [{ name = "Prefect Technologies, Inc.", email = "help@prefect.io" }]
classifiers = [
  "Natural Language :: English",
  "Intended Audience :: Developers",
  "Intended Audience :: System Administrators",
  "License :: OSI Approved :: Apache Software License",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Topic :: Software Development :: Libraries",
]

[dependency-groups]
dev = [
  "coverage",
  "interrogate",
  "mkdocs-gen-files",
  "mkdocs-material",
  "mkdocs",
  "mkdocstrings[python]",
  "mypy",
  "pillow",
  "pre-commit",
  "pytest-asyncio",
  "pytest >= 8.3",
  "pytest-env",
  "pytest-xdist",
]

[project.urls]
Homepage = "https://github.com/PrefectHQ/prefect/tree/main/src/integrations/prefect-snowflake"

[project.entry-points."prefect.collections"]
prefect_snowflake = "prefect_snowflake"

[tool.setuptools_scm]
version_file = "prefect_snowflake/_version.py"
root = "../../.."
tag_regex = "^prefect-snowflake-(?P<version>\\d+\\.\\d+\\.\\d+(?:[a-zA-Z0-9]+(?:\\.[a-zA-Z0-9]+)*)?)$"
fallback_version = "0.0.0"
git_describe_command = 'git describe --dirty --tags --long --match "prefect-snowflake-*[0-9]*"'

[tool.interrogate]
ignore-init-module = true
ignore_init_method = true
exclude = ["prefect_snowflake/_version.py", "tests"]
fail-under = 95
omit-covered-files = true

[tool.coverage.run]
omit = ["tests/*", "prefect_snowflake/_version.py"]

[tool.coverage.report]
fail_under = 80
show_missing = true

[tool.pytest.ini_options]
asyncio_default_fixture_loop_scope = "session"
asyncio_mode = "auto"
env = ["PREFECT_TEST_MODE=1"]

[tool.uv.sources]
prefect = { path = "../../../" }
