Skip to content

Instantly share code, notes, and snippets.

@rubenhortas
Last active August 18, 2026 16:09
Show Gist options
  • Select an option

  • Save rubenhortas/57febeace65b746bda535f5f4c5f087a to your computer and use it in GitHub Desktop.

Select an option

Save rubenhortas/57febeace65b746bda535f5f4c5f087a to your computer and use it in GitHub Desktop.
Ruff and basedpyright rules for python projects
# File: pyproject.toml
#
# Description: Project-specific configuration shared with your team.
# Contains settings for both Ruff (linter/formatter) and Basedpyright (type checker).
#
# Location: Place in the ROOT directory of your Python project.
#
[tool.ruff]
line-length = 120
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # Pyflakes
"I", # isort
"UP", # pyupgrade
"ANN", # flake8-annotations
"B", # flake8-bugbear
"S", # flake8-bandit (security)
"SIM", # flake8-simplify
"RUF", # Ruff-specific rules
"N", # PEP8 naming
"W", # Pycodestyle warnings (style issues)
"FLY", # Flynt – f-string conversion suggestions
"SLOT", # Flake8-slots – suggests use of __slots__ where appropriate
"PERF", # Perflint
]
extend-select = [
"TID", # Flake8-tidy-imports
"BLE", # Flake8-blind-except
"TRY", # Tryceratops
"PIE", # Flake8-pie
"PTH", # flake8-use-pathlib
"C4", # flake8-comprehensions
"INP", # Flake8-no-pep420
"TC", # Flake8-type-checking
"ARG", # Flake8-unused-arguments
"LOG", # flake8-logging
"G", # Flake8-logging-format
"TD", # Flake8-todos
"FIX", # Flake8-fixme
]
ignore = [
"E501", # Line too long (handled by formatter)
"BLE001", # Blind exception
"COM812", # Formatter conflict prevention
"ISC001", # Formatter conflict prevention
]
[tool.ruff.lint.isort]
combine-as-imports = true
force-single-line = false
detect-same-package = true
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
[tool.basedpyright]
typeCheckingMode = "basic"
[tool.basedpyright.diagnosticSeverityOverrides]
reportMissingTypeStubs = "none"
reportMissingModuleSource = "none"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment