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

[project]
name = "immunopipe"
description = "A pipeline for integrative analysis for scRNA-seq and scTCR-/scBCR-seq data"
authors = [{name = "pwwang", email = "pwwang@pwwang.com"}]
dynamic = ["version"]
license = {text = "GNU General Public License v3.0"}
readme = "README.md"
requires-python = ">=3.9"
dependencies = [
    # pipen-report and pipen-board are required by biopipen
    "biopipen>=1.3,<2",
    # "biopipen @ ./biopipen",
]

[tool.hatch.version]
path = "immunopipe/version.py"

[project.urls]
Homepage = "https://github.com/pwwang/immunopipe"
Repository = "https://github.com/pwwang/immunopipe"

[project.optional-dependencies]
diagram = ["pipen-diagram>=1.1,<2"]
runinfo = ["pipen-runinfo>=1.1,<2"]
dry = ["pipen-dry>=1.1,<2"]
cli-gbatch = ["pipen-cli-gbatch>=1.1.6,<2"]

[dependency-groups]
docs = [
    "mike>=2.2.0",
    "mkdocs>=1.6.1",
    "mkdocs-rtd>=0.0.15",
    "pipen-cli-ref>=1.0,<2",
    "pymdown-extensions>=10.21.2",
]
dev = [
    "pytest>=8",
    "pytest-forked>=1",
    "pytest-asyncio>=1.1.0",
    "pytest-order>=1.3.0",
    "pytest-cov>=7.0.0",
    "pipen-dry>=1.1,<2",
]

[tool.pytest.ini_options]
addopts = "-vv -p no:benchmark -W error::UserWarning --cov=immunopipe --cov-config=.coveragerc --cov-report xml:.coverage.xml --cov-report term-missing"
console_output_style = "progress"
junit_family = "xunit1"
filterwarnings = [
   "ignore:.+may lead to deadlocks in the child:DeprecationWarning",
]

[project.scripts]
immunopipe = "immunopipe.router:run"

[tool.black]
line-length = 88
target-version = ['py39', 'py310', 'py311', 'py312']
include = '\.pyi?$'

[tool.pyright]
ignore = ["tests"]
reportFunctionMemberAccess = false
