[build-system] requires = ["setuptools >= 77.0.3"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["hairpin2*"] [project] name = "hairpin2" version = "3.0.2" description = "CLI for running read-aware artefactual variant flagging algorithms over VCFs" authors = [ {name = "Alex Byrne"} ] license = "MIT" readme = "README.md" dependencies = [ "pysam>=0.22, ==0.*", "pydantic>=2.11.7, ==2.*", "click>=8.2.1, ==8.*", "click-option-group>=0.5.7, ==0.*" ] requires-python = ">= 3.12" [project.optional-dependencies] dev = [ "pytest==9.*", "pytest-cov==7.*", "ruff" ] docs = [ "sphinx", "sphinx-autobuild", "sphinx_rtd_theme", "myst-parser" ] [project.scripts] hairpin2 = "hairpin2.infrastructure.cli:hairpin2_cli" hp2-utils = "hairpin2.hp2_utils.cli:hp2_utils" [tool.ruff] line-length = 100 extend-exclude = ["scratch-api.py"] [tool.ruff.lint] select = [ # Default rules "E4", "E7", "E9", "F", # Additional rules "I", # Import order "D", # Docstrings "D401", # First line should be in imperative mood "D213", # Multi-line docstring summary should start at the second line "C", # Complexity ] ignore = [ "D100", # Missing docstring in public module "D101", # Missing docstring in public class "D102", # Missing docstring in public method "D103", # Missing docstring in public function "D105", # Missing docstring in magic method "D107", # Missing docstring in __init__ "D200", # One-line docstring should fit on one line with quotes "D417", # Missing argument descriptions in the docstring ] [tool.ruff.lint.pydocstyle] convention = "pep257" [tool.ruff.lint.per-file-ignores] "tests/*" = ["D"] "**/*/__init__.py" = ["D"] [tool.pyright] # basedpyright recommended failOnWarnings = false ignore = ["scratch-api.py", 'examples/*'] reportAny = false reportExplicitAny = false reportUnnecessaryIsInstance = false reportUnnecessaryComparison = false reportUnknownLambdaType = false