[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
name = "itaxotools-hapsolutely"
dynamic = ["version"]
description = "Reconstruct haplotypes and produce genealogy graphs from population data"
readme = "README.md"
requires-python = ">=3.10.2, <4"
keywords = []
authors = [
    { name = "Stefanos Patmanidis", email = "stefanpatman91@gmail.com" },
]
classifiers = [
    "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
    "Development Status :: 5 - Production/Stable",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: Implementation :: CPython",
]
dependencies = [
    "itaxotools-common",
    "itaxotools-convphase",
    "itaxotools-popart-networks",
    "itaxotools-taxi2",
    "itaxotools-fitchi",
    "itaxotools-haplostats",
    "itaxotools-haplodemo",
    "itaxotools-taxi-gui",
    "itaxotools-convphase-gui",
    "pyside6",
    "biopython",
    "pyyaml",
]

[project.optional-dependencies]
dev = [
    "setuptools-scm",
    "pre-commit",
    "ruff",
    "pytest",
    "pytest-qt",
    "pytest-xvfb",
    "pyinstaller",
]

[project.gui-scripts]
hapsolutely = "itaxotools.hapsolutely:run"

[project.urls]
Homepage = "https://itaxotools.org/"
Source = "https://github.com/iTaxoTools/Hapsolutely"

[tool.setuptools.packages.find]
namespaces = true
where = ["src"]

[tool.setuptools_scm]

[tool.ruff]
ignore-init-module-imports = true
extend-select = ["I"]

[tool.ruff.lint.isort]
known-first-party = ["itaxotools"]
section-order = [
    "future",
    "pyqt",
    "standard-library",
    "third-party",
    "first-party",
    "local-folder",
]

[tool.ruff.lint.isort.sections]
pyqt = ["PySide6"]
