[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "TSUMUGI"
version = "1.0.0"
description = "TSUMUGI: Phenotype-Driven Gene Network Identifier"
authors = ["Akihiro Kuno <akuno@md.tsukuba.ac.jp>"]
readme = "README.md"
homepage = "https://github.com/akikuno/TSUMUGI"
license = "MIT"
packages = [{ include = "TSUMUGI", from = "src" }]
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Topic :: Scientific/Engineering :: Bio-Informatics",
]

[tool.poetry.scripts]
tsumugi = "TSUMUGI.main:main"

[tool.poetry.dependencies]
python = ">=3.10"
numpy = ">=1.21.0"
tqdm = ">=4.64.0"
networkx = ">=3.3"

[tool.ruff]
fix = true

line-length = 119

[tool.ruff.lint]
select = [
    "E",  # pycodestyle errors
    "W",  # pycodestyle warnings
    "F",  # pyflakes
    "I",  # isort
    "B",  # flake8-bugbear
    "C4", # flake8-comprehensions
    "UP", # pyupgrade
]
ignore = [
    "E402", # module level import not at top of file
    "E501", # line too long, handled by black
    "B008", # do not perform function calls in argument defaults
    "C901", # too complex
    "W191", # indentation contains tabs
    "B904", # ignore errors for raise ... from ... not being used
]

[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]

[tool.ruff.lint.isort]
combine-as-imports = true
known-first-party = ["musubi_restapi"]
section-order = [
    "future",
    "standard-library",
    "third-party",
    "first-party",
    "local-folder",
]
split-on-trailing-comma = true

[tool.ruff.format]
quote-style = "double"

[tool.mypy]
ignore_missing_imports = true
check_untyped_defs = true
