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

[tool.setuptools_scm]
write_to = "baselinr/baselinr/_version.py"
version_scheme = "release-branch-semver"
local_scheme = "node-and-date"
fallback_version = "0.1.0.dev0"

[project]
name = "baselinr"
version = "0.2.0"  # Fallback version for PEP 621 compliance (overridden by setuptools-scm when git tags are available)
description = "Modern data profiling and drift detection framework"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "Apache License 2.0 with Commercial Distribution Restriction"}
authors = [
    {name = "Baselinr Contributors", email = "hello@baselinr.io"}
]
keywords = [
    "data-profiling",
    "data-quality",
    "drift-detection",
    "data-observability",
    "data-warehouse",
    "snowflake",
    "postgresql",
    "sql",
    "dagster",
]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Developers",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Topic :: Database",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
]
dependencies = [
    "pydantic>=2.0.0",
    "pyyaml>=6.0.0",
    "sqlalchemy>=2.0.0",
    "psycopg2-binary>=2.9.0",
    "prometheus_client>=0.19.0",
    "rich>=13.0.0",
]

[project.urls]
Homepage = "https://baselinr.io"
Website = "https://baselinr.io"
Documentation = "https://github.com/baselinrhq/baselinr/tree/main/docs"
Repository = "https://github.com/baselinrhq/baselinr"
Issues = "https://github.com/baselinrhq/baselinr/issues"

[project.optional-dependencies]
snowflake = [
    "snowflake-sqlalchemy>=1.5.0",
    "snowflake-connector-python>=3.0.0",
]
dagster = [
    "dagster>=1.5.0",
    "dagster-webserver>=1.5.0",
    "dagster-postgres>=0.21.0",
]
dev = [
    "pytest>=7.0.0",
    "pytest-cov>=4.0.0",
    "black>=23.0.0",
    "flake8>=6.0.0",
    "mypy>=1.0.0",
    "isort>=5.12.0",
]
all = [
    "snowflake-sqlalchemy>=1.5.0",
    "snowflake-connector-python>=3.0.0",
    "dagster>=1.5.0",
    "dagster-webserver>=1.5.0",
    "dagster-postgres>=0.21.0",
]

[project.scripts]
baselinr = "baselinr.cli:main"

[tool.black]
line-length = 100
target-version = ['py310']
include = '\.pyi?$'

[tool.isort]
profile = "black"
line_length = 100

[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
ignore_missing_imports = true

[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]

