sentinel / pyproject.toml
jeuko's picture
Sync from GitHub (main)
c403899 verified
[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools>=61.0"]
[dependency-groups]
dev = ["sentinel[dev]"]
test = ["sentinel[test]"]
[project]
authors = [
{email = "j.euko@instadeep.com", name = "Joao Paulo Euko"},
{email = "t.d.barrett91@gmail.com", name = "Tom Barrett"},
{email = "t.makkink@instadeep.com", name = "Thomas Makkink"}
]
dependencies = [
"fastapi",
"fpdf>=1.7.2",
"hydra-core>=1.3.2",
"langchain",
"langchain-community",
"langchain-google-genai",
"langchain-ollama",
"langchain-openai",
"markdown2>=2.5.3",
"matplotlib>=3.10.3",
"openpyxl>=3.1.0",
"python-dotenv",
"pyyaml",
"reportlab>=4.0.0"
]
description = "LLM-based Cancer Risk Assessment Assistant"
name = "sentinel"
readme = "README.md"
requires-python = ">=3.12"
version = "0.1.0"
[project.optional-dependencies]
dev = [
"ipywidgets",
"jupyterlab",
"plotly",
"pre-commit",
"pyright",
"pyright>=1.1.405",
"seaborn",
"uvicorn"
]
test = [
"pytest-cov>=4.0.0",
"pytest-mock>=3.15.1",
"pytest>=7.0.0"
]
[tool.ruff]
line-length = 88
target-version = "py312"
[tool.ruff.format]
indent-style = "space"
line-ending = "auto"
quote-style = "double"
skip-magic-trailing-comma = false
[tool.ruff.lint]
ignore = [
"ARG001", # unused function argument (test fixtures)
"ARG002", # unused method argument (pydantic callbacks)
"B008", # do not perform function calls in argument defaults
"B904", # raise from err (requires manual review)
"C408", # unnecessary dict call (plotly API requires dict())
"C901", # too complex
"E501", # line too long, handled by formatter
"F841", # unused variable (sometimes needed for future use)
"RUF002", # ambiguous hyphen (requires manual review)
"RUF012", # ClassVar annotations (requires manual review)
"SIM102", # nested if statements (sometimes clearer)
"SIM108", # ternary operator (sometimes if-else is clearer)
"TCH" # type-checking rules (often can't be auto-fixed)
]
select = [
"ARG", # flake8-unused-arguments
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"E", # pycodestyle errors
"F", # pyflakes
"I", # isort
"Q", # flake8-quotes
"RUF", # ruff-specific rules
"SIM", # flake8-simplify
"TCH", # flake8-type-checking
"UP", # pyupgrade
"W" # pycodestyle warnings
]
[tool.ruff.lint.isort]
known-first-party = ["sentinel"]
[tool.ruff.lint.pydocstyle]
# Use Google-style docstrings.
convention = "google"
[tool.ruff.lint.pylint]
allow-magic-value-types = ["int", "str"]
[tool.setuptools.packages.find]
include = ["sentinel*"]
where = ["src"]
[tool.uv]
default-groups = ["dev", "test"] # By default, install all dependencies.