content: [tool.poetry]
  name = "odp"
  version = "0.3.1"
  description = "odp"
  authors = ["odp Authors <fdexter@metalytics.dev>"]
  repository = "https://github.com/open-data-products/odp"
  documentation = "https://open-data-products.github.io/odp/"
  readme = "README.md"
  packages = [
    {include = "odp"}
  ]
  
  [tool.poetry.dependencies]
  python = ">=3.8,<4.0"
  sqlglot = "^23.0.5"
  click = "^8.1.7"
  snowflake-connector-python = "^3.7.1"
  python-dotenv = "^1.0.1"
  pydantic = "^2.7.1"
  
  [tool.poetry.scripts]
  odp = "odp.cli.main:cli"
  
  [tool.poetry.group.dev.dependencies]
  pytest = "^7.2.0"
  pytest-cov = "^4.0.0"
  deptry = "^0.12.0"
  mypy = "^1.5.1"
  pre-commit = "^3.4.0"
  tox = "^4.11.1"
  
  [tool.poetry.group.docs.dependencies]
  mkdocs = "^1.4.2"
  mkdocs-material = "^9.2.7"
  mkdocstrings = {extras = ["python"], version = "^0.23.0"}
  
  [build-system]
  requires = ["poetry-core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.mypy]
  files = ["odp"]
  disallow_untyped_defs = "True"
  disallow_any_unimported = "True"
  no_implicit_optional = "True"
  check_untyped_defs = "True"
  warn_return_any = "True"
  warn_unused_ignores = "True"
  show_error_codes = "True"
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  
  [tool.ruff]
  target-version = "py37"
  line-length = 120
  fix = true
  select = [
      # flake8-2020
      "YTT",
      # flake8-bandit
      "S",
      # flake8-bugbear
      "B",
      # flake8-builtins
      "A",
      # flake8-comprehensions
      "C4",
      # flake8-debugger
      "T10",
      # flake8-simplify
      "SIM",
      # isort
      "I",
      # mccabe
      "C90",
      # pycodestyle
      "E", "W",
      # pyflakes
      "F",
      # pyupgrade
      "UP",
      # ruff
      "RUF",
      # tryceratops
      "TRY",
  ]
  ignore = [
      # LineTooLong
      "E501",
      # DoNotAssignLambda
      "E731",
  ]
  
  [tool.ruff.format]
  preview = true
  
  [tool.coverage.report]
  skip_empty = true
  
  [tool.coverage.run]
  branch = true
  source = ["odp"]
  
  
  [tool.ruff.per-file-ignores]
  "tests/*" = ["S101"]
  "odp/cli/main.py" = ["TRY003"]
  "odp/core/types.py" = ["TRY003"]
  
  [tool.ruff.mccabe]
  max-complexity = 12
  
  
  [tool.deptry]
  exclude = ["examples", "venv", ".venv"]
  