mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-07 21:25:08 +00:00
144 lines
4.1 KiB
TOML
144 lines
4.1 KiB
TOML
[build-system]
|
|
requires = ["maturin>=1.0,<2.0"]
|
|
build-backend = "maturin"
|
|
|
|
[project]
|
|
name = "ruff"
|
|
version = "0.12.2"
|
|
description = "An extremely fast Python linter and code formatter, written in Rust."
|
|
authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }]
|
|
readme = "README.md"
|
|
requires-python = ">=3.7"
|
|
license = { file = "LICENSE" }
|
|
keywords = [
|
|
"automation",
|
|
"flake8",
|
|
"pycodestyle",
|
|
"pyflakes",
|
|
"pylint",
|
|
"clippy",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Rust",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Software Development :: Quality Assurance",
|
|
]
|
|
|
|
[project.urls]
|
|
Repository = "https://github.com/astral-sh/ruff"
|
|
Documentation = "https://docs.astral.sh/ruff/"
|
|
Changelog = "https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md"
|
|
|
|
[tool.maturin]
|
|
bindings = "bin"
|
|
manifest-path = "crates/ruff/Cargo.toml"
|
|
module-name = "ruff"
|
|
python-source = "python"
|
|
strip = true
|
|
exclude = [
|
|
"crates/ruff_linter/resources/test/fixtures/**/*",
|
|
"crates/ruff_linter/src/rules/*/snapshots/**/*"
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py38"
|
|
extend-exclude = [
|
|
"crates/ty_vendored/vendor/",
|
|
"crates/ruff/resources/",
|
|
"crates/ruff_linter/resources/",
|
|
"crates/ruff_python_formatter/resources/",
|
|
"crates/ruff_python_parser/resources/",
|
|
"crates/ruff_python_semantic/resources/"
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", # pycodestyle (error)
|
|
"F", # pyflakes
|
|
"B", # bugbear
|
|
"B9",
|
|
"C4", # flake8-comprehensions
|
|
"SIM", # flake8-simplify
|
|
"I", # isort
|
|
"UP", # pyupgrade
|
|
"PIE", # flake8-pie
|
|
"PGH", # pygrep-hooks
|
|
"PYI", # flake8-pyi
|
|
"RUF",
|
|
]
|
|
|
|
ignore = [
|
|
# only relevant if you run a script with `python -0`,
|
|
# which seems unlikely for any of the scripts in this repo
|
|
"B011",
|
|
# Leave it to the formatter to split long lines and
|
|
# the judgement of all of us.
|
|
"E501"
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
required-imports = ["from __future__ import annotations"]
|
|
|
|
[tool.ruff.per-file-target-version]
|
|
"crates/ty_python_semantic/mdtest.py" = "py310"
|
|
"crates/ty_vendored/ty_extensions/ty_extensions.pyi" = "py312"
|
|
|
|
[tool.black]
|
|
force-exclude = '''
|
|
/(
|
|
| crates/ty_vendored/vendor
|
|
| crates/ruff_linter/resources
|
|
| crates/ruff_python_formatter/resources
|
|
| crates/ruff_python_parser/resources
|
|
)/
|
|
'''
|
|
|
|
[tool.rooster]
|
|
major_labels = [] # Ruff never uses the major version number
|
|
minor_labels = ["breaking"] # Bump the minor version on breaking changes
|
|
|
|
changelog_ignore_labels = ["internal", "ci", "testing", "ty"]
|
|
|
|
changelog_sections.breaking = "Breaking changes"
|
|
changelog_sections.preview = "Preview features"
|
|
changelog_sections.bug = "Bug fixes"
|
|
changelog_sections.rule = "Rule changes"
|
|
changelog_sections.diagnostics = "Rule changes"
|
|
changelog_sections.docstring = "Rule changes"
|
|
changelog_sections.fixes = "Rule changes"
|
|
changelog_sections.isort = "Rule changes"
|
|
changelog_sections.performance = "Performance"
|
|
changelog_sections.formatter = "Formatter"
|
|
changelog_sections.server = "Server"
|
|
changelog_sections.cli = "CLI"
|
|
changelog_sections.configuration = "Configuration"
|
|
changelog_sections.documentation = "Documentation"
|
|
changelog_sections.__unknown__ = "Other changes"
|
|
|
|
# We exclude contributors from the CHANGELOG file
|
|
# Generate separately with `rooster contributors` for the GitHub release page
|
|
changelog_contributors = false
|
|
|
|
version_files = [
|
|
"README.md",
|
|
"docs/integrations.md",
|
|
"docs/tutorial.md",
|
|
"crates/ruff/Cargo.toml",
|
|
"crates/ruff_linter/Cargo.toml",
|
|
"crates/ruff_wasm/Cargo.toml",
|
|
"scripts/benchmarks/pyproject.toml",
|
|
]
|