levenshtein / pyproject.toml
Natooz's picture
Upload 5 files
814113b verified
[tool.ruff]
target-version = "py313"
[tool.ruff.lint]
extend-select = [
"ARG",
"A",
"ANN",
"B",
"BLE",
"C4",
"COM",
"D",
"E",
"EM",
"EXE",
"F",
"FA",
"FBT",
"G",
"I",
"ICN",
"INP",
"INT",
"ISC",
"N",
"NPY",
"PERF",
"PGH",
"PTH",
"PIE",
# "PL",
"PT",
"Q",
"RET",
"RSE",
"RUF",
"S",
# "SLF",
"SIM",
"T",
"TCH",
"TID",
"UP",
"W",
]
# Each rule exclusion should be explained here.
# By default, we think it is better to select groups of rules (above), and exclude
# specific problematic rules, instead of selecting specific rules. By doing so, in case
# the ruff rules groups change, this requires us to check and handle the new rules or
# changes, making sure we stay up to date and keep the best practices.
# ANN003:
# Would mostly apply to args/kwargs that are passed to methods from dependencies, for
# which the signature can change depending on the version. This would either be too
# difficult to comply and/or would add a lot of noqa exceptions. ANN002 is used as it
# adds very few "noqa" exceptions, but ANN003 would add too much complexity.
# ANN101 and ANN102:
# Yields errors for `self` in methods from classes, which is unecessary.
# The existence of these rules is currently questioned, they are likely to be removed.
# https://github.com/astral-sh/ruff/issues/4396
# B905
# The `strict` keyword argument for the `zip` built-in method appeared with Python
# 3.10. As we support previous versions, we cannot comply (yet) with this rule. The
# exclusion should be removed when dropping support for Python 3.9.
# D107
# We document classes at the class level (D101). This documentation should cover the
# way classes are initialized. So we do not document `__init__` methods.
# D203
# "one-blank-line-before-class", incompatible with D211 (blank-line-before-class).
# We follow PEP 257 and other conventions by preferring D211 over D203.
# D212
# "multi-line-summary-first-line", incompatible with D213
# (multi-line-summary-second-line).
# We follow PEP 257, which recommend to set put the summary line on the second line
# after the blank line of the opening quotes.
# FBT001 and FBT002
# Refactoring all the methods to make boolean arguments keyword only would add
# complexity and could break code of users. It's ok to have booleans as positional
# arguments with default values. For code redability though, we enable FB003.
# COM812:
# Yields errors for one-line portions without comma. Trailing commas are automatically
# set with ruff format anyway. This exclusion could be removed when this behavior is
# fixed in ruff.
# UP038
# Recommends to | type union with `isinstance`, which is only supported since Python
# 3.10. The exclusion should be removed when dropping support for Python 3.9.
# (ISC001)
# May cause conflicts when used with the ruff formatter. They recommend to disable it.
# We leave it enabled but keep this in mind.
ignore = [
"ANN003",
"ANN101",
"ANN102",
"B905",
"COM812",
"D107",
"D203",
"D212",
"FBT001",
"FBT002",
"UP038",
]