Path to this page:
./
devel/py-ruff,
Extremely fast Python linter, written in Rust
Branch: CURRENT,
Version: 0.8.2,
Package name: py312-ruff-0.8.2,
Maintainer: pkgsrc-usersRuff is an extremely fast Python linter, written in Rust.
Ruff aims to be orders of magnitude faster than alternative tools
while integrating more functionality behind a single, common
interface.
Ruff can be used to replace Flake8 (plus dozens of plugins), isort,
pydocstyle, yesqa, eradicate, pyupgrade, and autoflake, all while
executing tens or hundreds of times faster than any individual
tool.
Master sites:
Filesize: 3270.527 KB
Version history: (Expand)
- (2024-12-11) Updated to version: py312-ruff-0.8.2
- (2024-11-29) Updated to version: py312-ruff-0.8.1
- (2024-11-24) Updated to version: py312-ruff-0.8.0
- (2024-11-18) Updated to version: py312-ruff-0.7.4nb1
- (2024-11-17) Updated to version: py312-ruff-0.7.4
- (2024-11-11) Updated to version: py312-ruff-0.7.3
CVS history: (Expand)
2024-12-11 11:41:57 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
py-ruff: update to 0.8.2.
Preview features
[airflow] Avoid deprecated values (AIR302) (#14582)
[airflow] Extend removed names for AIR302 (#14734)
[ruff] Extend unnecessary-regular-expression to non-literal strings (RUF055) \
(#14679)
[ruff] Implement used-dummy-variable (RUF052) (#14611)
[ruff] Implement unnecessary-cast-to-int (RUF046) (#14697)
Rule changes
[airflow] Check AIR001 from builtin or providers operators module (#14631)
[flake8-pytest-style] Remove @ in pytest.mark.parametrize rule messages (#14770)
[pandas-vet] Skip rules if the panda module hasn't been seen (#14671)
[pylint] Fix false negatives for ascii and sorted in len-as-condition \
(PLC1802) (#14692)
[refurb] Guard hashlib imports and mark hashlib-digest-hex fix as safe \
(FURB181) (#14694)
Configuration
[flake8-import-conventions] Improve syntax check for aliases supplied in \
configuration for unconventional-import-alias (ICN001) (#14745)
Bug fixes
Revert: [pyflakes] Avoid false positives in @no_type_check contexts (F821, \
F722) (#14615) (#14726)
[pep8-naming] Avoid false positive for class Bar(type(foo)) (N804) (#14683)
[pycodestyle] Handle f-strings properly for invalid-escape-sequence (W605) \
(#14748)
[pylint] Ignore @overload in PLR0904 (#14730)
[refurb] Handle non-finite decimals in verbose-decimal-constructor (FURB157) \
(#14596)
[ruff] Avoid emitting assignment-in-assert when all references to the \
assigned variable are themselves inside asserts (RUF018) (#14661)
Documentation
Improve docs for flake8-use-pathlib rules (#14741)
Improve error messages and docs for flake8-comprehensions rules (#14729)
[flake8-type-checking] Expands TC006 docs to better explain itself (#14749)
|
2024-11-29 09:08:44 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-ruff: updated to 0.8.1
0.8.1
Preview features
Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions
Formatter: Consider quotes inside format-specs when choosing the quotes for an \
f-string
Formatter: Do not consider f-strings with escaped newlines as multiline
Formatter: Fix f-string formatting in assignment statement
Formatter: Fix unnecessary space around power operator (**) in overlong f-string \
expressions
[airflow] Avoid implicit schedule argument to DAG and @dag (AIR301)
[flake8-builtins] Exempt private built-in modules (A005)
[flake8-pytest-style] Fix pytest.mark.parametrize rules to check calls instead \
of decorators
[flake8-type-checking] Implement runtime-cast-value (TC006)
[flake8-type-checking] Implement unquoted-type-alias (TC007) and \
quoted-type-alias (TC008)
[flake8-use-pathlib] Recommend Path.iterdir() over os.listdir() (PTH208)
[pylint] Extend invalid-envvar-default to detect os.environ.get (PLW1508)
[pylint] Implement len-test (PLC1802)
[refurb] Fix bug where methods defined using lambdas were flagged by FURB118
[ruff] Auto-add r prefix when string has no backslashes for unraw-re-pattern (RUF039)
[ruff] Implement invalid-assert-message-literal-argument (RUF040)
[ruff] Implement unnecessary-nested-literal (RUF041)
[ruff] Implement unnecessary-regular-expression (RUF055)
Rule changes
Ignore more rules for stub files
[pep8-naming] Eliminate false positives for single-letter names (N811, N814)
[pyflakes] Avoid false positives in @no_type_check contexts (F821, F722)
[ruff] Detect redirected-noqa in file-level comments (RUF101)
[ruff] Mark fixes for unsorted-dunder-all and unsorted-dunder-slots as unsafe \
when there are complex comments in the sequence (RUF022, RUF023)
Bug fixes
Avoid fixing code to None | None for redundant-none-literal (PYI061) and \
never-union (RUF020)
[flake8-bugbear] Fix mutable-contextvar-default to resolve annotated function \
calls properly (B039)
[flake8-pyi, ruff] Fix traversal of nested literals and unions (PYI016, PYI051, \
PYI055, PYI062, RUF041)
[flake8-pyi] Avoid rewriting invalid type expressions in unnecessary-type-union \
(PYI055)
[flake8-type-checking] Avoid syntax errors and type checking problem for quoted \
annotations autofix (TC003, TC006)
[pylint] Do not wrap function calls in parentheses in the fix for \
unnecessary-dunder-call (PLC2801)
[ruff] Handle attrs's auto_attribs correctly (RUF009)
|
2024-11-24 11:52:40 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
py-ruff: update to 0.8.0.
Breaking changes
See also, the "Remapped rules" section which may result in disabled rules.
Default to Python 3.9
Ruff now defaults to Python 3.9 instead of 3.8 if no explicit Python version \
is configured using ruff.target-version or project.requires-python (#13896)
Changed location of pydoclint diagnostics
pydoclint diagnostics now point to the first-line of the problematic \
docstring. Previously, this was not the case.
If you've opted into these preview rules but have them suppressed using
noqa comments in
some places, this change may mean that you need to move the noqa suppression
comments. Most users should be unaffected by this change.
Use XDG (i.e. ~/.local/bin) instead of the Cargo home directory in the \
standalone installer
Previously, Ruff's installer used $CARGO_HOME or ~/.cargo/bin for its target \
install directory. Now, Ruff will be installed into $XDG_BIN_HOME, \
$XDG_DATA_HOME/../bin, or ~/.local/bin (in that order).
This change is only relevant to users of the standalone Ruff installer \
(using the shell or PowerShell script). If you installed Ruff using uv or pip, \
you should be unaffected.
Changes to the line width calculation
Ruff now uses a new version of the unicode-width Rust crate to calculate the \
line width. In very rare cases, this may lead to lines containing Unicode \
characters being reformatted, or being considered too long when they were not \
before (E501).
Removed Rules
The following deprecated rules have been removed:
missing-type-self (ANN101)
missing-type-cls (ANN102)
syntax-error (E999)
pytest-missing-fixture-name-underscore (PT004)
pytest-incorrect-fixture-name-underscore (PT005)
unpacked-list-comprehension (UP027)
Remapped rules
The following rules have been remapped to new rule codes:
flake8-type-checking: TCH to TC
Stabilization
The following rules have been stabilized and are no longer in preview:
builtin-import-shadowing (A004)
mutable-contextvar-default (B039)
fast-api-redundant-response-model (FAST001)
fast-api-non-annotated-dependency (FAST002)
dict-index-missing-items (PLC0206)
pep484-style-positional-only-parameter (PYI063)
redundant-final-literal (PYI064)
bad-version-info-order (PYI066)
parenthesize-chained-operators (RUF021)
unsorted-dunder-all (RUF022)
unsorted-dunder-slots (RUF023)
assert-with-print-message (RUF030)
unnecessary-default-type-args (UP043)
The following behaviors have been stabilized:
ambiguous-variable-name (E741): Violations in stub files are now ignored. \
Stub authors typically don't control variable names.
printf-string-formatting (UP031): Report all printf-like usages even if no \
autofix is available
The following fixes have been stabilized:
zip-instead-of-pairwise (RUF007)
Preview features
[flake8-datetimez] Exempt min.time() and max.time() (DTZ901) (#14394)
[flake8-pie] Mark fix as unsafe if the following statement is a string \
literal (PIE790) (#14393)
[flake8-pyi] New rule redundant-none-literal (PYI061) (#14316)
[flake8-pyi] Add autofix for redundant-numeric-union (PYI041) (#14273)
[ruff] New rule map-int-version-parsing (RUF048) (#14373)
[ruff] New rule redundant-bool-literal (RUF038) (#14319)
[ruff] New rule unraw-re-pattern (RUF039) (#14446)
[pycodestyle] Exempt pytest.importorskip() calls (E402) (#14474)
[pylint] Autofix suggests using sets when possible (PLR1714) (#14372)
Rule changes
invalid-pyproject-toml (RUF200): Updated to reflect the provisionally \
accepted PEP 639.
[flake8-pyi] Avoid panic in unfixable case (PYI041) (#14402)
[flake8-type-checking] Correctly handle quotes in subscript expression when \
generating an autofix (#14371)
[pylint] Suggest correct autofix for __contains__ (PLC2801) (#14424)
Configuration
Ruff now emits a warning instead of an error when a configuration ignores a \
rule that has been removed (#14435)
Ruff now validates that lint.flake8-import-conventions.aliases only uses \
valid module names and aliases (#14477)
|
2024-11-17 22:28:21 by Thomas Klausner | Files touched by this commit (1) |
Log message:
py-ruff: bump PKGREVISION for previous
|
2024-11-17 13:49:52 by Adam Ciarcinski | Files touched by this commit (3) |
Log message:
py-ruff: find Ruff binary with Python version suffix
|
2024-11-17 10:55:01 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
py-ruff: update to 0.7.4.
Preview features
[flake8-datetimez] Detect usages of datetime.max/datetime.min (DTZ901) (#14288)
[flake8-logging] Implement root-logger-calls (LOG015) (#14302)
[flake8-no-pep420] Detect empty implicit namespace packages (INP001) (#14236)
[flake8-pyi] Add "replace with Self" fix (PYI019) (#14238)
[perflint] Implement quick-fix for manual-list-comprehension (PERF401) (#13919)
[pylint] Implement shallow-copy-environ (W1507) (#14241)
[ruff] Implement none-not-at-end-of-union (RUF036) (#14314)
[ruff] Implementation unsafe-markup-call from flake8-markupsafe plugin \
(RUF035) (#14224)
[ruff] Report problems for attrs dataclasses (RUF008, RUF009) (#14327)
Rule changes
[flake8-boolean-trap] Exclude dunder methods that define operators (FBT001) \
(#14203)
[flake8-pyi] Add "replace with Self" fix (PYI034) (#14217)
[flake8-pyi] Always autofix duplicate-union-members (PYI016) (#14270)
[flake8-pyi] Improve autofix for nested and mixed type unions for \
unnecessary-type-union (PYI055) (#14272)
[flake8-pyi] Mark fix as unsafe when type annotation contains comments for \
duplicate-literal-member (PYI062) (#14268)
Server
Use the current working directory to resolve settings from \
ruff.configuration (#14352)
Bug fixes
Avoid conflicts between PLC014 (useless-import-alias) and I002 \
(missing-required-import) by considering lint.isort.required-imports for PLC014 \
(#14287)
[flake8-type-checking] Skip quoting annotation if it becomes invalid syntax \
(TCH001)
[flake8-pyi] Avoid using typing.Self in stub files pre-Python 3.11 (PYI034) \
(#14230)
[flake8-pytest-style] Flag pytest.raises call with keyword argument \
expected_exception (PT011) (#14298)
[flake8-simplify] Infer "unknown" truthiness for literal iterables \
whose items are all unpacks (SIM222) (#14263)
[flake8-type-checking] Fix false positives for typing.Annotated (TCH001) (#14311)
[pylint] Allow await at the top-level scope of a notebook (PLE1142) (#14225)
[pylint] Fix miscellaneous issues in await-outside-async detection (PLE1142) \
(#14218)
[pyupgrade] Avoid applying PEP 646 rewrites in invalid contexts (UP044) (#14234)
[pyupgrade] Detect permutations in redundant open modes (UP015) (#14255)
[refurb] Avoid triggering hardcoded-string-charset for reordered sets \
(FURB156) (#14233)
[refurb] Further special cases added to verbose-decimal-constructor \
(FURB157) (#14216)
[refurb] Use UserString instead of non-existent UserStr (FURB189) (#14209)
[ruff] Avoid treating lowercase letters as # noqa codes (RUF100) (#14229)
[ruff] Do not report when Optional has no type arguments (RUF013) (#14181)
Documentation
Add "Notebook behavior" section for F704, PLE1142 (#14266)
Document comment policy around fix safety (#14300)
|
2024-11-13 14:32:26 by Jonathan Perkin | Files touched by this commit (11) |
Log message:
*: Switch to py-maturin's tool.mk
|
2024-11-11 09:03:47 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
py-ruff: update to 0.7.3.
Preview features
Formatter: Disallow single-line implicit concatenated strings (#13928)
[flake8-pyi] Include all Python file types for PYI006 and PYI066 (#14059)
[flake8-simplify] Implement split-of-static-string (SIM905) (#14008)
[refurb] Implement subclass-builtin (FURB189) (#14105)
[ruff] Improve diagnostic messages and docs (RUF031, RUF032, RUF034) (#14068)
Rule changes
Detect items that hash to same value in duplicate sets (B033, PLC0208) (#14064)
[eradicate] Better detection of IntelliJ language injection comments \
(ERA001) (#14094)
[flake8-pyi] Add autofix for docstring-in-stub (PYI021) (#14150)
[flake8-pyi] Update duplicate-literal-member (PYI062) to alawys provide an \
autofix (#14188)
[pyflakes] Detect items that hash to same value in duplicate dictionaries \
(F601) (#14065)
[ruff] Fix false positive for decorators (RUF028) (#14061)
Bug fixes
Avoid parsing joint rule codes as distinct codes in # noqa (#12809)
[eradicate] ignore # language= in commented-out-code rule (ERA001) (#14069)
[flake8-bugbear] - do not run mutable-argument-default on stubs (B006) (#14058)
[flake8-builtins] Skip lambda expressions in builtin-argument-shadowing \
(A002) (#14144)
[flake8-comprehension] Also remove trailing comma while fixing C409 and C419 \
(#14097)
[flake8-simplify] Allow open without context manager in return statement \
(SIM115) (#14066)
[pylint] Respect hash-equivalent literals in iteration-over-set (PLC0208) \
(#14063)
[pylint] Update known dunder methods for Python 3.13 (PLW3201) (#14146)
[pyupgrade] - ignore kwarg unpacking for UP044 (#14053)
[refurb] Parse more exotic decimal strings in verbose-decimal-constructor \
(FURB157) (#14098)
Documentation
Add links to missing related options within rule documentations (#13971)
Add rule short code to mkdocs tags to allow searching via rule codes (#14040)
|