[project]
name = "cucu"
version = "1.0.0"
description = "Easy BDD web testing"
readme = "README.md"
license = { text = "The Clear BSD License" }
keywords = ["cucumber", "selenium", "behave"]
homepage = "https://github.com/dominodatalab/cucu"
repository = "https://github.com/dominodatalab/cucu"
authors = [{ name = "Domino Data Lab", email = "open-source@dominodatalab.com" }]
classifiers = [
    "Development Status :: 4 - Beta",
    "Environment :: Console",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: BSD License",
    "Operating System :: OS Independent",
    "Natural Language :: English",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3 :: Only",
    "Topic :: Software Development :: Testing :: BDD",
]
include = [
    { path = "CHANGELOG.md", format = "sdist" },
    { path = "LICENSE", format = "sdist" },
]
requires-python = ">=3.9"
dependencies = [
    "beautifulsoup4~=4.12.2",
    "behave~=1.2.6",
    "chromedriver-autoinstaller~=0.6.2",
    "click~=8.1.7",
    "coverage[toml]~=7.4.3",
    "geckodriver-autoinstaller~=0.1.0",
    "humanize~=4.8.0",
    "importlib-metadata~=8.0.0",
    "ipdb~=0.13.13",
    "jellyfish~=1.0.1",
    "jinja2~=3.1.3",
    "lsprotocol~=2023.0.1",
    "mpire~=2.10.2",
    "psutil~=6.0.0",
    "pygls~=1.3.1",
    "pyyaml~=6.0.1",
    "requests~=2.31.0",
    "selenium~=4.15",
    "tabulate~=0.9.0",
    "tenacity~=9.0.0",
]

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

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.uv]
dev-dependencies = [
    "pre-commit>=3.8.0",
    "pytest~=8.0.2",
    "ruff>=0.6.4",
]

[tool.ruff]
lint.select = ["E", "F", "I", "Q0"]  # default options + isort
lint.ignore = ["E501", "F403"]  # line_length, import *
exclude = [".env", ".venv", "venv", "__init__.py"]
line-length = 79

[tool.ruff.lint.flake8-quotes]
docstring-quotes = "double"

[tool.ruff.lint.isort]
detect-same-package = true

[tool.pytest]
junit_family = "xunit2"

[tool.coverage.run]
branch = true
concurrency = ["multiprocessing"]
omit = ["results"]
parallel = true
relative_files = true
source = ["src"]

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