Skip to content

Bump ruff-pre-commit to v0.3.2#412

Merged
Secrus merged 3 commits into
mainfrom
bump-ruff-pre-commit
Mar 15, 2024
Merged

Bump ruff-pre-commit to v0.3.2#412
Secrus merged 3 commits into
mainfrom
bump-ruff-pre-commit

Conversation

@johnslavik
Copy link
Copy Markdown
Member

@johnslavik johnslavik commented Mar 15, 2024

See details below for changes overview sourced from the Ruff's changelog.
As of 08bcb3c, the update implies updates in 3 files.
The current ruff-pre-commit version runs some linter-formatter conflicting rules.

Details

0.3.2

Preview features

  • Improve single-with item formatting for Python 3.8 or older (#10276)

Rule changes

  • [pyupgrade] Allow fixes for f-string rule regardless of line length (UP032) (#10263)
  • [pycodestyle] Include actual conditions in E712 diagnostics (#10254)

Bug fixes

  • Fix trailing kwargs end of line comment after slash (#10297)
  • Fix unstable with items formatting (#10274)
  • Avoid repeating function calls in f-string conversions (#10265)
  • Fix E203 false positive for slices in format strings (#10280)
  • Fix incorrect Parameter range for *args and **kwargs (#10283)
  • Treat typing.Annotated subscripts as type definitions (#10285)

0.3.1

Preview features

  • [pycodestyle] Fix E301 not triggering on decorated methods. (#10117)
  • [pycodestyle] Respect isort settings in blank line rules (E3*) (#10096)
  • [pycodestyle] Make blank lines in typing stub files optional (E3*) (#10098)
  • [pylint] Implement singledispatch-method (E1519) (#10140)
  • [pylint] Implement useless-exception-statement (W0133) (#10176)

Rule changes

  • [flake8-debugger] Check for use of debugpy and ptvsd debug modules (#10177) (#10194)
  • [pyupgrade] Generate diagnostic for all valid f-string conversions regardless of line length (UP032) (#10238)
  • [pep8_naming] Add fixes for N804 and N805 (#10215)

CLI

  • Colorize the output of ruff format --diff (#10110)
  • Make --config and --isolated global flags (#10150)
  • Correctly expand tildes and environment variables in paths passed to --config (#10219)

Configuration

  • Accept a PEP 440 version specifier for required-version (#10216)
  • Implement isort's default-section setting (#10149)

Bug fixes

  • Remove trailing space from CapWords message (#10220)
  • Respect external codes in file-level exemptions (#10203)
  • [flake8-raise] Avoid false-positives for parens-on-raise with future.exception() (RSE102) (#10206)
  • [pylint] Add fix for unary expressions in PLC2801 (#9587)
  • [ruff] Fix RUF028 not allowing # fmt: skip on match cases (#10178)

0.3.0

This release introduces the new Ruff formatter 2024.2 style and adds a new lint rule to
detect invalid formatter suppression comments.

Preview features

  • [flake8-bandit] Remove suspicious-lxml-import (S410) (#10154)
  • [pycodestyle] Allow os.environ modifications between imports (E402) (#10066)
  • [pycodestyle] Don't warn about a single whitespace character before a comma in a tuple (E203) (#10094)

Rule changes

  • [eradicate] Detect commented out case statements (ERA001) (#10055)
  • [eradicate] Detect single-line code for try:, except:, etc. (ERA001) (#10057)
  • [flake8-boolean-trap] Allow boolean positionals in __post_init__ (#10027)
  • [flake8-copyright] Allow © in copyright notices (#10065)
  • [isort]: Use one blank line after imports in typing stub files (#9971)
  • [pylint] New Rule dict-iter-missing-items (PLE1141) (#9845)
  • [pylint] Ignore sys.version and sys.platform (PLR1714) (#10054)
  • [pyupgrade] Detect literals with unary operators (UP018) (#10060)
  • [ruff] Expand rule for list(iterable).pop(0) idiom (RUF015) (#10148)

Formatter

This release introduces the Ruff 2024.2 style, stabilizing the following changes:

  • Prefer splitting the assignment's value over the target or type annotation (#8943)
  • Remove blank lines before class docstrings (#9154)
  • Wrap multiple context managers in with parentheses when targeting Python 3.9 or newer (#9222)
  • Add a blank line after nested classes with a dummy body (...) in typing stub files (#9155)
  • Reduce vertical spacing for classes and functions with a dummy (...) body (#7440, #9240)
  • Add a blank line after the module docstring (#8283)
  • Parenthesize long type hints in assignments (#9210)
  • Preserve indent for single multiline-string call-expressions (#9673)
  • Normalize hex escape and unicode escape sequences (#9280)
  • Format module docstrings (#9725)

CLI

  • Explicitly disallow extend as part of a --config flag (#10135)
  • Remove build from the default exclusion list (#10093)
  • Deprecate ruff <path>, ruff --explain, ruff --clean, and ruff --generate-shell-completion in favor of ruff check <path>, ruff rule, ruff clean, and ruff generate-shell-completion (#10169)
  • Remove the deprecated CLI option --format from ruff rule and ruff linter (#10170)

Bug fixes

  • [flake8-bugbear] Avoid adding default initializers to stubs (B006) (#10152)
  • [flake8-type-checking] Respect runtime-required decorators for function signatures (#10091)
  • [pycodestyle] Mark fixes overlapping with a multiline string as unsafe (W293) (#10049)
  • [pydocstyle] Trim whitespace when removing blank lines after section (D413) (#10162)
  • [pylint] Delete entire statement, including semicolons (PLR0203) (#10074)
  • [ruff] Avoid f-string false positives in gettext calls (RUF027) (#10118)
  • Fix ruff crashing on PowerPC systems because of too small page size (#10080)

Performance

  • Add cold attribute to less likely printer queue branches in the formatter (#10121)
  • Skip unnecessary string normalization in the formatter (#10116)

Documentation

  • Remove "Beta" Label from formatter documentation (#10144)
  • line-length option: fix link to pycodestyle.max-line-length (#10136)

0.2.2

Highlights include:

  • Initial support formatting f-strings (in --preview).
  • Support for overriding arbitrary configuration options via the CLI through an expanded --config
    argument (e.g., --config "lint.isort.combine-as-imports=false").
  • Significant performance improvements in Ruff's lexer, parser, and lint rules.

Preview features

  • Implement minimal f-string formatting (#9642)
  • [pycodestyle] Add blank line(s) rules (E301, E302, E303, E304, E305, E306) (#9266)
  • [refurb] Implement readlines_in_for (FURB129) (#9880)

Rule changes

  • [ruff] Ensure closing parentheses for multiline sequences are always on their own line (RUF022, RUF023) (#9793)
  • [numpy] Add missing deprecation violations (NPY002) (#9862)
  • [flake8-bandit] Detect mark_safe usages in decorators (#9887)
  • [ruff] Expand asyncio-dangling-task (RUF006) to include new_event_loop (#9976)
  • [flake8-pyi] Ignore 'unused' private type dicts in class scopes (#9952)

Formatter

  • Docstring formatting: Preserve tab indentation when using indent-style=tabs (#9915)
  • Disable top-level docstring formatting for notebooks (#9957)
  • Stabilize quote-style's preserve mode (#9922)

CLI

  • Allow arbitrary configuration options to be overridden via the CLI (#9599)

Bug fixes

  • Make show-settings filters directory-agnostic (#9866)
  • Respect duplicates when rewriting type aliases (#9905)
  • Respect tuple assignments in typing analyzer (#9969)
  • Use atomic write when persisting cache (#9981)
  • Use non-parenthesized range for DebugText (#9953)
  • [flake8-simplify] Avoid false positive with async for loops (SIM113) (#9996)
  • [flake8-trio] Respect async with in timeout-without-await (#9859)
  • [perflint] Catch a wider range of mutations in PERF101 (#9955)
  • [pycodestyle] Fix E30X panics on blank lines with trailing white spaces (#9907)
  • [pydocstyle] Allow using parameters as a subsection header (D405) (#9894)
  • [pydocstyle] Fix blank-line docstring rules for module-level docstrings (#9878)
  • [pylint] Accept 0.0 and 1.0 as common magic values (PLR2004) (#9964)
  • [pylint] Avoid suggesting set rewrites for non-hashable types (#9956)
  • [ruff] Avoid false negatives with string literals inside of method calls (RUF027) (#9865)
  • [ruff] Fix panic on with f-string detection (RUF027) (#9990)
  • [ruff] Ignore builtins when detecting missing f-strings (#9849)

Performance

  • Use memchr for string lexing (#9888)
  • Use memchr for tab-indentation detection (#9853)
  • Reduce Result<Tok, LexicalError> size by using Box<str> instead of String (#9885)
  • Reduce size of Expr from 80 to 64 bytes (#9900)
  • Improve trailing comma rule performance (#9867)
  • Remove unnecessary string cloning from the parser (#9884)

0.2.1

This release includes support for range formatting (i.e., the ability to format specific lines
within a source file).

Preview features

  • [refurb] Implement missing-f-string-syntax (RUF027) (#9728)
  • Format module-level docstrings (#9725)

Formatter

  • Add --range option to ruff format (#9733)
  • Don't trim last empty line in docstrings (#9813)

Bug fixes

  • Skip empty lines when determining base indentation (#9795)
  • Drop __get__ and __set__ from unnecessary-dunder-call (#9791)
  • Respect generic Protocol in ellipsis removal (#9841)
  • Revert "Use publicly available Apple Silicon runners (#9726)" (#9834)

Performance

  • Skip LibCST parsing for standard dedent adjustments (#9769)
  • Remove CST-based fixer for C408 (#9822)
  • Add our own ignored-names abstractions (#9802)
  • Remove CST-based fixers for C400, C401, C410, and C418 (#9819)
  • Use AhoCorasick to speed up quote match (#9773)
  • Remove CST-based fixers for C405 and C409 (#9821)
  • Add fast-path for comment detection (#9808)
  • Invert order of checks in zero-sleep-call (#9766)
  • Short-circuit typing matches based on imports (#9800)
  • Run dunder method rule on methods directly (#9815)
  • Track top-level module imports in the semantic model (#9775)
  • Slight speed-up for lowercase and uppercase identifier checks (#9798)
  • Remove LibCST-based fixer for C403 (#9818)

Documentation

  • Update max-pos-args example to max-positional-args (#9797)
  • Fixed example code in weak_cryptographic_key.rs (#9774)
  • Fix references to deprecated ANN rules in changelog (#9771)
  • Fix default for max-positional-args (#9838)

@johnslavik johnslavik added the skip news Skip the check for a news file label Mar 15, 2024
@johnslavik johnslavik requested a review from Secrus March 15, 2024 09:11
@Secrus Secrus merged commit 8af69a0 into main Mar 15, 2024
@Secrus Secrus deleted the bump-ruff-pre-commit branch March 15, 2024 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip news Skip the check for a news file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants