[project]
name = "denofo"
dynamic = ["version"]
description = "A toolkit to easily access, convert and compare the de novo gene annotation format (denofo)."
readme = "README.md"
authors = [
    { name = "Elias Dohmen", email = "e.dohmen@uni-muenster.de" }
]
requires-python = ">=3.11,<3.13"  # typing.Self only available from 3.11 on; ete3 uses cgi which is dicontinued from 3.13 on (ete4 not on PyPI)
dependencies = [
    "argparse>=1.4.0",
    "biopython>=1.85",
    "ete3>=3.1.3",
    "pathlib>=1.0.1",
    "pydantic>=2.10.5",
    "pyqt6>=6.8.1",
    "six>=1.17.0",
    "windows-curses>=2.4.1 ; sys_platform == 'windows'",
]

[project.scripts]
denofo-questionnaire-cli = "denofo.questionnaire.questionnaire_cli:main"
denofo-comparator-cli = "denofo.comparator.comparator_cli:main"
denofo-converter-cli = "denofo.converter.converter_cli:main"
update-ncbi-taxdb = "denofo.utils.ncbiTaxDBcheck:update_NCBI_taxDB"

[project.gui-scripts]
denofo-questionnaire = "denofo.questionnaire.questionnaire_gui:main"
denofo-comparator = "denofo.comparator.comparator_gui:main"
denofo-converter = "denofo.converter.converter_gui:main"
denofo-questionnaire-gui = "denofo.questionnaire.questionnaire_gui:main"
denofo-comparator-gui = "denofo.comparator.comparator_gui:main"
denofo-converter-gui = "denofo.converter.converter_gui:main"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
path = "denofo/__init__.py"

[dependency-groups]
dev = [
    "pytest>=8.3.4",
    "pytest-cov>=6.0.0",
    "pytest-qt>=4.4.0",
    "pytest-xvfb>=3.0.0",
]
docs = [
    "sphinx>=8.1.3",
    "sphinx-rtd-theme>=3.0.2",
]
lint = [
    "ruff>=0.9.2",
]

[tool.pytest.ini_options]
filterwarnings = [
    "error",
    "ignore:'cgi' is deprecated:DeprecationWarning",
    "ignore:invalid escape sequence:SyntaxWarning"  # ete3 contains several invalid escape sequences
]
