[tool.mypy] strict = true implicit_reexport = true [tool.ruff] exclude = ["_", ".git"] line-length = 80 indent-width = 4 target-version = "py310" unsafe-fixes = true [tool.ruff.format] preview = true quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.ruff.lint] preview = true select = ["ALL"] fixable = ["ALL"] ignore = [ "ANN401", # any-type, we allow typing.Any, although we shouldn't "CPY001", # missing-copyright-notice "D203", # no-blank-line-before-class "D212", # multi-line-summary-first-line "DOC201", # docstring-missing-returns "E203", # whitespace-before-punctuation, doesn't work with ruff format "EXE001", # shebang-not-executable, remove this when run.sh is working "INP001", # implicit-namespace-package "N999", # invalid-module-name "PLR0402", # manual-from-import, prefer imports like Haskell "PT009", # pytest-unittest-assertion, conflicts with assert (S101) "S310", # suspicious-url-open-usage, doesn't work in 0.1.5 "S404", # suspicious-subprocess-import, not stable "S603", # subprocess-without-shell-equals-true, false positives "S607", # start-process-with-partial-path "TD002", # missing-todo-author, just don't allow todos "TD003", # missing-todo-link, just don't allow todos ] [tool.ruff.lint.isort] no-sections = true force-single-line = true [tool.ruff.lint.pydocstyle] convention = "pep257"