Commit Graph

  • e34fe976fd Accepting request 1323924 from devel:languages:python factory Dominique Leuenberger 2025-12-22 21:48:20 +00:00
  • a7d79e0b30 - update to 0.14.10: * Preview feature * [formatter] Fluent formatting of method chains * [formatter] Keep lambda parameters on one line and parenthesize the body if it expands * [flake8-implicit-str-concat] New rule to prevent implicit string concatenation in collections (ISC004) * [flake8-use-pathlib] Make fixes unsafe when types change in compound statements (PTH104, PTH105, PTH109, PTH115) * [refurb] Extend support for Path.open (FURB101, FURB103) * Bug fixes * [pyupgrade] Fix parsing named Unicode escape sequences (UP032) * Rule changes * [eradicate] Ignore ruff:disable and ruff:enable comments in ERA001 * [flake8-pytest-style] Allow match and check keyword arguments without an expected exception type (PT010) * [syntax-errors] Annotated name cannot be global * Documentation * Add uv and ty to the Ruff README * Document known lambda formatting deviations from Black * Update setup.md * [flake8-bandit] Fix broken link (S704) Ondřej Súkup 2025-12-21 12:52:29 +00:00
  • 0bfa8f9655 - update to 0.14.9 * Preview features * [ruff] New RUF100 diagnostics for unused range suppressions * [pylint] Detect subclasses of builtin exceptions (PLW0133) * Bug fixes * Fix comment placement in lambda parameters * Skip over trivia tokens after re-lexing * [flake8-bandit] Fix false positive when using non-standard CSafeLoader path (S506). * [flake8-bugbear] Accept immutable slice default arguments (B008) * Rule changes * [pydocstyle] Suppress D417 for parameters with Unpack annotations * Performance * Use memchr for computing line indexes * Documentation * Document *.pyw is included by default in preview * Document range suppressions, reorganize suppression docs * Update mkdocs-material to 9.7.0 (Insiders now free) Ondřej Súkup 2025-12-14 14:29:06 +00:00
  • 486673e544 Accepting request 1322539 from devel:languages:python Ana Guerrero 2025-12-12 20:40:41 +00:00
  • b4f8886ca9 - update 0.14.8 * Preview features * [flake8-bugbear] Catch yield expressions within other statements (B901) * [flake8-use-pathlib] Mark fixes unsafe for return type changes (PTH104, PTH105, PTH109, PTH115) * Bug fixes * Fix syntax error false positives for await outside functions * [flake8-simplify] Fix truthiness assumption for non-iterable arguments in tuple/list/set calls (SIM222, SIM223) * Documentation * Suggest using --output-file option in GitLab integration * Other changes * [syntax-error] Default type parameter followed by non-default type parameter Ondřej Súkup 2025-12-05 06:21:11 +00:00
  • 085a9b3b16 Accepting request 1320566 from devel:languages:python Ana Guerrero 2025-12-02 12:18:45 +00:00
  • 0572f70601 - update to 0.14.7 * Preview features * [flake8-bandit] Handle string literal bindings in suspicious-url-open-usage (S310) * [pylint] Fix PLR1708 false positives on nested functions * [pylint] Fix suppression for empty dict without tuple key annotation (PLE1141) * [ruff] Add rule RUF066 to detect unnecessary class properties * [ruff] Catch more dummy variable uses (RUF052) * Bug fixes * [server] Set severity for non-rule diagnostics * [flake8-implicit-str-concat] Avoid invalid fix in (ISC003) * [parser] Fix panic when parsing IPython escape command expressions * CLI * Show partial fixability indicator in statistics output Ondřej Súkup 2025-11-29 13:50:22 +00:00
  • 40744719cd Accepting request 1319715 from devel:languages:python Ana Guerrero 2025-11-25 14:52:18 +00:00
  • b88dae54ec - update to 0.14.6 * Preview features * [flake8-bandit] Support new PySNMP API paths (S508, S509) * Bug fixes * Adjust own-line comment placement between branches * Avoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value * Fix panic when formatting comments in unary expressions * Respect fmt: skip for compound statements on a single line * [refurb] Fix FURB103 autofix * [ruff] Fix false positive for complex conversion specifiers in logging-eager-conversion (RUF065) * Rule changes * [ruff] Avoid false positive on ClassVar reassignment (RUF012) * CLI * Render hyperlinks for lint errors * Add a ruff analyze option to skip over imports in TYPE_CHECKING blocks * Documentation * Limit eglot-format hook to eglot-managed Python buffers * Mention force-exclude in "Configuration > Python file discovery" - update to 0.14.5 Ondřej Súkup 2025-11-24 12:12:26 +00:00
  • 7fc1c3a442 Accepting request 1318008 from devel:languages:python Ana Guerrero 2025-11-18 14:28:01 +00:00
  • 87cab70bc7 - update to 0.14.4 * Preview features * [flake8-simplify] Apply SIM113 when index variable is of type int * [pydoclint] Fix false positive when Sphinx directives follow a "Raises" section (DOC502) * [pydoclint] Support NumPy-style comma-separated parameters (DOC102) * [refurb] Auto-fix annotated assignments (FURB101) * [ruff] Ignore str() when not used for simple conversion (RUF065) * Bug fixes * Fix syntax error false positive on alternative match patterns * [flake8-simplify] Fix false positive for iterable initializers with generator arguments (SIM222) * [pyupgrade] Fix false positive on relative imports from local .builtins module (UP029) * [pyupgrade] Consistently set the deprecated tag (UP035) * Rule changes * [refurb] Detect empty f-strings (FURB105) * CLI * Add option to provide a reason to --add-noqa * Add upstream linter URL to ruff linter --output-format=json * Add color to --help * Documentation * Add a new "Opening a PR" section to the contribution guide * Added the PyScripter IDE to the list of "Who is using Ruff?" * Update PyCharm setup instructions * [flake8-annotations] Add link to allow-star-arg-any option (ANN401) * Other changes * [configuration] Improve error message when line-length exceeds u16::MAX Ondřej Súkup 2025-11-15 18:08:49 +00:00
  • 23b1fea34c Accepting request 1316411 from devel:languages:python Ana Guerrero 2025-11-08 15:33:25 +00:00
  • 319d9ecd7b - update to 0.14.4 * Preview features * [formatter] Allow newlines after function headers without docstrings * [formatter] Avoid extra parentheses for long match patterns with as captures * [refurb] Expand fix safety for keyword arguments and Decimals (FURB164) * [refurb] Preserve argument ordering in autofix (FURB103) * Bug fixes * [server] Fix missing diagnostics for notebooks * [flake8-bugbear] Ignore non-NFKC attribute names in B009 and B010 * [refurb] Fix false negative for underscores before sign in Decimal constructor (FURB157) * [ruff] Fix false positives on starred arguments (RUF057) * Rule changes * [airflow] extend deprecated argument concurrency in airflow..DAG (AIR301) * Documentation * Improve extend docs * [flake8-comprehensions] Fix typo in C416 documentation * Revise Ruff setup instructions for Zed editor * Other changes * Make ruff analyze graph work with jupyter notebooks Ondřej Súkup 2025-11-07 10:36:59 +00:00
  • 0fe2e2bedc - update to 0.14.3: * Respect --output-format with --watch * [pydoclint] Fix false positive on explicit exception re- raising (DOC501, DOC502) * [pyflakes] Revert to stable behavior if imports for module lie in alternate branches for F401 * [pylint] Implement stop-iteration-return (PLR1708) * [ruff] Add support for additional eager conversion patterns (RUF065) * Fix finding keyword range for clause header after statement ending with semicolon * Fix syntax error false positive on nested alternative patterns * [ISC001] Fix panic when string literals are unclosed * [flake8-django] Apply DJ001 to annotated fields * [flake8-pyi] Fix PYI034 to not trigger on metaclasses (PYI034) * [flake8-type-checking] Fix TC003 false positive with future-annotations * [pyflakes] Fix false positive for __class__ in lambda expressions within class definitions (F821) * [pyupgrade] Fix false positive for TypeVar with default on Python \<3.13 (UP046,UP047) * [flake8-gettext] Resolve qualified names and built-in bindings (INT001, INT002, INT003) * Bug fixes * Avoid reusing nested, interpolated quotes before Python 3.12 * Catch syntax errors in nested interpolations before Python 3.12 * [fastapi] Handle ellipsis defaults in FAST002 autofix * [flake8-simplify] Skip SIM911 when unknown arguments are present * [pyupgrade] Always parenthesize assignment expressions in fix for f-string (UP032) Dirk Mueller 2025-10-31 09:35:33 +00:00
  • 2b77509d5b Accepting request 1313594 from devel:languages:python Ana Guerrero 2025-10-27 13:37:22 +00:00
  • 8cd509fbfe - update to 0.14.2 * Preview features * [flake8-gettext] Resolve qualified names and built-in bindings (INT001, INT002, INT003) * Bug fixes * Avoid reusing nested, interpolated quotes before Python 3.12 * Catch syntax errors in nested interpolations before Python 3.12 * [fastapi] Handle ellipsis defaults in FAST002 autofix * [flake8-simplify] Skip SIM911 when unknown arguments are present * [pyupgrade] Always parenthesize assignment expressions in fix for f-string (UP032) * [pyupgrade] Fix UP032 conversion for decimal ints with underscores * [fastapi] Skip autofix for keyword and __debug__ path params (FAST003) * Rule changes * [flake8-bugbear] Skip B905 and B912 for fewer than two iterables and no starred arguments * [ruff] Use DiagnosticTag for more pyflakes and pandas rules * CLI * Improve JSON output from ruff rule * Documentation * Add source to testimonial * Document when a rule was added * Other changes * [syntax-errors] Name is parameter and global * [syntax-errors] Alternative match patterns bind different names Ondřej Súkup 2025-10-24 17:05:03 +00:00
  • f06054a49e Accepting request 1311814 from devel:languages:python Dominique Leuenberger 2025-10-18 12:36:07 +00:00
  • 3bc205f28b - update to 0.14.1 * Preview features * [formatter] Remove parentheses around multiple exception types on Python 3.14+ * [flake8-bugbear] Omit annotation in preview fix for B006 * [flake8-logging-format] Avoid dropping implicitly concatenated pieces in the G004 fix * [pydoclint] Implement docstring-extraneous-parameter (DOC102) * [pyupgrade] Extend UP019 to detect typing_extensions.Text (UP019) * [pyupgrade] Fix false negative for TypeVar with default argument in non-pep695-generic-class (UP046) * Bug fixes * Fix false negatives in Truthiness::from_expr for lambdas, generators, and f-strings * Fix syntax error false positives for escapes and quotes in f-strings * Fix syntax error false positives on parenthesized context managers * [fastapi] Fix false positives for path parameters that FastAPI doesn't recognize (FAST003) * [flake8-pyi] Fix operator precedence by adding parentheses when needed (PYI061) * [ruff] Suppress diagnostic for f-string interpolations with debug text (RUF010) * Rule changes * [airflow] Add warning to airflow.datasets.DatasetEvent usage (AIR301) * [flake8-bugbear] Mark B905 and B912 fixes as unsafe * Use DiagnosticTag for more rules - changes display in editors * Documentation * Update Python compatibility from 3.13 to 3.14 in README.md * Update lint.flake8-type-checking.quoted-annotations docs * Update setup instructions for Zed 0.208.0+ * [flake8-datetimez] Clarify docs for several rules * Fix typo in RUF015 description * Other changes * Reduce binary size * Improved error recovery for unclosed strings (including f- and t-strings) Ondřej Súkup 2025-10-16 21:57:09 +00:00
  • c92b89390a Accepting request 1309778 from devel:languages:python Dominique Leuenberger 2025-10-09 12:59:55 +00:00
  • 223dffa18e - update to 0.14.0: * Update default and latest Python versions for 3.14 * \[flake8-bugbear\] Include certain guaranteed-mutable expressions: tuples, generators, and assignment expressions (B006) * \[refurb\] Add fixes for FURB101 and FURB103 * \[ruff\] Extend FA102 with listed PEP 585-compatible APIs * \[flake8-annotations\] Fix return type annotations to handle shadowed builtin symbols (ANN201, ANN202, ANN204, ANN205, ANN206) * \[flynt\] Fix f-string quoting for mixed quote joiners (FLY002) * \[isort\] Fix inserting required imports before future imports (I002) * \[ruff\] Handle argfile expansion errors gracefully * \[ruff\] Skip RUF051 if else/elif block is present * \[ruff\] Improve handling of intermixed comments inside from-imports * Display diffs for ruff format --check and add support for different output formats * [pyflakes] Handle some common submodule import situations for unused-import (F401) * [ruff] Do not flag %r + repr() combinations (RUF065) * Bug fixes * [cli] Add conflict between --add-noqa and --diff options * [pylint] Exempt required imports from PLR0402 * [pylint] Fix missing max-nested-blocks in settings display * [pyupgrade] Prevent infinite loop with I002 and UP026 * Rule changes * [flake8-simplify] Improve help message clarity (SIM105) * Documentation * Add the The Basics title back to CONTRIBUTING.md Dirk Mueller 2025-10-08 10:03:10 +00:00
  • 28c3dc216b Accepting request 1308866 from devel:languages:python Dominique Leuenberger 2025-10-04 16:50:46 +00:00
  • 2f9b466755 - update to 0.13.3: * Preview features * Display diffs for ruff format --check and add support for different output formats * [pyflakes] Handle some common submodule import situations for unused-import (F401) * [ruff] Do not flag %r + repr() combinations (RUF065) * Bug fixes * [cli] Add conflict between --add-noqa and --diff options * [pylint] Exempt required imports from PLR0402 * [pylint] Fix missing max-nested-blocks in settings display * [pyupgrade] Prevent infinite loop with I002 and UP026 * Rule changes * [flake8-simplify] Improve help message clarity (SIM105) * Documentation * Add the The Basics title back to CONTRIBUTING.md * Fixed documentation for try_consider_else * [isort] Clarify dependency between order-by-type and case-sensitive settings * [pylint] Clarify fix safety to include left-hand hashability (PLR6201) * Other changes * [playground] Fix quick fixes for empty ranges in playground Ondřej Súkup 2025-10-03 12:50:54 +00:00
  • f1caedf386 Accepting request 1307347 from devel:languages:python Ana Guerrero 2025-09-26 20:23:58 +00:00
  • b88b159b74 - update to 0.13.2: * [flake8-async] Implement blocking-path-method * [flake8-bugbear] Implement map-without-explicit-strict * [flake8-bultins] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (A003) * [ruff] Implement logging-eager-conversion (RUF065) * Include .pyw files by default when linting and formatting * [flake8-simplify] Detect unnecessary None default for additional key expression types (SIM910) * [flake8-use-pathlib] Add fix for PTH123 * [flake8-use-pathlib] Fix PTH101, PTH104, PTH105, PTH121 fixes * [flake8-use-pathlib] Make PTH111 fix unsafe because it can change behavior * [pycodestyle] Fix E301 to only trigger for functions immediately within a class * [refurb] Mark single-item-membership-test fix as always unsafe (FURB171) * Bug fixes * Handle t-strings for token-based rules and suppression comments * [flake8-bandit] Fix truthiness: dict-only ** displays not truthy for shell (S602, S604, S609) * [flake8-simplify] Fix diagnostic to show correct method name for str.rsplit calls (SIM905) * [flynt] Use triple quotes for joined raw strings with newlines (FLY002) * [pyupgrade] Fix false positive when class name is shadowed by local variable (UP008) * [pyupgrade] Prevent infinite loop with I002 and UP026 * [ruff] Recognize t-strings, generators, and lambdas in invalid-index-type (RUF016) * Rule changes * [RUF102] Respect rule redirects in invalid rule code detection * [flake8-bugbear] Mark the fix for unreliable-callable-check as always unsafe (B004) * [ruff] Allow dataclass attribute value instantiation from nested frozen dataclass (RUF009) * Add fixes to output-format=sarif * Treat panics as fatal diagnostics, sort panics last * Documentation * [ruff] Add analyze.string-imports-min-dots to settings * Update README.md with Albumentations new repository URL Dirk Mueller 2025-09-26 10:08:27 +00:00
  • 2c1c54a6bb Accepting request 1306058 from devel:languages:python Ana Guerrero 2025-09-22 14:38:21 +00:00
  • 7658e0c044 - update to 0.13.1 * Preview features * [flake8-simplify] Detect unnecessary None default for additional key expression types (SIM910) * [flake8-use-pathlib] Add fix for PTH123 * [flake8-use-pathlib] Fix PTH101, PTH104, PTH105, PTH121 fixes * [flake8-use-pathlib] Make PTH111 fix unsafe because it can change behavior * [pycodestyle] Fix E301 to only trigger for functions immediately within a class * [refurb] Mark single-item-membership-test fix as always unsafe (FURB171) * Bug fixes * Handle t-strings for token-based rules and suppression comments * [flake8-bandit] Fix truthiness: dict-only ** displays not truthy for shell (S602, S604, S609) * [flake8-simplify] Fix diagnostic to show correct method name for str.rsplit calls (SIM905) * [flynt] Use triple quotes for joined raw strings with newlines (FLY002) * [pyupgrade] Fix false positive when class name is shadowed by local variable (UP008) * [pyupgrade] Prevent infinite loop with I002 and UP026 * [ruff] Recognize t-strings, generators, and lambdas in invalid-index-type (RUF016) * Rule changes * [RUF102] Respect rule redirects in invalid rule code detection * [flake8-bugbear] Mark the fix for unreliable-callable-check as always unsafe (B004) * [ruff] Allow dataclass attribute value instantiation from nested frozen dataclass (RUF009) * CLI * Add fixes to output-format=sarif * Treat panics as fatal diagnostics, sort panics last * Documentation * [ruff] Add analyze.string-imports-min-dots to settings * Update README.md with Albumentations new repository URL Ondřej Súkup 2025-09-19 19:30:01 +00:00
  • 44d99bbfb6 Accepting request 1303737 from devel:languages:python Ana Guerrero 2025-09-11 12:38:22 +00:00
  • 8baa4a25fb - update to 0.13.0 * Breaking changes * Several rules can now add from __future__ import annotations automatically * Full module paths are now used to verify first-party modules * Deprecated rules must now be selected by exact rule code * The deprecated macOS configuration directory fallback has been removed * Removed Rules * pandas-df-variable-name (PD901) * non-pep604-isinstance (UP038) * Stabilization * airflow-dag-no-schedule-argument (AIR002) * airflow3-removal (AIR301) * airflow3-moved-to-provider (AIR302) * airflow3-suggested-update (AIR311) * airflow3-suggested-to-move-to-provider (AIR312) * long-sleep-not-forever (ASYNC116) * f-string-number-format (FURB116) * os-symlink (PTH211) * generic-not-last-base-class (PYI059) * redundant-none-literal (PYI061) * pytest-raises-ambiguous-pattern (RUF043) * unused-unpacked-variable (RUF059) * useless-class-metaclass-type (UP050) * assert-raises-exception (B017) now checks for direct calls to unittest.TestCase.assert_raises and pytest.raises instead of only the context manager forms. * missing-trailing-comma (COM812) and prohibited-trailing-comma (COM819) now check for trailing commas in PEP 695 type parameter lists. * raw-string-in-exception (EM101) now also checks for byte strings in exception messages. * invalid-mock-access (PGH005) now checks for AsyncMock methods like not_awaited in addition to the synchronous variants. Ondřej Súkup 2025-09-11 00:29:35 +00:00
  • f07026ad1f Accepting request 1302894 from devel:languages:python Ana Guerrero 2025-09-05 19:42:34 +00:00
  • c930114ffb - update to 0.12.12: * Show fixes by default * [airflow] Convert DatasetOrTimeSchedule(datasets=...) to AssetOrTimeSchedule(assets=...) (AIR311) * [airflow] Improve the AIR002 error message * [airflow] Move airflow.operators.postgres_operator.Mapping from AIR302 to AIR301 * [flake8-async] Implement blocking-input rule (ASYNC250) * [flake8-use-pathlib] Make PTH119 and PTH120 fixes unsafe because they can change behavior * [pylint] Add U+061C to PLE2502 * [ruff] Fix false negative for empty f-strings in deque calls (RUF037) * Less confidently mark f-strings as empty when inferring truthiness * [fastapi] Fix false positive for paths with spaces around parameters (FAST003) * [flake8-comprehensions] Skip C417 when lambda contains yield/yield from * [perflint] Handle tuples in dictionary comprehensions (PERF403) - update to 0.12.11 * Preview features * [airflow] Extend AIR311 and AIR312 rules * [airflow] Replace wrong path airflow.io.storage with airflow.io.store (AIR311) * [flake8-async] Implement blocking-http-call-httpx-in-async-function (ASYNC212) * [flake8-logging-format] Add auto-fix for f-string logging calls (G004) * [flake8-use-pathlib] Add autofix for PTH211 Dirk Mueller 2025-09-05 09:25:05 +00:00
  • 73c41b3e7d Accepting request 1302462 from devel:languages:python Ana Guerrero 2025-09-03 19:07:09 +00:00
  • 2bc859592b - Update vendor tarball to fix CVE-2025-58160 (bsc#1249011) Markéta Machová 2025-09-02 15:30:54 +00:00
  • 5d8fda79b2 Accepting request 1301841 from devel:languages:python Ana Guerrero 2025-08-29 16:34:47 +00:00
  • 18e8d4ed54 - update to 0.12.11 * Preview features * [airflow] Extend AIR311 and AIR312 rules * [airflow] Replace wrong path airflow.io.storage with airflow.io.store (AIR311) * [flake8-async] Implement blocking-http-call-httpx-in-async-function (ASYNC212) * [flake8-logging-format] Add auto-fix for f-string logging calls (G004) * [flake8-use-pathlib] Add autofix for PTH211 * [flake8-use-pathlib] Make PTH100 fix unsafe because it can change behavior * Bug fixes * [pyflakes, pylint] Fix false positives caused by __class__ cell handling (F841, PLE0117) * [pyflakes] Fix allowed-unused-imports matching for top-level modules (F401) * [ruff] Fix false positive for t-strings in default-factory-kwarg (RUF026) * [ruff] Preserve relative whitespace in multi-line expressions (RUF033) * Rule changes * [ruff] Handle empty t-strings in unnecessary-empty-iterable-within-deque-call (RUF037) * Documentation * Fix incorrect D413 links in docstrings convention FAQ * [flake8-use-pathlib] Update links to the table showing the correspondence between os and pathlib Ondřej Súkup 2025-08-28 22:03:24 +00:00
  • 1e592ccd24 Accepting request 1300962 from devel:languages:python Ana Guerrero 2025-08-25 18:36:09 +00:00
  • 0f540c8d39 - update to 0.12.10 * Preview features * [flake8-simplify] Implement fix for maxsplit without separator (SIM905) * [flake8-use-pathlib] Add fixes for PTH102 and PTH103 * Bug fixes * [isort] Handle multiple continuation lines after module docstring (I002) * [pyupgrade] Avoid reporting __future__ features as unnecessary when they are used (UP010) * [pyupgrade] Handle nested Optionals (UP045) * Rule changes * [pycodestyle] Make E731 fix unsafe instead of display-only for class assignments * [pyflakes] Add secondary annotation showing previous definition (F811) * Documentation * Fix description of global config file discovery strategy * Update outdated links to https://typing.python.org/en/latest/source/stubs.html * [flake8-annotations] Remove unused import in example (ANN401) Ondřej Súkup 2025-08-22 11:11:20 +00:00
  • 40aca1f0d8 Accepting request 1299828 from devel:languages:python Ana Guerrero 2025-08-18 14:07:32 +00:00
  • 1375d56cbe - update to 0.12.9: * \[airflow\] Add check for airflow.secrets.cache.SecretCache (AIR301) * \[ruff\] Offer a safe fix for multi-digit zeros (RUF064) * \[flake8-blind-except\] Fix BLE001 false-positive on raise ... from None * \[flake8-comprehensions\] Fix false positive for C420 with attribute, subscript, or slice assignment targets * \[flake8-simplify\] Fix handling of U+001C..U+001F whitespace (SIM905) * \[pylint\] Use lowercase hex characters to match the formatter (PLE2513) * [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses * Bug fixes * [flake8-blind-except] Change BLE001 to correctly parse exception tuples * [flake8-errmsg] Exclude typing.cast from EM101 * [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes * [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001 * [isort] Fix syntax error after docstring ending with backslash (I002) * [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present * [pyupgrade] Prevent infinite loop with I002 (UP010, UP035) * [ruff] Parenthesize generator expressions in f-strings (RUF010) * Rule changes * [eradicate] Don't flag pyrefly pragmas as unused code (ERA001) * Documentation * Replace "associative" with "commutative" in docs for RUF036 * Fix copy and line separator colors in dark mode * Fix link to typing documentation * Include column numbers in GitLab output format * Always expand tabs to four spaces in diagnostics Dirk Mueller 2025-08-15 12:57:39 +00:00
  • 4f795caf0d Accepting request 1298595 from devel:languages:python Dominique Leuenberger 2025-08-09 17:59:15 +00:00
  • 89b84e0753 - update to 0.12.8 * Preview features * [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses * Bug fixes * [flake8-blind-except] Change BLE001 to correctly parse exception tuples * [flake8-errmsg] Exclude typing.cast from EM101 * [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes * [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001 * [isort] Fix syntax error after docstring ending with backslash (I002) * [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present * [pyupgrade] Prevent infinite loop with I002 (UP010, UP035) * [ruff] Parenthesize generator expressions in f-strings (RUF010) * Rule changes * [eradicate] Don't flag pyrefly pragmas as unused code (ERA001) * Documentation * Replace "associative" with "commutative" in docs for RUF036 * Fix copy and line separator colors in dark mode * Fix link to typing documentation * [refurb] Make more examples error out-of-the-box * Other changes * Include column numbers in GitLab output format * Always expand tabs to four spaces in diagnostics * Update pre-commit's ruff id Ondřej Súkup 2025-08-09 10:29:08 +00:00
  • 9a752079c3 Accepting request 1296552 from devel:languages:python Dominique Leuenberger 2025-07-31 15:45:01 +00:00
  • 4fb19a8662 - update to 0.12.7: * \[flake8-commas\] Add support for trailing comma checks in type parameter lists (COM812, COM819) * \[pylint\] Implement auto-fix for missing-maxsplit-arg (PLC0207) * \[ruff\] Offer fixes for RUF039 in more cases * Support .pyi files in ruff analyze graph * \[flake8-pyi\] Preserve inline comment in ellipsis removal (PYI013) * \[perflint\] Ignore rule if target is global or nonlocal (PERF401) * \[pyupgrade\] Fix UP030 to avoid modifying double curly braces in format strings * \[refurb\] Ignore decorated functions for FURB118 * \[refurb\] Mark int and bool cases for Decimal.from_float as safe fixes (FURB164) * \[ruff\] Fix RUF033 for named default expressions Dirk Mueller 2025-07-30 11:51:57 +00:00
  • 703bf4c0f8 Accepting request 1295811 from devel:languages:python Dominique Leuenberger 2025-07-27 14:26:12 +00:00
  • 9b3a588d67 - update to 0.12.5: * \[flake8-use-pathlib\] Add autofix for PTH101, PTH104, PTH105, PTH121 * \[ruff\] Support byte strings (RUF055) * Fix unreachable panic in parser * \[flake8-pyi\] Skip fix if all Union members are None (PYI016) * \[perflint\] Parenthesize generator expressions (PERF401) * \[pylint\] Handle empty comments after line continuation (PLR2044) allow new fixes (TC001, TC002, TC003, UP037, RUF013) * [flake8-use-pathlib] Add autofix for PTH109 * [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514) * Bug fixes * [flake8-bugbear] Fix B017 false negatives for keyword exception arguments * [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210) * [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field * [isort] Fix I002 import insertion after docstring with multiple string statements * [isort] Treat form feed as valid whitespace before a semicolon * [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202) * [refurb] FURB164 fix should validate arguments and should usually be marked unsafe * Rule changes * [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14 * [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802) * [pycodestyle] Handle brace escapes for t-strings in logical lines * [pylint] Extend invalid string character rules to include t-strings * [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+ * Documentation * [flake8-type-checking] Make TC010 docs example more realistic * [flake8-bugbear] Support non-context-manager calls in B017 Dirk Mueller 2025-07-25 15:53:18 +00:00
  • 6f0be6d2bc Accepting request 1294441 from devel:languages:python Ana Guerrero 2025-07-21 17:58:40 +00:00
  • 4a81ecdb06 - update to 0.12.4 * Preview features * [flake8-type-checking, pyupgrade, ruff] Add from __future__ import annotations when it would allow new fixes (TC001, TC002, TC003, UP037, RUF013) * [flake8-use-pathlib] Add autofix for PTH109 * [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514) * Bug fixes * [flake8-bugbear] Fix B017 false negatives for keyword exception arguments * [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210) * [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field * [isort] Fix I002 import insertion after docstring with multiple string statements * [isort] Treat form feed as valid whitespace before a semicolon * [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202) * [refurb] FURB164 fix should validate arguments and should usually be marked unsafe * Rule changes * [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14 * [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802) * [pycodestyle] Handle brace escapes for t-strings in logical lines * [pylint] Extend invalid string character rules to include t-strings * [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+ * Documentation * [flake8-type-checking] Make TC010 docs example more realistic * Make more documentation examples error out-of-the-box Ondřej Súkup 2025-07-18 18:47:43 +00:00
  • 62fb7bf8dd Accepting request 1292499 from devel:languages:python Ana Guerrero 2025-07-15 14:43:00 +00:00
  • d370fa1ba3 - update to 0.12.3: * Preview features * [flake8-bugbear] Support non-context-manager calls in B017 * [flake8-use-pathlib] Add autofixes for PTH100, PTH106, PTH107, PTH108, PTH110, PTH111, PTH112, PTH113, PTH114, PTH115, PTH117, PTH119, PTH120 * [flake8-use-pathlib] Add autofixes for PTH203, PTH204, PTH205 * Bug fixes * [flake8-return] Fix false-positive for variables used inside nested functions in RET504 * Treat form feed as valid whitespace before a line continuation * [flake8-type-checking] Fix syntax error introduced by fix (TC008) * [pyupgrade] Keyword arguments in super should suppress the UP008 fix * Documentation * [flake8-pyi] Make example error out-of-the-box (PYI007, PYI008) * [flake8-simplify] Make example error out-of-the-box (SIM116) * [flake8-type-checking] Make example error out-of-the-box (TC001) * [flake8-use-pathlib] Make example error out-of-the-box (PTH210) * [pycodestyle] Make example error out-of-the-box (E272) * [pycodestyle] Make example not raise unnecessary SyntaxError (E114) * [pydoclint] Make example error out-of-the-box (DOC501) * [pylint, pyupgrade] Fix syntax errors in examples (PLW1501, UP028) * [pylint] Update missing-maxsplit-arg docs and error to suggest proper usage (PLC0207) * [flake8-bandit] Make example error out-of-the-box (S412) Ondřej Súkup 2025-07-13 12:39:18 +00:00
  • 4f8e38deb1 Accepting request 1290670 from devel:languages:python Ana Guerrero 2025-07-06 15:03:57 +00:00
  • cff2b677ad - update to 0.12.2: * [flake8-pyi] Expand Optional[A] to A | None (PYI016) * [pyupgrade] Mark UP008 fix safe if no comments are in range * [flake8-comprehensions] Fix C420 to prepend whitespace when needed * [perflint] Fix PERF403 panic on attribute or subscription loop variable * [pydocstyle] Fix D413 infinite loop for parenthesized docstring * [pylint] Fix PLW0108 autofix introducing a syntax error when the lambda's body contains an assignment expression * [refurb] Fix false positive on empty tuples (FURB168) * [ruff] Allow more field calls from attrs (RUF009) * [ruff] Fix syntax error introduced for an empty string followed by a u-prefixed string (UP025) * [flake8-errmsg] Extend EM101 to support byte strings * [flake8-use-pathlib] Add autofix for PTH202 * [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005) * [pylint] Ignore __init__.py files in (PLC0414) * [ruff] Trigger RUF037 for empty string and byte strings * [formatter] Fix missing blank lines before decorated classes in .pyi files * Bug fixes * Avoid generating diagnostics with per-file ignores * Handle parenthesized arguments in remove_argument * [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014) * [flake8-pytest-style] Enforce pytest import for decorators * [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator * [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator Dirk Mueller 2025-07-04 11:37:53 +00:00
  • 79a2fd8f4a Accepting request 1288970 from devel:languages:python Ana Guerrero 2025-06-30 11:04:08 +00:00
  • c4da39d03e - update to 0.12.1 * Preview features * [flake8-errmsg] Extend EM101 to support byte strings * [flake8-use-pathlib] Add autofix for PTH202 * [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005) * [pylint] Ignore __init__.py files in (PLC0414) * [ruff] Trigger RUF037 for empty string and byte strings * [formatter] Fix missing blank lines before decorated classes in .pyi files * Bug fixes * Avoid generating diagnostics with per-file ignores * Handle parenthesized arguments in remove_argument * [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014) * [flake8-pytest-style] Enforce pytest import for decorators * [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator * [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator * [flake8-raise] Make fix unsafe if it deletes comments (RSE102) * [flake8-simplify] Fix SIM911 autofix creating a syntax error * [flake8-simplify] Fix false negatives for shadowed bindings (SIM910, SIM911) * [flake8-simplify] Preserve original behavior for except () and bare except (SIM105) * [flake8-pyi] Fix PYI041's fix causing TypeError with None | None | ... * [perflint] Fix PERF101 autofix creating a syntax error and mark autofix as unsafe if there are comments in the list call expr * [perflint] Fix false negative in PERF401 * [pylint] Avoid flattening nested min/max when outer call has single argument (PLW3301) * [pylint] Fix PLC2801 autofix creating a syntax error * [pylint] Mark PLE0241 autofix as unsafe if there's comments in the base classes * [pylint] Suppress PLE2510/PLE2512/PLE2513/PLE2514/PLE2515 autofix if the text contains an odd number of backslashes * [refurb] Detect more exotic float literals in FURB164 * [refurb] Fix FURB163 autofix creating a syntax error for yield expressions * [refurb] Mark FURB129 autofix as unsafe if there's comments in the readlines call * [ruff] Fix false positives and negatives in RUF010 Ondřej Súkup 2025-06-28 16:33:02 +00:00
  • 669d424f58 Accepting request 1286470 from devel:languages:python Ana Guerrero 2025-06-18 20:28:35 +00:00
  • 335e927b70 - update to 0.12.0 * Breaking changes * Detection of more syntax errors * New default Python version handling for syntax errors * Updated f-string formatting * rust-toolchain.toml is no longer included in source distributions * Removed Rules * suspicious-xmle-tree-usage (S320) * Deprecated Rules * pandas-df-variable-name * Stabilization * for-loop-writes (FURB122) * check-and-remove-from-set (FURB132) * verbose-decimal-constructor (FURB157) * fromisoformat-replace-z (FURB162) * int-on-sliced-str (FURB166) * exc-info-outside-except-handler (LOG014) * import-outside-top-level (PLC0415) * unnecessary-dict-index-lookup (PLR1733) * nan-comparison (PLW0177) * eq-without-hash (PLW1641) * pytest-parameter-with-default-argument (PT028) * pytest-warns-too-broad (PT030) * pytest-warns-with-multiple-statements (PT031) * invalid-formatter-suppression-comment (RUF028) * dataclass-enum (RUF049) * class-with-mixed-type-vars (RUF053) * unnecessary-round (RUF057) * starmap-zip (RUF058) * non-pep604-annotation-optional (UP045) Ondřej Súkup 2025-06-17 22:42:56 +00:00
  • ec13e4b26a Accepting request 1284538 from devel:languages:python slfo-main slfo-1.2 Ana Guerrero 2025-06-11 14:18:49 +00:00
  • f8c6ca74d0 - update to 0.11.13: * \[airflow\] Add unsafe fix for module moved cases (AIR301,AIR311,AIR312,AIR302) * \[refurb\] Add coverage of set and frozenset calls (FURB171) * \[refurb\] Mark FURB180 fix unsafe when class has bases * \[fastapi\] Avoid false positive for class dependencies (FAST003) * Support Python 3.14 template strings (t-strings) in formatter and parser * [airflow] Revise fix titles (AIR3) * [pylint] Implement missing-maxsplit-arg (PLC0207) * [pyupgrade] New rule UP050 (useless-class-metaclass-type) * [flake8-use-pathlib] Replace os.symlink with Path.symlink_to (PTH211) * Bug fixes * [flake8-bugbear] Ignore __debug__ attribute in B010 * [flake8-async] Fix anyio.sleep argument name (ASYNC115, ASYNC116) * [refurb] Fix FURB129 autofix generating invalid syntax * Rule changes * [flake8-implicit-str-concat] Add autofix for ISC003 * [pycodestyle] Improve the diagnostic message for E712 * [flake8-2020] Fix diagnostic message for != comparisons (YTT201) * [pyupgrade] Make fix unsafe if it deletes comments (UP010) * Documentation * Simplify rules table to improve readability * Update editor integrations link in README * [flake8-bugbear] Add fix safety section (B006) * [airflow] Add autofixes for AIR302 and AIR312 * [airflow] Move rules from AIR312 to AIR302 * [airflow] Update AIR301 and AIR311 with the latest Airflow implementations Dirk Mueller 2025-06-10 11:18:51 +00:00
  • 2c39ccf498 Accepting request 1281460 from devel:languages:python Ana Guerrero 2025-06-02 19:59:02 +00:00
  • bf80e846ab - update to 0.11.12: * Preview features * [airflow] Revise fix titles (AIR3) * [pylint] Implement missing-maxsplit-arg (PLC0207) * [pyupgrade] New rule UP050 (useless-class-metaclass-type) * [flake8-use-pathlib] Replace os.symlink with Path.symlink_to (PTH211) * Bug fixes * [flake8-bugbear] Ignore __debug__ attribute in B010 * [flake8-async] Fix anyio.sleep argument name (ASYNC115, ASYNC116) * [refurb] Fix FURB129 autofix generating invalid syntax * Rule changes * [flake8-implicit-str-concat] Add autofix for ISC003 * [pycodestyle] Improve the diagnostic message for E712 * [flake8-2020] Fix diagnostic message for != comparisons (YTT201) * [pyupgrade] Make fix unsafe if it deletes comments (UP010) * Documentation * Simplify rules table to improve readability * Update editor integrations link in README * [flake8-bugbear] Add fix safety section (B006) Ondřej Súkup 2025-05-30 15:20:09 +00:00
  • 5f1c99cb71 Accepting request 1279586 from devel:languages:python Ana Guerrero 2025-05-26 16:32:10 +00:00
  • a2f3a23b2f - update to 0.11.11: * Preview features * [airflow] Add autofixes for AIR302 and AIR312 * [airflow] Move rules from AIR312 to AIR302 * [airflow] Update AIR301 and AIR311 with the latest Airflow implementations * [flake8-simplify] Enable fix in preview mode (SIM117) * Bug fixes * Fix inconsistent formatting of match-case on [] and _ * [pylint] Fix PLW1514 not recognizing the encoding positional argument of codecs.open * CLI * Add full option name in formatter warning * Documentation * Fix rendering of admonition in docs * [flake8-print] Improve print/pprint docs for T201 and T203 * [flake8-simplify] Add fix safety section (SIM110,SIM210) * [pylint] Fix docs example that produced different output (PLW0603) Ondřej Súkup 2025-05-23 15:38:54 +00:00
  • dc1e94bdc5 Accepting request 1278416 from devel:languages:python Ana Guerrero 2025-05-23 12:27:28 +00:00
  • 631bceea45 - update 0.11.10: * Preview features * [ruff] Implement a recursive check for RUF060 * [airflow] Enable autofixes for AIR301 and AIR311 * [airflow] Apply try catch guard to all AIR3 rules * [airflow] Extend AIR311 rules * Bug fixes * [flake8-bugbear] Ignore B028 if skip_file_prefixes is present * [flake8-pie] Mark autofix for PIE804 as unsafe if the dictionary contains comments * [flake8-simplify] Correct behavior for str.split/rsplit with maxsplit=0 (SIM905) * [flake8-simplify] Fix SIM905 autofix for rsplit creating a reversed list literal * [flake8-use-pathlib] Suppress diagnostics for all os.* functions that have the dir_fd parameter (PTH) * [refurb] Mark autofix as safe only for number literals (FURB116) * Rule changes * [flake8-bandit] Skip S608 for expressionless f-strings * [flake8-pytest-style] Don't recommend usefixtures for parametrize values (PT019) * [pyupgrade] Add resource.error as deprecated alias of OSError (UP024) * CLI * Disable jemalloc on Android * Documentation * Update Neovim setup docs * [flake8-simplify] Add fix safety section (SIM103) * [flake8-simplify] Add fix safety section (SIM112) * [pylint] Add fix safety section (PLC0414) * [pylint] Add fix safety section (PLE4703) * [pylint] Add fix safety section (PLW1514) * [pylint] Add fix safety section (PLW3301) * [ruff] Add fix safety section (RUF007) * [ruff] Add fix safety section (RUF033) Ondřej Súkup 2025-05-19 14:20:27 +00:00
  • 41aebfdb1b - update to 0.11.9: * Preview features * Default to latest supported Python version for version-related syntax errors * Implement deferred annotations for Python 3.14 * [airflow] Fix SQLTableCheckOperator typo (AIR302) * [airflow] Remove airflow.utils.dag_parsing_context.get_parsing_context (AIR301) * [airflow] Skip attribute check in try catch block (AIR301) * [flake8-bandit] Mark tuples of string literals as trusted input in S603 * [isort] Check full module path against project root(s) when categorizing first-party imports * [ruff] Add new rule in-empty-collection (RUF060) * Bug fixes * Fix missing combine call for lint.typing-extensions setting * [flake8-async] Fix module name in ASYNC110, ASYNC115, and ASYNC116 fixes * [pyupgrade] Add spaces between tokens as necessary to avoid syntax errors in UP018 autofix * [refurb] Fix false positive for float and complex numbers in FURB116 * [parser] Flag single unparenthesized generator expr with trailing comma in arguments. * Documentation * Add instructions on how to upgrade to a newer Rust version * Update code of conduct email address * Add fix safety sections to PLC2801, PLR1722, and RUF013 * Add link to check-typed-exception from S110 and S112 * Other changes * Allow passing a virtual environment to ruff analyze graph Ondřej Súkup 2025-05-13 06:44:07 +00:00
  • b9b3cdb0c2 Accepting request 1274047 from devel:languages:python Dominique Leuenberger 2025-05-07 17:14:37 +00:00
  • d9baf5f7d0 - update to 0.11.8 * Preview features * \[airflow\] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR302, AIR311) * \[airflow\] Extend AIR301 rule * \[airflow\] Update existing AIR302 rules with better suggestions * \[refurb\] Mark fix as safe for readlines-in-for (FURB129) * [syntax-errors] nonlocal declaration at module level * [syntax-errors] Detect single starred expression assignment x = *y * Bug fixes * \[flake8-pyi\] Ensure Literal[None,] | Literal[None,] is not autofixed to None | None (PYI061) * \[flake8-use-pathlib\] Avoid suggesting Path.iterdir() for os.listdir with file descriptor (PTH208) * \[flake8-use-pathlib\] Fix PTH104 false positive when rename is passed a file descriptor * \[flake8-use-pathlib\] Fix PTH116 false positive when stat is passed a file descriptor * \[flake8-use-pathlib\] Fix PTH123 false positive when open is passed a file descriptor from a function call * \[pycodestyle\] Fix duplicated diagnostic in E712 * \[pylint\] Detect global declarations in module scope (PLE0118) * [syntax-errors] Make async-comprehension-in-sync-comprehension more specific * Configuration * Add option to disable typing_extensions imports * Documentation * Fix example syntax for the lint.pydocstyle.ignore-var-parameters option * Add fix safety sections (ASYNC116, FLY002, D200, RUF005, RUF017, RUF027, RUF028, RUF057) * Other changes * Add Python 3.14 to configuration options * Make syntax error for unparenthesized except tuples version specific to before 3.14 Ondřej Súkup 2025-05-02 15:34:54 +00:00
  • eddb95d3a1 Accepting request 1272955 from devel:languages:python Dominique Leuenberger 2025-04-29 14:39:31 +00:00
  • 4521a5465e - update to 0.11.7: * \[airflow\] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR301) * \[perflint\] Implement fix for manual-dict-comprehension (PERF403) * [syntax-errors] Make duplicate parameter names a semantic error * \[flake8-type-checking\] Visit keyword arguments in checks involving typing.cast/typing.NewType arguments * \[pyupgrade\] Preserve parenthesis when fixing native literals containing newlines (UP018) * \[refurb\] Mark the FURB161 fix unsafe except for integers and booleans * Avoid adding whitespace to the end of a docstring after an escaped quote * Raise syntax error when \ is at end of file * [airflow] Add missing AIR302 attribute check * [airflow] Expand module path check to individual symbols (AIR302) * [airflow] Extract AIR312 from AIR302 rules (AIR302, AIR312) * [airflow] Update oudated AIR301, AIR302 rules * [syntax-errors] Async comprehension in sync comprehension * [syntax-errors] Check annotations in annotated assignments * [syntax-errors] Extend annotation checks to await * Bug fixes * [flake8-pie] Avoid false positive for multiple assignment with auto() (PIE796) * Rule changes * [ruff] Fix RUF100 to detect unused file-level noqa directives with specific codes * [flake8-pytest-style] Avoid false positive for legacy form of pytest.raises (PT011) * Documentation * Fix formatting of "See Style Guide" link * [ruff] Implement invalid-rule-code as RUF102 Dirk Mueller 2025-04-27 14:52:54 +00:00
  • 9cebc6b947 Accepting request 1271168 from devel:languages:python Ana Guerrero 2025-04-22 15:25:43 +00:00
  • 04ca5345fb - update to 0.11.6 * Preview features * Avoid adding whitespace to the end of a docstring after an escaped quote * [airflow] Extract AIR311 from AIR301 rules (AIR301, AIR311) * Bug fixes * Raise syntax error when \ is at end of file Ondřej Súkup 2025-04-21 12:51:48 +00:00
  • 79b7886815 Accepting request 1268673 from devel:languages:python Ana Guerrero 2025-04-14 10:55:37 +00:00
  • 75b0f23e4f - update to 0.11.5 * Preview features * [airflow] Add missing AIR302 attribute check * [airflow] Expand module path check to individual symbols (AIR302) * [airflow] Extract AIR312 from AIR302 rules (AIR302, AIR312) * [airflow] Update oudated AIR301, AIR302 rules * [syntax-errors] Async comprehension in sync comprehension * [syntax-errors] Check annotations in annotated assignments * [syntax-errors] Extend annotation checks to await * Bug fixes * [flake8-pie] Avoid false positive for multiple assignment with auto() (PIE796) * Rule changes * [ruff] Fix RUF100 to detect unused file-level noqa directives with specific codes * [flake8-pytest-style] Avoid false positive for legacy form of pytest.raises (PT011) * Documentation * Fix formatting of "See Style Guide" link Ondřej Súkup 2025-04-11 17:16:44 +00:00
  • bd434475a8 Accepting request 1267438 from devel:languages:python Ana Guerrero 2025-04-08 15:50:06 +00:00
  • 39806fad74 - update to 0.11.4 * Preview features * [ruff] Implement invalid-rule-code as RUF102 * [syntax-errors] Detect duplicate keys in match mapping patterns * [syntax-errors] Detect duplicate attributes in match class patterns * [syntax-errors] Detect invalid syntax in annotations * [airflow] Add more autofixes for AIR302 * [airflow] Move AIR301 to AIR002 * [airflow] Move AIR302 to AIR301 and AIR303 to AIR302 * [flake8-bandit] Mark str and list[str] literals as trusted input (S603) * [ruff] Support slices in RUF005 * [syntax-errors] Start detecting compile-time syntax errors * [syntax-errors] Duplicate type parameter names * [syntax-errors] Irrefutable case pattern before final case * [syntax-errors] Multiple assignments in case pattern * [syntax-errors] Single starred assignment target * [syntax-errors] Starred expressions in return, yield, and for * [syntax-errors] Store to or delete __debug__ * Bug fixes * [syntax-errors] Fix multiple assignment error for class fields in match patterns * Don't skip visiting non-tuple slice in typing.Annotated subscripts * Error instead of panic! when running Ruff from a deleted directory * [syntax-errors] Fix false positive for parenthesized tuple index * CLI * Check pyproject.toml correctly when it is passed via stdin * Configuration * [flake8-import-conventions] Add import numpy.typing as npt to default flake8-import-conventions.aliases * Documentation * [refurb] Document why UserDict, UserList, and UserString are preferred over dict, list, and str (FURB189) Ondřej Súkup 2025-04-06 19:01:15 +00:00
  • 4e7e433589 Accepting request 1255264 from devel:languages:python Ana Guerrero 2025-03-25 21:07:23 +00:00
  • f4037431cf - update to 0.11.2 * Preview features * [syntax-errors] Fix false-positive syntax errors emitted for annotations on variadic parameters before Python 3.11 * [airflow] Add chain, chain_linear and cross_downstream for AIR302 * [syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors * [syntax-errors] PEP 701 f-strings before Python 3.12 * [syntax-errors] Parenthesized context managers before Python 3.9 * [syntax-errors] Star annotations before Python 3.11 * [syntax-errors] Star expression in index before Python 3.11 * [syntax-errors] Unparenthesized assignment expressions in sets and indexes * Bug fixes * Server: Allow FixAll action in presence of version-specific syntax errors * [flake8-bandit] Allow raw strings in suspicious-mark-safe-usage (S308) * [refurb] Avoid panicking unwrap in verbose-decimal-constructor (FURB157) * [refurb] Fix starred expressions fix (FURB161) * Fix --statistics reporting for unsafe fixes * Rule changes * [flake8-executables] Allow uv run in shebang line for shebang-missing-python (EXE003) * CLI * Add --exit-non-zero-on-format * Documentation * Update Ruff tutorial to avoid non-existent fix in __init__.py * [flake8-gettext] Swap format- and printf-in-get-text-func-call examples (INT002, INT003) Ondřej Súkup 2025-03-22 14:30:24 +00:00
  • e5371f95b4 Accepting request 1253416 from devel:languages:python Ana Guerrero 2025-03-17 21:14:57 +00:00
  • 0116b6c39b - update to 0.11.0 - This is a follow-up to release 0.10.0. Because of a mistake in the release process, the requires-python inference changes were not included in that release. Ruff 0.11.0 now includes this change as well as the stabilization of the preview behavior for PGH004. Ondřej Súkup 2025-03-15 22:52:29 +00:00
  • 17683329e8 Accepting request 1253038 from devel:languages:python Dominique Leuenberger 2025-03-15 15:15:59 +00:00
  • 66fdcfc207 - update to 0.10.0 - check out https://astral.sh/blog/ruff-v0.10.0 for migration info - pretty long changelog please see * https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md * https://github.com/astral-sh/ruff/blob/main/BREAKING_CHANGES.md Ondřej Súkup 2025-03-14 10:53:51 +00:00
  • c74f86fc81 Accepting request 1251746 from devel:languages:python Ana Guerrero 2025-03-11 19:43:54 +00:00
  • 4d0dc08d14 fix ? Ondřej Súkup 2025-03-10 10:22:47 +00:00
  • 3cb75413e0 - update to 0.9.10 * Preview features * [ruff] Add new rule RUF059: Unused unpacked assignment * [syntax-errors] Detect assignment expressions before Python 3.8 * [syntax-errors] Named expressions in decorators before Python 3.9 * [syntax-errors] Parenthesized keyword argument names after Python 3.8 * [syntax-errors] Positional-only parameters before Python 3.8 * [syntax-errors] Tuple unpacking in return and yield before Python 3.8 * [syntax-errors] Type parameter defaults before Python 3.13 * [syntax-errors] Type parameter lists before Python 3.12 * [syntax-errors] except* before Python 3.11 * [syntax-errors] type statements before Python 3.12 * Bug fixes * Escape template filenames in glob patterns in configuration * [flake8-simplify] Exempt unittest context methods for SIM115 rule * Formatter: Fix syntax error location in notebooks * [pyupgrade] Do not offer fix when at least one target is global/nonlocal (UP028) * [flake8-builtins] Ignore variables matching module attribute names (A001) * [pylint] Convert code keyword argument to a positional argument in fix for (PLR1722) * CLI * Move rule code from description to check_name in GitLab output serializer * Documentation * [pydocstyle] Clarify that D417 only checks docstrings with an arguments section Ondřej Súkup 2025-03-10 10:21:38 +00:00
  • 3cba15ea19 - update to 0.9.7 * Preview features * Consider __new__ methods as special function type for enforcing class method or static method rules * [airflow] Improve the internal logic to differentiate deprecated symbols (AIR303) * [refurb] Manual timezone monkeypatching (FURB162) * [ruff] Implicit class variable in dataclass (RUF045) * [ruff] Skip singleton starred expressions for incorrectly-parenthesized-tuple-in-subscript (RUF031) * [refurb] Check for subclasses includes subscript expressions (FURB189) * Rule changes * [flake8-debugger] Also flag sys.breakpointhook and sys.__breakpointhook__ (T100) * [pycodestyle] Exempt site.addsitedir(...) calls (E402) * Formatter * Fix unstable formatting of trailing end-of-line comments of parenthesized attribute values * Server * Fix handling of requests received after shutdown message * Ignore source.organizeImports.ruff and source.fixAll.ruff code actions for a notebook cell * Include document specific debug info for ruff.printDebugInformation * Update server to return the debug info as string with ruff.printDebugInformation * CLI * Warn on invalid noqa even when there are no diagnostics * Better error messages while loading configuration extends * Bug fixes * [flake8-comprehensions] Handle trailing comma in C403 fix * [flake8-pyi] Avoid flagging custom-typevar-for-self on metaclass methods (PYI019) * [pydocstyle] Handle arguments with the same names as sections (D417) * [pylint] Correct ordering of arguments in fix for if-stmt-min-max (PLR1730) * [pylint] Do not offer fix for raw strings (PLE251) * [pyupgrade] Do not upgrade functional TypedDicts with private field names to the class-based syntax (UP013) * [pyupgrade] Handle micro version numbers correctly (UP036) * [pyupgrade] Unwrap unary expressions correctly (UP018) Ondřej Súkup 2025-03-04 13:47:29 +00:00
  • 6833036aae Accepting request 1248763 from devel:languages:python Dominique Leuenberger 2025-02-27 13:50:21 +00:00
  • e35796caee - Update to 0.9.7 * Consider __new__ methods as special function type for enforcing class method or static method rules (#13305) * [airflow] Improve the internal logic to differentiate deprecated symbols (AIR303) (#16013) * [refurb] Manual timezone monkeypatching (FURB162) (#16113) * [ruff] Implicit class variable in dataclass (RUF045) (#14349) * [ruff] Skip singleton starred expressions for incorrectly-\ parenthesized-tuple-in-subscript (RUF031) (#16083) * [refurb] Check for subclasses includes subscript expressions (FURB189) (#16155) * [flake8-debugger] Also flag sys.breakpointhook and sys.__breakpointhook__ (T100) (#16191) * [pycodestyle] Exempt site.addsitedir(...) calls (E402) (#16251) * Fix unstable formatting of trailing end-of-line comments of parenthesized attribute values (#16187) * Fix handling of requests received after shutdown message (#16262) * Ignore source.organizeImports.ruff and source.fixAll.ruff code actions for a notebook cell (#16154) * Include document specific debug info for ruff.printDebugInformation (#16215) * Update server to return the debug info as string with ruff.printDebugInformation (#16214) * Warn on invalid noqa even when there are no diagnostics (#16178) * Better error messages while loading configuration extends (#15658) * [flake8-comprehensions] Handle trailing comma in C403 fix (#16110) * [flake8-pyi] Avoid flagging custom-typevar-for-self on metaclass methods (PYI019) (#16141) * [pydocstyle] Handle arguments with the same names as sections (D417) (#16011) * [pylint] Correct ordering of arguments in fix for if-stmt-min-max (PLR1730) (#16080) * [pylint] Do not offer fix for raw strings (PLE251) (#16132) * [pyupgrade] Do not upgrade functional TypedDicts with private field Markéta Machová 2025-02-26 16:17:12 +00:00
  • d8cd5c9e4d Accepting request 1244821 from devel:languages:python Ana Guerrero 2025-02-11 20:21:15 +00:00
  • ed27560117 - update to 0.9.6 * Preview features * [airflow] Add external_task.{ExternalTaskMarker, ExternalTaskSensor} for AIR302 * [flake8-builtins] Make strict module name comparison optional (A005) * [flake8-pyi] Extend fix to Python <= 3.9 for redundant-none-literal (PYI061) * [pylint] Also report when the object isn't a literal (PLE1310) * [ruff] Implement indented-form-feed (RUF054) * [ruff] Skip type definitions for missing-f-string-syntax (RUF027) * Rule changes * [flake8-annotations] Correct syntax for typing.Union in suggested return type fixes for ANN20x rules * [flake8-builtins] Match upstream module name comparison (A005) * [flake8-comprehensions] Detect overshadowed list/set/dict, ignore variadics and named expressions (C417) * [flake8-pie] Remove following comma correctly when the unpacked dictionary is empty (PIE800) * [flake8-simplify] Only trigger SIM401 on known dictionaries * [pylint] Do not report calls when object type and argument type mismatch, remove custom escape handling logic (PLE1310) * [pyupgrade] Comments within parenthesized value ranges should not affect applicability (UP040) * [pyupgrade] Don't introduce invalid syntax when upgrading old-style type aliases with parenthesized multiline values (UP040) * [pyupgrade] Ensure we do not rename two type parameters to the same name (UP049) * [pyupgrade] [ruff] Don't apply renamings if the new name is shadowed in a scope of one of the references to the binding (UP049, RUF052) * [ruff] Update RUF009 to behave similar to B008 and ignore attributes with immutable types * Server * Root exclusions in the server to project root * Bug fixes * [flake8-datetime] Ignore .replace() calls while looking for .astimezone * [flake8-type-checking] Avoid TC004 false positive where the runtime definition is provided by __getattr__ * Documentation * Improve ruff-lsp migration document * Undeprecate ruff.nativeServer Ondřej Súkup 2025-02-10 17:09:06 +00:00
  • 16f022c319 Accepting request 1244445 from devel:languages:python Ana Guerrero 2025-02-10 16:23:03 +00:00
  • 861dc03542 - update to 0.9.5 * Preview features * Recognize all symbols named TYPE_CHECKING for in_type_checking_block * [flake8-comprehensions] Handle builtins at top of file correctly for unnecessary-dict-comprehension-for-iterable (C420) * [flake8-logging] .exception() and exc_info= outside exception handlers (LOG004, LOG014) * [flake8-pyi] Fix incorrect behaviour of custom-typevar-return-type preview-mode autofix if typing was already imported (PYI019) * [flake8-pyi] Fix more complex cases (PYI019) * [flake8-pyi] Make PYI019 autofixable for .py files in preview mode as well as stubs * [flake8-pyi] Remove type parameter correctly when it is the last (PYI019) * [pylint] Fix missing parens in unsafe fix for unnecessary-dunder-call (PLC2801) * [pyupgrade] Better messages and diagnostic range (UP015) * [pyupgrade] Rename private type parameters in PEP 695 generics (UP049) * [refurb] Also report non-name expressions (FURB169) * [refurb] Mark fix as unsafe if there are comments (FURB171) * [ruff] Classes with mixed type variable style (RUF053) * [airflow] BashOperator has been moved to airflow.providers.standard.operators.bash.BashOperator (AIR302) * [flake8-pyi] Add autofix for unused-private-type-var (PYI018) * [flake8-pyi] Significantly improve accuracy of PYI019 if preview mode is enabled * Rule changes * Preserve triple quotes and prefixes for strings * [flake8-comprehensions] Skip when TypeError present from too many (kw)args for C410,C411, and C418 * [flake8-pyi] Rename PYI019 and improve its diagnostic message * [pep8-naming] Ignore @override methods (N803) * [pyupgrade] Reuse replacement logic from UP046 and UP047 to preserve more comments (UP040) * [ruff] Analyze deferred annotations before enforcing mutable-(data)class-default and function-call-in-dataclass-default-argument (RUF008,RUF009,RUF012) * [pycodestyle] Exempt sys.path += ... calls (E402) * Configuration * Config error only when flake8-import-conventions alias conflicts with isort.required-imports bound name * Workaround Even Better TOML crash related to allOf * Bug fixes Ondřej Súkup 2025-02-09 01:50:41 +00:00
  • b656af0850 Accepting request 1243319 from devel:languages:python Ana Guerrero 2025-02-07 21:56:51 +00:00
  • 2a3dd0bc9d - Update to 0.9.4 * Preview features - [airflow] Extend airflow context parameter check for BaseOperator.execute (AIR302) (#15713) - [airflow] Update AIR302 to check for deprecated context keys (#15144) - [flake8-bandit] Permit suspicious imports within stub files (S4) (#15822) - [pylint] Do not trigger PLR6201 on empty collections (#15732) - [refurb] Do not emit diagnostic when loop variables are used outside loop body (FURB122) (#15757) - [ruff] Add support for more re patterns (RUF055) (#15764) - [ruff] Check for shadowed map before suggesting fix (RUF058) (#15790) - [ruff] Do not emit diagnostic when all arguments to zip() are variadic (RUF058) (#15744) - [ruff] Parenthesize fix when argument spans multiple lines for unnecessary-round (RUF057) (#15703) * Rule changes - Preserve quote style in generated code (#15726, #15778, #15794) - [flake8-bugbear] Exempt NewType calls where the original type is immutable (B008) (#15765) - [pylint] Honor banned top-level imports by TID253 in PLC0415. (#15628) - [pyupgrade] Ignore is_typeddict and TypedDict for deprecated-import (UP035) (#15800) * CLI - Fix formatter warning message for flake8-quotes option (#15788) - Implement tab autocomplete for ruff config (#15603) * Bug fixes - [flake8-comprehensions] Do not emit unnecessary-map diagnostic when lambda has different arity (C417) (#15802) - [flake8-comprehensions] Parenthesize sorted when needed for unnecessary-call-around-sorted (C413) (#15825) - [pyupgrade] Handle end-of-line comments for quoted-annotation (UP037) (#15824) * Documentation - Add missing config docstrings (#15803) - Add references to trio.run_process and anyio.run_process (#15761) - Use uv init --lib in tutorial (#15718) Markéta Machová 2025-02-05 11:19:56 +00:00
  • 3de1ae453e Accepting request 1240140 from devel:languages:python Dominique Leuenberger 2025-01-25 18:10:06 +00:00
  • b69f8075ef - Upade to 0.9.3 * Preview features * [airflow] Argument fail_stop in DAG has been renamed as fail_fast (AIR302) * [airflow] Extend AIR303 with more symbols * [flake8-bandit] Report all references to suspicious functions (S3) * [flake8-pytest-style] Do not emit diagnostics for empty for loops (PT012, PT031) * [flake8-simplify] Avoid double negations (SIM103) * [pyflakes] Fix infinite loop with unused local import in __init__.py (F401) * [pylint] Do not report methods with only one EM101-compatible raise (PLR6301) * [pylint] Implement redefined-slots-in-subclass (W0244) * [pyupgrade] Add rules to use PEP 695 generics in classes and functions (UP046, UP047) * [refurb] Implement for-loop-writes (FURB122) * [ruff] Implement needless-else clause (RUF047) * [ruff] Implement starmap-zip (RUF058) * Rule changes * [flake8-bugbear] Do not raise error if keyword argument is present and target-python version is less or equals than 3.9 (B903) * [flake8-comprehensions] strip parentheses around generators in unnecessary-generator-set (C401) * [flake8-pytest-style] Rewrite references to .exception (PT027) * [flake8-simplify] Mark fixes as unsafe (SIM201, SIM202) * [flake8-type-checking] Fix some safe fixes being labeled unsafe (TC006,TC008) * [isort] Omit trailing whitespace in unsorted-imports (I001) * [pydoclint] Allow ignoring one line docstrings for DOC rules * [pyflakes] Apply redefinition fixes by source code order (F811) * [pyflakes] Avoid removing too many imports in redefined-while-unused (F811) * [pyflakes] Group redefinition fixes by source statement (F811) * [pylint] Include name of base class in message for redefined-slots-in-subclass (W0244) * [ruff] Update fix for RUF055 to use var == value * Formatter * Fix bracket spacing for single-element tuples in f-string expressions * Fix unstable f-string formatting for expressions containing a trailing comma Ondřej Súkup 2025-01-24 10:46:35 +00:00
  • ce6766c0af Accepting request 1238688 from devel:languages:python Ana Guerrero 2025-01-20 16:14:09 +00:00
  • 794a8f3c19 - Update to 0.9.2 * Preview features * [airflow] Fix typo "security_managr" to "security_manager" (AIR303) * [airflow] extend and fix AIR302 rules * [fastapi] Handle parameters with Depends correctly (FAST003) * [flake8-pytest-style] Implement pytest.warns diagnostics (PT029, PT030, PT031) * [flake8-pytest-style] Test function parameters with default arguments (PT028) * [flake8-type-checking] Avoid false positives for | in TC008 * Rule changes * [flake8-todos] Allow VSCode GitHub PR extension style links in missing-todo-link (TD003) * [pyflakes] Show syntax error message for F722 * Formatter * Fix curly bracket spacing around f-string expressions containing curly braces * Fix joining of f-strings with different quotes when using quote style Preserve * Server * Avoid indexing the same workspace multiple times * Display context for ruff.configuration errors * Configuration * Remove flatten to improve deserialization error messages * Bug fixes * Parse triple-quoted string annotations as if parenthesized * [fastapi] Update Annotated fixes (FAST002) * [flake8-bandit] Check for builtins instead of builtin (S102, PTH123) * [flake8-pathlib] Fix --select for os-path-dirname (PTH120) * [ruff] Fix false positive on global keyword (RUF052) Ondřej Súkup 2025-01-18 13:09:00 +00:00
  • 1b273a6992 Accepting request 1237200 from devel:languages:python Ana Guerrero 2025-01-14 15:21:17 +00:00
  • c84eba1029 - update to 0.9.1 * Preview features * [pycodestyle] Run too-many-newlines-at-end-of-file on each cell in notebooks (W391) * [ruff] Omit diagnostic for shadowed private function parameters in used-dummy-variable (RUF052) * Rule changes * [flake8-bugbear] Improve assert-raises-exception message (B017) * Formatter * Preserve trailing end-of line comments for the last string literal in implicitly concatenated strings * Server * Fix a bug where the server and client notebooks were out of sync after reordering cells * Bug fixes * [flake8-pie] Correctly remove wrapping parentheses (PIE800) * [pyupgrade] Handle comments and multiline expressions correctly (UP037) Ondřej Súkup 2025-01-12 22:09:20 +00:00
  • 091bedcd6d Accepting request 1236832 from devel:languages:python Ana Guerrero 2025-01-12 10:08:44 +00:00
  • 2153bcc2c8 - update to 0.9.0: * This release introduces the new 2025 stable style (#13371), stabilizing the following changes: * Format expressions in f-string elements * Alternate quotes for strings inside f-strings * Preserve the casing of hex codes in f-string debug expressions * Choose the quote style for each string literal in an implicitly concatenated f-string rather than for the entire string * Automatically join an implicitly concatenated string into a single string literal if it fits on a single line * Remove the ISC001 incompatibility warning * Prefer parenthesizing the assert message over breaking the assertion expression * Automatically parenthesize over-long if guards in match case clauses * More consistent formatting for match case patterns * Avoid unnecessary parentheses around return type annotations * Keep the opening parentheses on the same line as the if keyword for comprehensions where the condition has a leading comment * More consistent formatting for with statements with a single context manager for Python 3.8 or older * Correctly calculate the line-width for code blocks in docstrings when using max-doc-code-line-length = "dynamic" - update to 0.8.6 * Preview features * [format]: Preserve multiline implicit concatenated strings in docstring positions * [ruff] Add rule to detect empty literal in deque call (RUF025) Dirk Mueller 2025-01-10 10:48:55 +00:00
  • e77ad89db4 Accepting request 1235139 from devel:languages:python Ana Guerrero 2025-01-07 19:49:57 +00:00