# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

[project]
name = "bdd-python"
version = "0.1.0"
description = "BDD tests for python"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "apache-iggy",
    "pyrefly>=1.1.1",
    "pytest>=9.1.1",
    "pytest-asyncio>=1.4.0",
    "pytest-bdd>=6.0.0",
    "pytest-cov>=4.0.0",
    "ruff>=0.15.19",
]

[tool.uv.sources]
apache-iggy = { path = "../../foreign/python" }

[tool.uv]
exclude-newer = "7 days"

[tool.ruff.lint]
select = [
    "S", # detects usage of commands like `exec()` and `eval()`. Also usage of `pickle`, `marshal`, etc.
    "B", # flake8-bugbear rule family for likely bugs and unsafe exception patterns
    "E", # pycodestyle errors: basic PEP 8 style violations
    "F", # Pyflakes: undefined names, unused imports, and other logic issues
    "W", # pycodestyle warnings: whitespace and other style warnings
    "I", # isort: import sorting and grouping rules
    "T10", # flake8-debugger: debugger statements like pdb or breakpoint
    "C4", # flake8-comprehensions: unnecessary or suboptimal comprehensions
    "ARG", # flake8-unused-arguments: unused function arguments
    "SIM", # flake8-simplify: simplify redundant logic and expressions
    "UP", # pyupgrade: use newer, simpler Python syntax
]

[tool.ruff.lint.per-file-ignores]
"tests/*.py" = ["S101"]

[tool.pyrefly]
project-includes = [
    "**/*.py*",
]
