From b751618c15d1a1857c1da9d8ce4989c2e6bfa17d277e58add123ac90ad4b2126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 13 Sep 2024 16:25:39 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main python-ruff revision d331931a2de8e0bd1206bd15fdbad50b --- .gitattributes | 23 + _service | 9 + python-ruff.changes | 1552 +++++++++++++++++++++++++++++++++++++++++++ python-ruff.spec | 61 ++ ruff-0.5.1.tar.gz | 3 + vendor.tar.zst | 3 + 6 files changed, 1651 insertions(+) create mode 100644 .gitattributes create mode 100644 _service create mode 100644 python-ruff.changes create mode 100644 python-ruff.spec create mode 100644 ruff-0.5.1.tar.gz create mode 100644 vendor.tar.zst diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_service b/_service new file mode 100644 index 0000000..26a825d --- /dev/null +++ b/_service @@ -0,0 +1,9 @@ + + + + ruff-*.tar.gz + zst + true + + + diff --git a/python-ruff.changes b/python-ruff.changes new file mode 100644 index 0000000..6f2060c --- /dev/null +++ b/python-ruff.changes @@ -0,0 +1,1552 @@ +------------------------------------------------------------------- +Mon Jul 8 09:48:47 UTC 2024 - Dirk Müller + +- update to 0.5.1: + * Enable token-based rules on source with syntax errors + * \[`flake8-bandit`\] Detect `httpx` for `S113` + * \[`numpy`\] Update `NPY201` to include exception deprecations + * \[`pylint`\] Generate autofix for `duplicate-bases` + (`PLE0241`) + * Avoid syntax error notification for source code actions + * Consider the content of the new cells during notebook sync + * Fix replacement edit range computation + * Disable auto-fix when source has syntax errors + * Fix cache key collisions for paths with separators + * Make `requires-python` inference robust to `==` + * Use char-wise width instead of `str`-width + * \[`pycodestyle`\] Avoid `E275` if keyword followed by comma + * \[`pycodestyle`\] Avoid `E275` if keyword is followed by a + semicolon + * \[`pylint`\] Skip dummy variables for `PLR1704` + +------------------------------------------------------------------- +Mon Jul 1 08:21:42 UTC 2024 - Dirk Müller + +- update to 0.5.0: + * Selecting ALL now excludes deprecated rules + * The released archives now include an extra level of nesting, which + can be removed with --strip-components=1 when untarring. + * The release artifact's file name no longer includes the version + tag. This enables users to install via /latest URLs on GitHub. + * The diagnostic ranges for some flake8-bandit rules were modified + * for details see https://github.com/astral-sh/ruff/releases/tag/0.5.0 + +------------------------------------------------------------------- +Mon Jun 24 09:27:54 UTC 2024 - Ondřej Súkup + +- update to 0.4.10 + * Parser + * Implement re-lexing logic for better error recovery + * Rule changes + * [flake8-copyright] Update CPY001 to check the first 4096 bytes instead of 1024 + * [pycodestyle] Update E999 to show all syntax errors instead of just the first one + * Server + * Add tracing setup guide to Helix documentation + * Add tracing setup guide to Neovim documentation + * Defer notebook cell deletion to avoid an error message + * Security + * Guard against malicious ecosystem comment artifacts + +------------------------------------------------------------------- +Mon Jun 17 09:33:37 UTC 2024 - Dirk Müller + +- update to 0.4.9: + * Preview features + + [pylint] Implement consider-dict-items (C0206) (#11688) + + [refurb] Implement repeated-global (FURB154) (#11187) + * Rule changes + + [pycodestyle] Adapt fix for E203 to work identical to ruff + format (#10999) + * Formatter + + Fix formatter instability for lines only consisting of + zero-width characters (#11748) + * Server + + Add supported commands in server capabilities (#11850) + + Use real file path when available in ruff server (#11800) + + Improve error message when a command is run on an unavailable + document (#11823) + + Introduce the ruff.printDebugInformation command (#11831) + + Tracing system now respects log level and trace level, with + options to log to a file (#11747) + + Handle non-printable characters in diff view (#11687) + * Bug fixes + + [refurb] Avoid suggesting starmap when arguments are used + outside call (FURB140) + + [flake8-bugbear] Avoid panic in B909 when checking large + loop blocks (#11772) + + [refurb] Fix misbehavior of operator.itemgetter when getter + param is a tuple (FURB118) (#11774) + +------------------------------------------------------------------- +Thu Jun 6 09:28:05 UTC 2024 - Ondřej Súkup + +- update ruff: +* 0.4.8 + * Performance + * Linter performance has been improved by around 10% on some microbenchmarks + * by refactoring the lexer and parser to maintain synchronicity between them + * Preview features + * [flake8-bugbear] Implement return-in-generator (B901) + * [flake8-pyi] Implement PYI063 + * [pygrep_hooks] Check blanket ignores via file-level pragmas (PGH004) + * Rule changes + * [pyupgrade] Update UP035 for Python 3.13 and the latest version of typing_extensions + * [numpy] Update NPY001 rule for NumPy 2.0 + * Server + * Formatting a document with syntax problems no longer spams a visible error popup + * CLI + * Add RDJson support for --output-format flag + * Bug fixes + * [pyupgrade] Write empty string in lieu of panic when fixing UP032 + * [flake8-simplify] Simplify double negatives in SIM103 + * Ensure the expression generator adds a newline before type statements + * Respect per-file ignores for blanket and redirected noqa rules +* 0.4.7 + * Preview features + * [flake8-pyi] Implement PYI064 + * [flake8-pyi] Implement PYI066 + * [flake8-pyi] Implement PYI057 + * [pyflakes] Enable F822 in __init__.py files by default + * Formatter + * Fix incorrect placement of trailing stub function comments + * Server + * Respect file exclusions in ruff server + * Add support for documents not exist on disk + * Add Vim and Kate setup guide for ruff server + * Bug fixes + * Avoid removing newlines between docstring headers and rST blocks + * Infer indentation with imports when logical indent is absent + * Use char index rather than position for indent slice + * [flake8-comprehension] Strip parentheses around generators in C400 + * Mark repeated-isinstance-calls as unsafe on Python 3.10 and later +* 0.4.6 + * Breaking changes + * Use project-relative paths when calculating GitLab fingerprints + * Preview features + * [flake8-async] Sleep with >24 hour interval should usually sleep forever (ASYNC116) + * Rule changes + * [numpy] Add missing functions to NumPy 2.0 migration rule + * [mccabe] Consider irrefutable pattern similar to if .. else for C901 + * Consider match-case statements for C901, PLR0912, and PLR0915 + * Remove empty strings when converting to f-string (UP032) + * [flake8-bandit] request-without-timeout should warn for requests.request + * [flake8-self] Ignore sunder accesses in flake8-self rules + * [pyupgrade] Lint for TypeAliasType usages (UP040) + * Server + * Respect excludes in ruff server configuration discovery + * Use default settings if initialization options is empty or not provided + * ruff server correctly treats .pyi files as stub files + * ruff server searches for configuration in parent directories + * ruff server: An empty code action filter no longer returns notebook source actions + * Bug fixes + * [flake8-logging-format] Fix autofix title in logging-warn (G010) + * [refurb] Avoid recommending operator.itemgetter with dependence on lambda arguments + * [flake8-simplify] Avoid recommending context manager in __enter__ implementations + * Create intermediary directories for --output-file + * Propagate reads on global variables + * Treat all singledispatch arguments as runtime-required +* 0.4.5 + * Ruff's language server is now in Beta + * Rule changes + * [flake8-future-annotations] Reword future-rewritable-type-annotation (FA100) message + * [pycodestyle] Consider soft keywords for E27 rules + * [pyflakes] Recommend adding unused import bindings to __all__ + * [pyflakes] Update documentation and deprecate ignore_init_module_imports + * [pyupgrade] Mark quotes as unnecessary for non-evaluated annotations + * Formatter + * Avoid multiline quotes warning with quote-style = preserve + * Server + * Support Jupyter Notebook files + * Support noqa comment code actions + * Fix automatic configuration reloading + * Fix several issues with configuration in Neovim and Helix + * CLI + * Add --output-format as a CLI option for ruff config + * Bug fixes + * Avoid PLE0237 for property with setter + * Avoid TCH005 for if stmt with elif/else block + * Avoid flagging __future__ annotations as required for non-evaluated type annotations + * Check for ruff executable in 'bin' directory as installed by 'pip install --target'. + * Sort edits prior to deduplicating in quotation fix + * Treat escaped newline as valid sequence + * [flake8-pie] Preserve parentheses in unnecessary-dict-kwargs + * [pylint] Ignore __slots__ with dynamic values + * [pylint] Remove try body from branch counting + * [refurb] Respect operator precedence in FURB110 + * Documentation + * Add --preview to the README + * Add Python 3.13 to list of allowed Python versions + * Simplify Neovim setup documentation + * Update CONTRIBUTING.md to reflect the new parser + * Update server documentation with new migration guide + * [pycodestyle] Clarify motivation for E713 and E714 + * [pyflakes] Update docs to describe WAI behavior (F541) + * [pylint] Clearly indicate what is counted as a branch + +------------------------------------------------------------------- +Mon May 13 11:08:03 UTC 2024 - Ondřej Súkup + +- update to 0.4.4 + * Preview features + * [pycodestyle] Ignore end-of-line comments when determining blank line rules + * [pylint] Detect pathlib.Path.open calls in unspecified-encoding (PLW1514) + * [flake8-pyi] Implement PYI059 (generic-not-last-base-class) + * [flake8-pyi] Implement PYI062 (duplicate-literal-member) + * Rule changes + * [flake8-boolean-trap] Allow passing booleans as positional-only arguments in code such as set(True) + * [flake8-bugbear] Ignore enum classes in cached-instance-method (B019) + * Server + * Expand tildes when resolving Ruff server configuration file + * Fix ruff server hanging after Neovim closes + * Editor settings are used by default if no file-based configuration exists + * Bug fixes + * [pylint] Consider with statements for too-many-branches (PLR0912) + * [flake8-blind-except, tryceratops] Respect logged and re-raised expressions in nested statements (BLE001, TRY201) + * Recognise assignments such as __all__ = builtins.list(["foo", "bar"]) as valid __all__ definitions + +------------------------------------------------------------------- +Mon May 6 12:06:13 UTC 2024 - Ondřej Súkup + +- update to 0.4.3 + * Enhancements + * Add support for PEP 696 syntax + * Preview features + * [refurb] Use function range for reimplemented-operator diagnostics + * [refurb] Ignore methods in reimplemented-operator (FURB118) + * [refurb] Implement fstring-number-format (FURB116) + * [ruff] Implement redirected-noqa (RUF101) + * [pyflakes] Distinguish between first-party and third-party imports for fix suggestions + * Rule changes + * [flake8-bugbear] Ignore non-abstract class attributes when enforcing B024 + * [flake8-logging] Include inline instantiations when detecting loggers + * [pylint] Also emit PLR0206 for properties with variadic parameters + * [ruff] Detect duplicate codes as part of unused-noqa (RUF100) + * [flake8-pyi] Allow for overloaded __exit__ and __aexit__ definitions (PYI036) + * [pyupgrade] Catch usages of "%s" % var and provide an unsafe fix (UP031) + * [refurb] Implement new rule that suggests min/max over sorted() (FURB192) + * Formatter + * Avoid multiline expression if format specifier is present + * LSP + * Write ruff server setup guide for Helix + * ruff server no longer hangs after shutdown + * ruff server reads from a configuration TOML file in the user configuration directory if no local configuration exists + * ruff server respects per-file-ignores configuration + * ruff server: Support a custom TOML configuration file + * ruff server: Support setting to prioritize project configuration over editor configuration + * Fix an issue with missing diagnostics for Neovim and Helix + * Implement hover documentation for noqa codes + * Introduce common Ruff configuration options with new server settings + * Bug fixes + * Avoid debug assertion around NFKC renames + * [pyflakes] Prioritize redefined-while-unused over unused-import + * [ruff] Respect async expressions in comprehension bodies + * [pygrep_hooks] Fix blanket-noqa panic when last line has noqa with no newline (PGH004) + * [perflint] Ignore list-copy recommendations for async for loops + * [pyflakes] Improve invalid-print-syntax documentation + * Use macos-12 for building release wheels to enable macOS 11 compatibility + * [flake8-blind-expect] Allow raise from in BLE001 + * [flake8-pyi] Allow simple assignments to None in enum class scopes (PYI026) + * [flake8-simplify] Avoid raising SIM911 for non-zip attribute calls + * [refurb] Avoid operator.itemgetter suggestion for single-item tuple + * [ruff] Respect per-file-ignores for RUF100 with no other diagnostics + * [ruff] Fix async comprehension false positive (RUF029) + * Performance + * Avoid allocations for isort module names + * Build a separate ARM wheel for macOS + * Use matchit to resolve per-file settings + * Documentation + * [flake8-bugbear] Document explicitly disabling strict zip (B905) + * [flake8-type-checking] Mention lint.typing-modules in TCH001, TCH002, and TCH003 + * [isort] Improve documentation around custom isort sections + * [pylint] Fix documentation oversight for invalid-X-returns + +------------------------------------------------------------------- +Tue Apr 23 08:02:10 UTC 2024 - Ondřej Súkup + +- update to 0.4.1 + * A new, hand-written parser + * A new language server in Rust + * ruff server is only in alpha, but it has a lot of features that you can try out today: + * Lints Python files automatically and shows quick-fixes when available + * Formats Python files, with support for range formatting + * Comes with commands for quickly performing actions: ruff.applyAutofix, ruff.applyFormat, and ruff.applyOrganizeImports + * Supports source.fixAll and source.organizeImports source actions + * Automatically reloads your project configuration when you change it + * To setup ruff server with your editor, refer to the README.md. + * Preview features + * [pylint] Implement invalid-hash-returned (PLE0309) + * [pylint] Implement invalid-index-returned (PLE0305) + * [pycodestyle] Do not trigger E3 rules on defs following a function/method with a dummy body + * [pylint] Implement invalid-bytes-returned (E0308) + * [pylint] Implement invalid-length-returned (E0303) + * [pylint] Implement self-cls-assignment (W0642) + * [pylint] Omit stubs from invalid-bool and invalid-str-return-type + * [ruff] New rule unused-async (RUF029) to detect unneeded async keywords on functions + * Rule changes + * [flake8-bandit] Allow urllib.request.urlopen calls with static Request argument (S310) + * [flake8-bugbear] Treat raise NotImplemented-only bodies as stub functions (B006) + * [flake8-slots] Respect same-file Enum subclasses (SLOT000) + * [pylint] Support inverted comparisons (PLR1730) + * Linter + * Improve handling of builtin symbols in linter rules + * Improve display of rules in --show-settings + * Improve inference capabilities of the BuiltinTypeChecker + * Resolve classes and functions relative to script name + * Improve performance of RuleTable::any_enabled + * Server + * This section is devoted to updates for our new language server, written in Rust. + * Enable ruff-specific source actions + * Refreshes diagnostics for open files when file configuration is changed + * Important errors are now shown as popups + * Introduce settings for directly configuring the linter and formatter + * Resolve configuration for each document individually + * Write a setup guide for Neovim + * Configuration + * Add RUFF_OUTPUT_FILE environment variable support + * Bug fixes + * [pylint] Allow NoReturn-like functions for __str__, __len__, etc. (PLE0307) + * Parser: Use empty range when there's "gap" in token source + * [ruff] Ignore stub functions in unused-async (RUF029) + * Parser: Expect indented case block instead of match stmt + * Avoid non-augmented-assignment for reversed, non-commutative operators (PLR6104) + * Limit commutative non-augmented-assignments to primitive data types (PLR6104) + * Respect per-file-ignores for RUF100 on blanket # noqa + * Consider if expression for parenthesized with items parsing + * Consider binary expr for parenthesized with items parsing + * Reset FOR_TARGET context for all kinds of parentheses + +------------------------------------------------------------------- +Fri Apr 12 08:55:20 UTC 2024 - Ondřej Súkup + +- update to 0.3.7 + * Preview features + * [flake8-bugbear] Implement loop-iterator-mutation (B909) + * [pylint] Implement rule to prefer augmented assignment (PLR6104) + * [pylint] Implement bad-staticmethod-argument (PLW0211) + * [pylint] Implement if-stmt-min-max (PLR1730, PLR1731) + * [pyupgrade] Replace str,Enum multiple inheritance with StrEnum UP042 + * [refurb] Implement if-expr-instead-of-or-operator (FURB110) + * [refurb] Implement int-on-sliced-str (FURB166) + * [refurb] Implement write-whole-file (FURB103) + * [refurb] Support itemgetter in reimplemented-operator (FURB118) + * [flake8_comprehensions] Add sum/min/max to unnecessary comprehension check (C419) + * Rule changes + * [pydocstyle] Require capitalizing docstrings where the first sentence is a single word (D403) + * [pycodestyle] Ignore annotated lambdas in class scopes (E731) + * [flake8-pyi] Various improvements to PYI034 + * [flake8-slots] Flag subclasses of call-based typing.NamedTuples as well as subclasses of collections.namedtuple() (SLOT002) + * [pyflakes] Allow forward references in class bases in stub files (F821) + * [pygrep-hooks] Improve blanket-noqa error message (PGH004) + * CLI + * Support FORCE_COLOR env var + * Configuration + * Support negated patterns in [extend-]per-file-ignores + * Bug fixes + * Avoid TOCTOU errors in cache initialization + * [pylint] Recode nan-comparison rule to W0177 + * [pylint] Reverse min-max logic in if-stmt-min-max + * [flake8-import-conventions] Accept non-aliased (but correct) import in unconventional-import-alias (ICN001) + * [flake8-quotes] Add semantic model flag when inside f-string replacement field + * [pep8-naming] Recursively resolve TypeDicts for N815 violations + * [flake8-quotes] Respect Q00* ignores in flake8-quotes rules + * [flake8-simplify] Show negated condition in needless-bool diagnostics (SIM103) + * [ruff] Use within-scope shadowed bindings in asyncio-dangling-task (RUF006) + * [flake8-pytest-style] Fix single-tuple conversion in pytest-parametrize-values-wrong-type (PT007) + * [flake8-return] Ignore assignments to annotated variables in unnecessary-assign (RET504) + * [refurb] Do not allow any keyword arguments for read-whole-file in rb mode (FURB101) + * [pylint] Don't recommend decorating staticmethods with @singledispatch (PLE1519, PLE1520) + * [pydocstyle] Use section name range for all section-related docstring diagnostics + * Respect # noqa directives on __all__ openers + +------------------------------------------------------------------- +Tue Apr 9 21:33:19 UTC 2024 - Ondřej Súkup + +- update to 0.3.5 + * Preview features + * [pylint] Implement modified-iterating-set (E4703) + * [refurb] Implement for-loop-set-mutations (FURB142) + * [refurb] Implement unnecessary-from-float (FURB164) + * [refurb] Implement verbose-decimal-constructor (FURB157) + * Rule changes + * [flake8-comprehensions] Handled special case for C401 which also matches C416 + * [flake8-pyi] Mark unaliased-collections-abc-set-import fix as "safe" for more cases in stub files (PYI025) + * [numpy] Add row_stack to NumPy 2.0 migration rule + * [pycodestyle] Allow cell magics before an import (E402) + * [pycodestyle] Avoid blank line rules for the first logical line in cell + * Configuration + * Respected nested namespace packages + * [flake8-boolean-trap] Add setting for user defined allowed boolean trap + * Bug fixes + * Correctly handle references in __all__ definitions when renaming symbols in autofixes + * Track ranges of names inside __all__ definitions + * [flake8-bugbear] Avoid false positive for usage after continue (B031) + * [flake8-copyright] Accept commas in default copyright pattern + * [flake8-datetimez] Allow f-strings with %z for DTZ007 + * [flake8-pytest-style] Fix PT014 autofix for last item in list + * [flake8-quotes] Ignore Q000, Q001 when string is inside forward ref + * [isort] Always place non-relative imports after relative imports + * [isort] Respect Unicode characters in import sorting + * [pyflakes] Fix F821 false negatives when from __future__ import annotations is active (attempt 2) + * [pyflakes] Make unnecessary-lambda an always-unsafe fix + * [pylint] Fixed false-positive on the rule PLW1641 (eq-without-hash) + * [ruff] Fix panic in unused # noqa removal with multi-byte space (RUF100) + * Documentation + * Add PR title format to CONTRIBUTING.md + * Fix list markup to include blank lines required + * Put flake8-logging next to the other flake8 plugins in registry + * [flake8-bandit] Update warning message for rule S305 to address insecure block cipher mode use + * [flake8-bugbear] Document use of anonymous assignment in useless-expression + * [flake8-datetimez] Clarify error messages and docs for DTZ rules + * [pycodestyle] Use same before vs. after numbers for space-around-operator + * [ruff] Change quadratic-list-summation docs to use iadd consistently + +------------------------------------------------------------------- +Fri Mar 22 10:15:55 UTC 2024 - Ondřej Súkup + +- update ruff to 0.3.4 + * Preview features + * [flake8-simplify] Detect implicit else cases in needless-bool (SIM103) + * [pylint] Implement nan-comparison (PLW0117) + * [pylint] Implement nonlocal-and-global (E115) + * [pylint] Implement singledispatchmethod-function (PLE5120) + * [refurb] Implement list-reverse-copy (FURB187) + * Rule changes + * [flake8-pytest-style] Add automatic fix for pytest-parametrize-values-wrong-type (PT007) + * [pycodestyle] Allow SPDX license headers to exceed the line length (E501) + * Formatter + * Fix unstable formatting for trailing subscript end-of-line comment + * Bug fixes + * Avoid code comment detection in PEP 723 script tags + * Avoid incorrect tuple transformation in single-element case (C409) + * Bug fix: Prevent fully defined links name from being reformatted + * Consider raw source code for W605 + * Docs: Link inline settings when not part of options section + * Don't treat annotations as redefinitions in .pyi files + * Fix E231 bug: Inconsistent catch compared to pycodestyle, such as when dict nested in list + * Fix pylint upstream categories not showing in docs + * Add missing Options references to blank line docs + * 'Revert "F821: Fix false negatives in .py files when from __future__ import annotations is active "' + * Apply NFKC normalization to unicode identifiers in the lexer + * Avoid failures due to non-deterministic binding ordering + * [flake8-bugbear] Allow tuples of exceptions (B030) + * [flake8-quotes] Avoid syntax errors due to invalid quotes (Q000, Q002) + +------------------------------------------------------------------- +Mon Mar 18 13:45:45 UTC 2024 - Ondřej Súkup + +- update to 0.3.3 + * Preview features + * [flake8-bandit]: Implement S610 rule + * [pycodestyle] Implement blank-line-at-end-of-file (W391) + * [pycodestyle] Implement redundant-backslash (E502) + * [pylint] - implement redeclared-assigned-name (W0128) + * Rule changes + * [flake8_comprehensions] Handled special case for C400 which also matches C416 + * [flake8-bandit] Implement upstream updates for S311, S324 and S605 + * [pyflakes] Remove F401 fix for __init__ imports by default and allow opt-in to unsafe fix + * [pylint] Implement invalid-bool-return-type (E304) + * [pylint] Include builtin warnings in useless-exception-statement (PLW0133) + * CLI + * Add message on success to ruff check + * Bug fixes + * [PIE970] Allow trailing ellipsis in typing.TYPE_CHECKING + * Avoid TRIO115 if the argument is a variable + * [F811] Avoid removing shadowed imports that point to different symbols + * Fix F821 and F822 false positives in .pyi files + * Fix F821 false negatives in .py files when from __future__ import annotations is active + * Fix case where Indexer fails to identify continuation preceded by newline #10351 + * Sort hash maps in Settings display + * Track conditional deletions in the semantic model + * [C413] Wrap expressions in parentheses when negating + * [pycodestyle] Do not ignore lines before the first logical line in blank lines rules. + * [pycodestyle] Do not trigger E225 and E275 when the next token is a ')' + * [pylint] Avoid false-positive slot non-assignment for __dict__ (PLE0237) + * Gate f-string struct size test for Rustc < 1.76 + * Documentation + * Use ruff.toml format in README + * [RUF008] Make it clearer that a mutable default in a dataclass is only valid if it is typed as a ClassVar + * [pylint] Extend docs and test in invalid-str-return-type (E307) + * Remove . from check and format commands + +------------------------------------------------------------------- +Mon Mar 11 08:52:49 UTC 2024 - Ondřej Súkup + +- update to 0.3.2 + * Preview features + * Improve single-with item formatting for Python 3.8 or older + * Rule changes + * [pyupgrade] Allow fixes for f-string rule regardless of line length (UP032) + * [pycodestyle] Include actual conditions in E712 diagnostics + * Bug fixes + * Fix trailing kwargs end of line comment after slash + * Fix unstable with items formatting + * Avoid repeating function calls in f-string conversions + * Fix E203 false positive for slices in format strings + * Fix incorrect Parameter range for *args and **kwargs + * Treat typing.Annotated subscripts as type definitions + * 0.3.1 + * Preview features + * [pycodestyle] Fix E301 not triggering on decorated methods. + * [pycodestyle] Respect isort settings in blank line rules (E3*) + * [pycodestyle] Make blank lines in typing stub files optional (E3*) + * [pylint] Implement singledispatch-method (E1519) + * [pylint] Implement useless-exception-statement (W0133) + * Rule changes + * [flake8-debugger] Check for use of debugpy and ptvsd debug modules + * [pyupgrade] Generate diagnostic for all valid f-string conversions regardless of line length (UP032) + * [pep8_naming] Add fixes for N804 and N805 + * CLI + * Colorize the output of ruff format --diff + * Make --config and --isolated global flags + * Correctly expand tildes and environment variables in paths passed to --config + * Configuration + * Accept a PEP 440 version specifier for required-version + * Implement isort's default-section setting + * Bug fixes + * Remove trailing space from CapWords message + * Respect external codes in file-level exemptions + * [flake8-raise] Avoid false-positives for parens-on-raise with future.exception() (RSE102) + * [pylint] Add fix for unary expressions in PLC2801 + * [ruff] Fix RUF028 not allowing # fmt: skip on match cases + +------------------------------------------------------------------- +Fri Mar 8 16:57:10 UTC 2024 - Matej Cepl + +- Remove limitations on building (do not exclude any arch beforehand). + +------------------------------------------------------------------- +Wed Mar 6 14:20:44 UTC 2024 - Ondřej Súkup + +- update to 0.3.0 + * Preview features + * [flake8-bandit] Remove suspicious-lxml-import (S410) + * [pycodestyle] Allow os.environ modifications between imports (E402) + * [pycodestyle] Don't warn about a single whitespace character before a comma in a tuple (E203) + * Rule changes + * [eradicate] Detect commented out case statements (ERA001) + * [eradicate] Detect single-line code for try:, except:, etc. (ERA001) + * [flake8-boolean-trap] Allow boolean positionals in __post_init__ + * [flake8-copyright] Allow © in copyright notices + * [isort]: Use one blank line after imports in typing stub files + * [pylint] New Rule dict-iter-missing-items (PLE1141) + * [pylint] Ignore sys.version and sys.platform (PLR1714) + * [pyupgrade] Detect literals with unary operators (UP018) + * [ruff] Expand rule for list(iterable).pop(0) idiom (RUF015) + * 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 + * Remove blank lines before class docstrings + * Wrap multiple context managers in with parentheses when targeting Python 3.9 or newer + * Add a blank line after nested classes with a dummy body (...) in typing stub files + * Reduce vertical spacing for classes and functions with a dummy (...) body + * Add a blank line after the module docstring + * Parenthesize long type hints in assignments + * Preserve indent for single multiline-string call-expressions + * Normalize hex escape and unicode escape sequences + * Format module docstrings + * CLI + * Explicitly disallow extend as part of a --config flag + * Remove build from the default exclusion list + * Deprecate ruff , ruff --explain, ruff --clean, and ruff --generate-shell-completion + in favor of ruff check , ruff rule, ruff clean, and ruff generate-shell-completion + * Remove the deprecated CLI option --format from ruff rule and ruff linter + * Bug fixes + * [flake8-bugbear] Avoid adding default initializers to stubs (B006) + * [flake8-type-checking] Respect runtime-required decorators for function signatures + * [pycodestyle] Mark fixes overlapping with a multiline string as unsafe (W293) + * [pydocstyle] Trim whitespace when removing blank lines after section (D413) + * [pylint] Delete entire statement, including semicolons (PLR0203) + * [ruff] Avoid f-string false positives in gettext calls (RUF027) + * Fix ruff crashing on PowerPC systems because of too small page size + * Performance + * Add cold attribute to less likely printer queue branches in the formatter + * Skip unnecessary string normalization in the formatter + * Documentation + * Remove "Beta" Label from formatter documentation + * line-length option: fix link to pycodestyle.max-line-length + +------------------------------------------------------------------- +Tue Mar 5 14:12:37 UTC 2024 - Andreas Schwab + +- Enable build on riscv64 + +------------------------------------------------------------------- +Wed Feb 21 16:49:44 UTC 2024 - Ondřej Súkup + +- update to 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 + * [pycodestyle] Add blank line(s) rules (E301, E302, E303, E304, E305, E306) + * [refurb] Implement readlines_in_for (FURB129) + * Rule changes + * [ruff] Ensure closing parentheses for multiline sequences are always on their own line (RUF022, RUF023) + * [numpy] Add missing deprecation violations (NPY002) + * [flake8-bandit] Detect mark_safe usages in decorators + * [ruff] Expand asyncio-dangling-task (RUF006) to include new_event_loop + * [flake8-pyi] Ignore 'unused' private type dicts in class scopes + * Formatter + * Docstring formatting: Preserve tab indentation when using indent-style=tabs + * Disable top-level docstring formatting for notebooks + * Stabilize quote-style's preserve mode + * CLI + * Allow arbitrary configuration options to be overridden via the CLI + * Bug fixes + * Make show-settings filters directory-agnostic + * Respect duplicates when rewriting type aliases + * Respect tuple assignments in typing analyzer + * Use atomic write when persisting cache + * Use non-parenthesized range for DebugText + * [flake8-simplify] Avoid false positive with async for loops (SIM113) + * [flake8-trio] Respect async with in timeout-without-await + * [perflint] Catch a wider range of mutations in PERF101 + * [pycodestyle] Fix E30X panics on blank lines with trailing white spaces + * [pydocstyle] Allow using parameters as a subsection header (D405) + * [pydocstyle] Fix blank-line docstring rules for module-level docstrings + * [pylint] Accept 0.0 and 1.0 as common magic values (PLR2004) + * [pylint] Avoid suggesting set rewrites for non-hashable types + * [ruff] Avoid false negatives with string literals inside of method calls (RUF027) + * [ruff] Fix panic on with f-string detection (RUF027) + * [ruff] Ignore builtins when detecting missing f-strings + * Performance + * Use memchr for string lexing + * Use memchr for tab-indentation detection + * Reduce Result size by using Box instead of String + * Reduce size of Expr from 80 to 64 bytes + * Improve trailing comma rule performance + * Remove unnecessary string cloning from the parser + +------------------------------------------------------------------- +Wed Feb 7 10:16:16 UTC 2024 - Ondřej Súkup + +- update to 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) + * Format module-level docstrings + * Formatter + * Add --range option to ruff format + * Don't trim last empty line in docstrings + * Bug fixes + * Skip empty lines when determining base indentation + * Drop __get__ and __set__ from unnecessary-dunder-call + * Respect generic Protocol in ellipsis removal + * Revert "Use publicly available Apple Silicon runners" + * Performance + * Skip LibCST parsing for standard dedent adjustments + * Remove CST-based fixer for C408 + * Add our own ignored-names abstractions + * Remove CST-based fixers for C400, C401, C410, and C418 + * Use AhoCorasick to speed up quote match + * Remove CST-based fixers for C405 and C409 + * Add fast-path for comment detection + * Invert order of checks in zero-sleep-call + * Short-circuit typing matches based on imports + * Run dunder method rule on methods directly + * Track top-level module imports in the semantic model + * Slight speed-up for lowercase and uppercase identifier checks + * Remove LibCST-based fixer for C403 + * Documentation + * Update max-pos-args example to max-positional-args + * Fixed example code in weak_cryptographic_key.rs + * Fix references to deprecated ANN rules in changelog + * Fix default for max-positional-args + +------------------------------------------------------------------- +Mon Feb 5 09:40:59 UTC 2024 - Ondřej Súkup + +- update to 0.2.0 + * Breaking changes + * The NURSERY selector cannot be used anymore + * Legacy selection of nursery rules by exact codes is no longer allowed without preview enabled + * See also, the "Remapped rules" section which may result in disabled rules. + * Deprecations + * The following rules are now deprecated: + * missing-type-self (ANN101) + * missing-type-cls (ANN102) + * The following command line options are now deprecated: + * --show-source; use --output-format full instead + * --no-show-source; use --output-format concise instead + * --output-format text; use full or concise instead + * The following settings have moved and the previous name is deprecated: + * ruff.allowed-confusables → ruff.lint.allowed-confusables + * ruff.dummy-variable-rgx → ruff.lint.dummy-variable-rgx + * ruff.explicit-preview-rules → ruff.lint.explicit-preview-rules + * ruff.extend-fixable → ruff.lint.extend-fixable + * ruff.extend-ignore → ruff.lint.extend-ignore + * ruff.extend-per-file-ignores → ruff.lint.extend-per-file-ignores + * ruff.extend-safe-fixes → ruff.lint.extend-safe-fixes + * ruff.extend-select → ruff.lint.extend-select + * ruff.extend-unfixable → ruff.lint.extend-unfixable + * ruff.extend-unsafe-fixes → ruff.lint.extend-unsafe-fixes + * ruff.external → ruff.lint.external + * ruff.fixable → ruff.lint.fixable + * ruff.flake8-annotations → ruff.lint.flake8-annotations + * ruff.flake8-bandit → ruff.lint.flake8-bandit + * ruff.flake8-bugbear → ruff.lint.flake8-bugbear + * ruff.flake8-builtins → ruff.lint.flake8-builtins + * ruff.flake8-comprehensions → ruff.lint.flake8-comprehensions + * ruff.flake8-copyright → ruff.lint.flake8-copyright + * ruff.flake8-errmsg → ruff.lint.flake8-errmsg + * ruff.flake8-gettext → ruff.lint.flake8-gettext + * ruff.flake8-implicit-str-concat → ruff.lint.flake8-implicit-str-concat + * ruff.flake8-import-conventions → ruff.lint.flake8-import-conventions + * ruff.flake8-pytest-style → ruff.lint.flake8-pytest-style + * ruff.flake8-quotes → ruff.lint.flake8-quotes + * ruff.flake8-self → ruff.lint.flake8-self + * ruff.flake8-tidy-imports → ruff.lint.flake8-tidy-imports + * ruff.flake8-type-checking → ruff.lint.flake8-type-checking + * ruff.flake8-unused-arguments → ruff.lint.flake8-unused-arguments + * ruff.ignore → ruff.lint.ignore + * ruff.ignore-init-module-imports → ruff.lint.ignore-init-module-imports + * ruff.isort → ruff.lint.isort + * ruff.logger-objects → ruff.lint.logger-objects + * ruff.mccabe → ruff.lint.mccabe + * ruff.pep8-naming → ruff.lint.pep8-naming + * ruff.per-file-ignores → ruff.lint.per-file-ignores + * ruff.pycodestyle → ruff.lint.pycodestyle + * ruff.pydocstyle → ruff.lint.pydocstyle + * ruff.pyflakes → ruff.lint.pyflakes + * ruff.pylint → ruff.lint.pylint + * ruff.pyupgrade → ruff.lint.pyupgrade + * ruff.select → ruff.lint.select + * ruff.task-tags → ruff.lint.task-tags + * ruff.typing-modules → ruff.lint.typing-modules + * ruff.unfixable → ruff.lint.unfixable + * Remapped rules + * The following rules have been remapped to new codes: + * raise-without-from-inside-except: TRY200 to B904 + * suspicious-eval-usage: PGH001 to S307 + * logging-warn: PGH002 to G010 + * static-key-dict-comprehension: RUF011 to B035 + * runtime-string-union: TCH006 to TCH010 + * Stabilizations + * The following rules have been stabilized and are no longer in preview: + * trio-timeout-without-await (TRIO100) + * trio-sync-call (TRIO105) + * trio-async-function-with-timeout (TRIO109) + * trio-unneeded-sleep (TRIO110) + * trio-zero-sleep-call (TRIO115) + * unnecessary-escaped-quote (Q004) + * enumerate-for-loop (SIM113) + * zip-dict-keys-and-values (SIM911) + * timeout-error-alias (UP041) + * flask-debug-true (S201) + * tarfile-unsafe-members (S202) + * ssl-insecure-version (S502) + * ssl-with-bad-defaults (S503) + * ssl-with-no-version (S504) + * weak-cryptographic-key (S505) + * ssh-no-host-key-verification (S507) + * django-raw-sql (S611) + * mako-templates (S702) + * generator-return-from-iter-method (PYI058) + * runtime-string-union (TCH006) + * numpy2-deprecation (NPY201) + * quadratic-list-summation (RUF017) + * assignment-in-assert (RUF018) + * unnecessary-key-check (RUF019) + * never-union (RUF020) + * direct-logger-instantiation (LOG001) + * invalid-get-logger-argument (LOG002) + * exception-without-exc-info (LOG007) + * undocumented-warn (LOG009) + * Fixes for the following rules have been stabilized and are now available without preview: + * triple-single-quotes (D300) + * non-pep604-annotation (UP007) + * dict-get-with-none-default (SIM910) + * in-dict-keys (SIM118) + * collapsible-else-if (PLR5501) + * if-with-same-arms (SIM114) + * useless-else-on-loop (PLW0120) + * unnecessary-literal-union (PYI030) + * unnecessary-spread (PIE800) + * error-instead-of-exception (TRY400) + * redefined-while-unused (F811) + * duplicate-value (B033) + * multiple-imports-on-one-line (E401) + * non-pep585-annotation (UP006) + * Fixes for the following rules have been promoted from unsafe to safe: + * unaliased-collections-abc-set-import (PYI025) + * The following behaviors have been stabilized: + * module-import-not-at-top-of-file (E402) allows sys.path modifications between imports + * reimplemented-container-builtin (PIE807) includes lambdas that can be replaced with dict + * unnecessary-placeholder (PIE790) applies to unnecessary ellipses (...) + * if-else-block-instead-of-dict-get (SIM401) applies to if-else expressions + * Preview features + * [refurb] Implement metaclass_abcmeta (FURB180) + * Implement blank_line_after_nested_stub_class preview style + * The preview rule and-or-ternary (PLR1706) was removed + * Bug fixes + * [flake8-async] Take pathlib.Path into account when analyzing async functions + * [flake8-return] - fix indentation syntax error (RET505) + * Detect multi-statement lines in else removal + * RUF022, RUF023: never add two trailing commas to the end of a sequence + * RUF023: Don't sort __match_args__, only __slots__ + * [flake8-simplify] - Fix syntax error in autofix (SIM114) + * [pylint] Show verbatim constant in magic-value-comparison (PLR2004) + * Removing trailing whitespace inside multiline strings is unsafe + * Support IfExp with dual string arms in invalid-envvar-default + * [pylint] Add __mro_entries__ to known dunder methods (PLW3201) + * Documentation + * Removed rules are now retained in the documentation + * Deprecated rules are now indicated in the documentation + +------------------------------------------------------------------- +Thu Feb 1 18:05:47 UTC 2024 - Ondřej Súkup + +- update to 0.1.15 + * Preview features + * Error when NURSERY selector is used with --preview + * Preserve indentation around multiline strings in formatter + * [flake8-return] Add fixes for all rules (RET505, RET506, RET507, RET508) + * [flake8-simplify] Add fix for if-with-same-arms (SIM114) + * [pycodestyle] Add fix for multiple-imports-on-one-line (E401) + * [pylint] Add fix for collapsible-else-if (PLR5501) + * [pylint] Add fix for useless-else-on-loop (PLW0120) + * [pylint] Implement assigning-non-slot (E0237) + * [pylint] Implement potential-index-error (PLE0643) + * [pylint] Implement too-many-nested-blocks (PLR1702) + * [ruff] Add rule to sort __slots__ and __match_args__ + * [ruff] Detect unnecessary dict comprehensions for iterables (RUF025) + * [ruff] Guard against use of default_factory as a keyword argument (RUF026) + * [ruff] Implement mutable-fromkeys-value (RUF024) + * CLI + * Enable auto-wrapping of --help output + * Bug fixes + * Avoid rendering display-only rules as fixable + * Detect automagic-like assignments in notebooks + * Generate custom JSON schema for dynamic setting + * [flake8-no-pep420] Include global --config when determining namespace packages + * [flake8-pie] Omit bound tuples passed to .startswith or .endswith + * [flake8-return] Avoid panic when fixing inlined else blocks + * [flake8-return] Consider exception suppression in unnecessary assignment + * [flake8-return] Take NoReturn annotation into account when analyzing implicit returns + * [flake8-simplify] Support inverted returns in needless-bool (SIM103) + * [flake8-type-checking] Add Pydantic's BaseConfig to default-copy list + * [flake8-type-checking] Avoid marking InitVar as a typing-only annotation + * [pycodestyle] Allow dtype comparisons in type-comparison + * [pydocstyle] Re-implement last-line-after-section (D413) + * Documentation + * [flake8-pytest-style] Add fix safety documentation for duplicate-parameterize-test-cases + * [pylint] Document literal-membership fix safety conditions + * [isort] Fix reference to isort rule code + +------------------------------------------------------------------- +Sun Jan 21 15:21:29 UTC 2024 - Ondřej Súkup + +- update to 0.1.14 + * Preview features + * [flake8-bugbear] Add fix for duplicate-value (B033) + * [flake8-simplify] Implement enumerate-for-loop (SIM113) + * [pygrep_hooks] Add fix for deprecated-log-warn (PGH002) + * [pylint] Implement import-private-name (C2701) + * [refurb] Implement regex-flag-alias with fix (FURB167) + * [ruff] Add rule and fix to sort contents of __all__ (RUF022) + * [tryceratops] Add fix for error-instead-of-exception (TRY400) + * Rule changes + * [flake8-pyi] Fix PYI047 false negatives on PEP-695 type aliases + * [flake8-pyi] Fix PYI049 false negatives on call-based TypedDicts + * [pylint] Exclude self and cls when counting method arguments (PLR0917) + * CLI + * --show-settings displays active settings in a far more readable format + * Add --extension support to the formatter + * Configuration + * Ignore preview status for fixable and unfixable selectors + * [pycodestyle] Use the configured tab size when expanding indents + * Bug fixes + * Recursively visit deferred AST nodes + * Visit deferred lambdas before type definitions + * [flake8-simplify] Avoid some more enumerate-for-loop false positives (SIM113) + * [pandas-vet] Limit inplace diagnostics to methods that accept inplace + * [pylint] Add the __prepare__ method to the list of recognized dunder method + * [pylint] Ignore unnecessary dunder calls within dunder definitions + * [refurb] Avoid bailing when reimplemented-operator is called on function (FURB118) + * [ruff] Avoid treating named expressions as static keys (RUF011) + * Documentation + * Add instructions on using noqa with isort rules + * Documentation update for URL giving 'page not found' + * Fix admonition in dark mode + * Update contributing docs to use cargo bench -p ruff_benchmark + * Update emacs integration section to include emacs-ruff-format + * [flake8-blind-except] Document exceptions to blind-except rule + +------------------------------------------------------------------- +Mon Jan 15 13:27:02 UTC 2024 - Ondřej Súkup + +- update to 0.1.13 + * Bug fixes + * Include base pyproject when initializing cache settings + * [flake8-simplify] Account for possibly-empty f-string values in truthiness logic + * [pylint] Add the missing period in unnecessary-dunder-call + * [pylint] Fix __aenter__ message in unnecessary-dunder-call + +------------------------------------------------------------------- +Fri Jan 12 11:48:38 UTC 2024 - Ondřej Súkup + +- update to 0.1.12: + * Preview features + * Formatter: Hug multiline-strings in preview style + * [flake8-bandit] Add ssl-with-no-version (S504) + * [flake8-bandit] Implement ssl-insecure-version (S502) + * [flake8-bandit] Implement ssl-with-bad-defaults (S503) + * [flake8-bandit] Implement suspicious import rules (S4XX) + * [flake8-simplify] Implement zip-dict-keys-and-values (SIM911) + * [pyflakes] Add a fix for redefined-while-unused (F811) + * [pylint] Implement unnecessary-dunder-call (C2801) + * [ruff] Add parenthesize-chained-operators (RUF021) to enforce parentheses in a or b and c + * Rule changes + * [flake8-boolean-trap] Allow Boolean positional arguments in setters + * [flake8-builtins] Restrict builtin-attribute-shadowing (A003) to actual shadowed references + * [flake8-pyi] Add fix for generator-return-from-iter-method (PYI058) + * [pyflakes] Don't flag redefined-while-unused (F811) in if branches + * [pyupgrade] Add some additional Python 3.12 typing members to deprecated-import + * [ruff] Add fix for parenthesize-chained-operators (RUF021) + * [ruff] Include subscripts and attributes in static key rule (RUF011) + * [ruff] Support variable keys in static dictionary key rule (RUF011) + * Formatter + * Generate deterministic IDs when formatting notebooks + * Allow # fmt: skip with interspersed same-line comments + * Parenthesize breaking named expressions in match guards + * Bug fixes + * Add cell indexes to all diagnostics + * Avoid infinite loop in constant vs. None comparisons + * Handle raises with implicit alternate branches + * Ignore trailing quotes for unclosed l-brace errors + * Respect multi-segment submodule imports when resolving qualified names + * Use DisplayParseError for stdin parser errors + * Use comment_ranges for isort directive extraction + * Use transformed source code for diagnostic locations + * [flake8-pyi] Exclude warnings.deprecated and typing_extensions.deprecated arguments + * [flake8-pyi] Fix false negative for unused-private-protocol (PYI046) with unused generic protocols + * [pydocstyle] Disambiguate argument descriptors from section headers + * [pylint] Homogenize PLR0914 message to match other PLR09XX rules + * [ruff] Allow Hashable = None in type annotations (RUF013) + * Documentation + * Fix admonition hyperlink colouring + * Add missing preview link + +------------------------------------------------------------------- +Mon Jan 8 09:39:09 UTC 2024 - Ondřej Súkup + +- update to 0.1.11 + * [pylint] Implement super-without-brackets (W0245) + * Check path string properly in python -m ruff invocations + * Documentation + * Tweak relative-imports message + * Add fix safety note for yield-in-for-loop + * 0.1.10 + * Preview features + * Improve dummy_implementations preview style formatting + * Normalise Hex and unicode escape sequences in strings + * Parenthesize long type annotations in annotated assignments + * Parenthesize multi-context managers in with statements + * [flake8-pyi] Implement generator-return-from-iter-method (PYI058) + * [pylint] Implement empty-comment (PLR2044) + * [refurb] Implement bit-count (FURB161) + * [ruff] Add never-union rule to detect redundant typing.NoReturn and typing.Never + * CLI + * Add paths to TOML parse errors + * Add row and column numbers to formatter parse errors + * Improve responsiveness when invoked via Python + * Short rule messages should not end with a period + * Configuration + * Respect runtime-required decorators on functions + * Bug fixes + * Avoid asyncio-dangling-task for nonlocal and global bindings + * Escape trailing placeholders in rule documentation + * Fix continuation detection following multi-line strings + * Fix scoping for generators in named expressions in classes + * Port from obsolete wsl crate to is-wsl + * Remove special pre-visit for module docstrings + * Respect __str__ definitions from super classes + * Respect unused-noqa via per-file-ignores + * Respect attribute chains when resolving builtin call paths + * Treat all typing_extensions members as typing aliases + * Use Display for formatter parse errors + * Wrap subscripted dicts in parens for f-string conversion + * [flake8-annotations] Avoid adding return types to stub methods + * [flake8-annotations] Respect mixed return and raise cases in return-type analysis + * [flake8-bandit] Don't report violations when SafeLoader is imported from yaml.loader (S506) + * [pylint] Avoid panic when comment is preceded by Unicode + * [pylint] Change PLR0917 error message to match other PLR09XX messages + * [refurb] Avoid false positives for math-constant (FURB152) + * Documentation + * Expand target name for better rule documentation + * Fix typos found by codespell + * [perflint] Document PERF102 fix un-safety + * [pyupgrade] Document UP007 fix un-safety + +------------------------------------------------------------------- +Thu Dec 21 23:27:31 UTC 2023 - Ondřej Súkup + +- update to 0.1.9 + * Breaking changes + * Add site-packages to default exclusions + * Preview features + * Fix: Avoid parenthesizing subscript targets and values + * [pylint] Implement too-many-locals (PLR0914) + * Implement reimplemented_operator (FURB118) + * Add a rule to detect string members in runtime-evaluated unions + * Implement no_blank_line_before_class_docstring preview style + * Rule changes + * CONSTANT_CASE variables are improperly flagged for yoda violation (SIM300) + * [flake8-pyi] Cover ParamSpecs and TypeVarTuples (PYI018) + * [flake8-bugbear] Add fix for zip-without-explicit-strict (B905) + * Add fix to automatically remove print and pprint statements (T201, T203) + * Prefer Never to NoReturn in auto-typing in Python >= 3.11 (ANN201) + * Formatter + * can_omit_optional_parentheses: Exit early for unparenthesized expressions + * Fix dynamic mode with doctests so that it doesn't exceed configured line width + * Fix can_omit_optional_parentheses for expressions with a right most fstring + * Add target_version to formatter options + * CLI + * Update ruff format --check to display message for already formatted files + * Bug fixes + * Reverse order of arguments for operator.contains + * Iterate over lambdas in deferred type annotations + * Fix panic in D208 with multibyte indent + * Add support for NoReturn in auto-return-typing + * Allow removal of typing from exempt-modules + * Avoid mutable-class-default violations for Pydantic subclasses + * Fix dropped union expressions for piped non-types in PYI055 autofix + * Enable annotation quoting for multi-line expressions + * Deduplicate edits when quoting annotations + * Prevent invalid utf8 indexing in cell magic detection + * Avoid nested quotations in auto-quoting fix + * Add base-class inheritance detection to flake8-django rules + * Avoid asyncio-dangling-task violations on shadowed bindings + * Documentation + * Fix blog post URL in changelog + * Add error suppression hint for multi-line strings + * Fix typo in SemanticModel.parent_expression docstring + * Document link between import sorting and formatter + +------------------------------------------------------------------- +Thu Dec 14 10:14:53 UTC 2023 - Ondřej Súkup + +- update to 0.1.8 + * Preview features + * Add "preserve" quote-style to mimic Black's skip-string-normalization + * Implement prefer_splitting_right_hand_side_of_assignments preview style + * [pycodestyle] Add fix for unexpected-spaces-around-keyword-parameter-equals + * [pycodestyle] Add fix for comment-related whitespace rules + * [pycodestyle] Allow sys.path modifications between imports + * [refurb] Implement hashlib-digest-hex (FURB181) + * Rule changes + * Allow flake8-type-checking rules to automatically quote runtime-evaluated references + * Allow transparent cell magics in Jupyter Notebooks + * [flake8-annotations] Avoid ANN2xx fixes for abstract methods with empty bodies + * [flake8-self] Ignore underscore references in type annotations + * [pep8-naming] Allow class names when apps.get_model is a non-string + * [pycodestyle] Allow matplotlib.use calls to intersperse imports + * [pyflakes] Support fixing unused assignments in tuples by renaming variables (F841) + * [pylint] Add fix for subprocess-run-without-check (PLW1510) + * Formatter + * Add docstring-code-format knob to enable docstring snippet formatting + * Use double quotes for all docstrings, including single-quoted docstrings + * Implement "dynamic" line width mode for docstring code formatting + * Support reformatting Markdown code blocks + * add support for formatting reStructuredText code snippets + * Avoid trailing comma for single-argument with positional separator + * Fix handling of trailing target comment + * CLI + * Hide unsafe fix suggestions when explicitly disabled + * Add SARIF support to --output-format + * Bug fixes + * Apply unnecessary index rule prior to enumerate rewrite + * [flake8-err-msg] Allow EM fixes even if msg variable is defined + * [flake8-pie] Prevent keyword arguments duplication + * [flake8-pie] Respect trailing comma in unnecessary-dict-kwargs (PIE804) + * [flake8-raise] Avoid removing parentheses on ctypes.WinError + * [isort] Avoid invalid combination of force-sort-within-types and lines-between-types + * [isort] Ensure that from-style imports are always ordered first in __future__ + * [pycodestyle] Allow tab indentation before keyword + * [pylint] Ignore @overrides and @overloads for too-many-positional + * [pyupgrade] Enable printf-string-formatting fix with comments on right-hand side + * [refurb] Make math-constant (FURB152) rule more targeted + * [refurb] Support floating-point base in redundant-log-base (FURB163) + * [ruff] Detect unused-asyncio-dangling-task (RUF006) on unused assignments + +------------------------------------------------------------------- +Tue Dec 5 08:53:06 UTC 2023 - Ondřej Súkup + +- update to 0.1.7 + * Preview features + * Implement multiline dictionary and list hugging for preview style + * Implement the fix_power_op_line_length preview style + * Use Python version to determine typing rewrite safety + * [flake8-annotations] Enable auto-return-type involving Optional and Union annotations + * [flake8-bandit] Implement django-raw-sql (S611) + * [flake8-bandit] Implement tarfile-unsafe-members (S202) + * [flake8-pyi] Implement fix for unnecessary-literal-union (PYI030) + * [flake8-simplify] Extend dict-get-with-none-default (SIM910) to non-literals + * [pylint] - add unnecessary-list-index-lookup (PLR1736) + autofix + * [pylint] - implement R0202 and R0203 with autofixes + * [pylint] Implement repeated-keyword (PLe1132) + * [pylint] Implement too-many-positional (PLR0917) + * [pylint] Implement unnecessary-dict-index-lookup (PLR1733) + * [refurb] Implement redundant-log-base (FURB163) + * Rule changes + * [flake8-boolean-trap] Allow booleans in @override methods + * [flake8-bugbear] Avoid B015,B018 for last expression in a cell + * [flake8-pie] Allow ellipses for enum values in stub files + * [flake8-pyi] Check PEP 695 type aliases for snake-case-type-alias and t-suffixed-type-alias + * [flake8-pyi] Check for kwarg and vararg NoReturn type annotations + * [flake8-simplify] Omit select context managers from SIM117 + * [pep8-naming] Allow Django model loads in non-lowercase-variable-in-function (N806) + * [pycodestyle] Avoid E703 for last expression in a cell + * [pycodestyle] Update E402 to work at cell level for notebooks + * [pydocstyle] Avoid D100 for Jupyter Notebooks + * [pylint] Implement fix for unspecified-encoding (PLW1514) + * Formatter + * Avoid unstable formatting in ellipsis-only body with trailing comment + * Inline trailing comments for type alias similar to assignments + * Insert trailing comma when function breaks with single argument + * CLI + * Update ruff check and ruff format to default to the current directory + * Stop at the first resolved parent configuration + * Configuration + * [pylint] Default max-positional-args to max-args + * [pylint] Add allow-dunder-method-names setting for bad-dunder-method-name (PLW3201) + * [isort] Add support for from-first setting + * [isort] Add support for length-sort settings + * Bug fixes + * Add support for @functools.singledispatch + * Avoid off-by-one error in stripping noqa following multi-byte char + * Avoid off-by-one error in with-item named expressions + * Avoid syntax error via invalid ur string prefix + * Avoid underflow in get_model matching + * Avoid unnecessary index diagnostics when value is modified + * Convert over-indentation rule to use number of characters + * Detect implicit returns in auto-return-types + * Fix start >= end error in over-indentation + * Ignore @overload and @override methods for too-many-arguments checks + * Lexer start of line is false only for Mode::Expression + * Mark pydantic_settings.BaseSettings as having default copy semantics + * Respect dictionary unpacking in NamedTuple assignments + * Respect local subclasses in flake8-type-checking + * Support type alias statements in simple statement positions + * [flake8-annotations] Avoid filtering out un-representable types in return annotation + * [flake8-pie] Retain extra ellipses in protocols and abstract methods + * [flake8-pyi] Respect local enum subclasses in simple-defaults (PYI052) + * [flake8-trio] Use correct range for TRIO115 fix + * [flake8-trio] Use full arguments range for zero-sleep-call + * [isort] fix: mark __main__ as first-party import + * [pep8-naming] Avoid N806 errors for type alias statements + * [perflint] Avoid PERF101 if there's an append in loop body + * [pycodestyle] Allow space-before-colon after end-of-slice + * [pydocstyle] Avoid non-character breaks in over-indentation (D208) + * [pydocstyle] Ignore underlines when determining docstring logical lines + * [pylint] Extend self-assigning-variable to multi-target assignments + * [tryceratops] Avoid repeated triggers in nested tryceratops diagnostics + * Documentation + * Add advice for fixing RUF008 when mutability is not desired + * Added the command to run ruff using pkgx to the installation.md + * Document fix safety for flake8-comprehensions and some pyupgrade rules + * Fix doc formatting for zero-sleep-call + * Remove duplicate imports from os-stat documentation + * Replace generated reference to MkDocs + * Update Arch Linux package URL in installation.md + * [flake8-pyi] Fix error in t-suffixed-type-alias (PYI043) example + * [flake8-pyi] Improve motivation for custom-type-var-return-type (PYI019) + +------------------------------------------------------------------- +Sun Nov 19 03:53:46 UTC 2023 - Ondřej Súkup + +- switch to libalternatives +- drop cargo_config +- update _service for new cargo-vendor service +- update to 0.1.6 + * Preview features + * [flake8-boolean-trap] Extend boolean-type-hint-positional-argument (FBT001) to include booleans in unions + * [flake8-pie] Extend reimplemented-list-builtin (PIE807) to dict reimplementations + * [flake8-pie] Extend unnecessary-pass (PIE790) to include ellipses (...) + * [flake8-pie] Implement fix for unnecessary-spread (PIE800) + * [flake8-quotes] Implement unnecessary-escaped-quote (Q004) + * [pycodestyle] Implement fix for multiple-spaces-after-keyword (E271) and multiple-spaces-before-keyword (E272) + * [pycodestyle] Implement fix for multiple-spaces-after-operator (E222) and multiple-spaces-before-operator (E221) + * [pyflakes] Extend is-literal (F632) to include comparisons against mutable initializers + * [pylint] Implement redefined-argument-from-local (PLR1704) + * [pylint] Implement fix for unnecessary-lambda (PLW0108) + * [refurb] Implement if-expr-min-max (FURB136) + * [refurb] Implement math-constant (FURB152) + * Rule changes + * [flake8-annotations] Add autotyping-like return type inference for annotation rules + * [flake8-future-annotations] Implement fix for future-required-type-annotation (FA102) + * [flake8-implicit-namespace-package] Avoid missing namespace violations in scripts with shebangs + * [pydocstyle] Update over-indentation (D208) to preserve indentation offsets when fixing overindented lines + * [pyupgrade] Refine timeout-error-alias (UP041) to remove false positives + * Formatter + * Fix instability in await formatting with fluent style + * Compare formatted and unformatted ASTs during formatter tests + * Preserve trailing semicolon for Notebooks + * CLI + * Improve debug printing for resolving origin of config settings + * Write unchanged, excluded files to stdout when read via stdin + * Configuration + * [isort] Support disabling sections with no-sections = true + * [pep8-naming] Support local and dynamic class- and static-method decorators + * [pydocstyle] Allow overriding pydocstyle convention rules + * Bug fixes + * Avoid syntax error via importing trio.lowlevel + * Omit unrolled augmented assignments in PIE794 + * Slice source code instead of generating it for EM fixes + * Allow whitespace around colon in slices for whitespace-before-punctuation (E203) + * Use function range for no-self-use + * F-strings doesn't contain bytes literal for PLW0129 + * Improve detection of TYPE_CHECKING blocks imported from typing_extensions or _typeshed + * Treat display as a builtin in IPython + * Avoid FURB113 autofix if comments are present + * Consider the new f-string tokens for flake8-commas + * Remove erroneous bad-dunder-name reference + * Avoid recommending Self usages in metaclasses + * Detect runtime-evaluated base classes defined in the current file + * Avoid inserting trailing commas within f-strings + * Remove incorrect deprecation label for stdout and stderr + * Fix unnecessary parentheses in UP007 fix + * Remove repeated and erroneous scoped settings headers in docs + * Trim trailing empty strings when converting to f-strings + * Fix ordering for force-sort-within-sections + * Run unicode prefix rule over tokens + * Update UP032 to unescape curly braces in literal parts of converted strings + * List all ipython builtins + * Documentation + * Document conventions in the FAQ + * Redirect from rule codes to rule pages in docs + * Fix permalink to convention setting + +------------------------------------------------------------------- +Mon Nov 13 14:21:57 UTC 2023 - Ondřej Súkup + +- update to 0.1.5 + * Preview features + * [flake8-bandit] Implement mako-templates (S702) + * [flake8-trio] Implement TRIO105 + * [flake8-trio] Implement TRIO109 + * [flake8-trio] Implement TRIO110 + * [flake8-trio] Implement TRIO115 + * [refurb] Implement type-none-comparison (FURB169) + * Flag all comparisons against builtin types in E721 + * Make SIM118 fix as safe when the expression is a known dictionary + * Formatter + * Fix multiline lambda expression statement formatting + * CLI + * Add hidden --extension to override inference of source type from file extension + * Configuration + * Account for selector specificity when merging extend_unsafe_fixes and override extend_safe_fixes + * Add support for disabling cache with RUFF_NO_CACHE environment variable + * Bug fixes + * [E721] Flag comparisons to memoryview + * Allow collapsed-ellipsis bodies in other statements + * Avoid D301 autofix for u prefixed strings + * Only flag flake8-trio rules when trio import is present + * Reject more syntactically invalid Python programs + * Avoid raising TRIO115 violations for trio.sleep(...) calls with non-number values + * Fix F841 false negative on assignment to multiple variables + * Documentation + * Fix link to isort known-first-party + * Add notes on fix safety to a few rules + * Add missing toml config tabs + * Add instructions for configuration of Emacs + * Improve detail link contrast in dark mode + * Fix typo in example + * Added tabs for configuration files in the documentation + * Recommend project.requires-python over target-version + * Add singleton escape hatch to B008 documentation + * Fix tab configuration docs + +------------------------------------------------------------------- +Tue Nov 7 11:29:10 UTC 2023 - Ondřej Súkup + +- Update to 0.1.4 + * Preview features + * [flake8-trio] Implement timeout-without-await (TRIO001) + * [numpy] Implement NumPy 2.0 migration rule (NPY200) + * [pylint] Implement bad-open-mode (W1501) + * [pylint] Implement import-outside-toplevel (C0415) rule + * [pylint] Implement useless-with-lock (W2101) + * [pyupgrade] Implement timeout-error-alias (UP041) + * [refurb] Implement isinstance-type-none (FURB168) + * Detect confusable Unicode-to-Unicode units in RUF001, RUF002, and RUF003 + * Add newline after module docstrings in preview style + * Formatter + * Add a note on line-too-long to the formatter docs + * Preserve trailing statement semicolons when using fmt: skip + * Preserve trailing semicolons when using fmt: off + * Avoid duplicating linter-formatter compatibility warnings + * Avoid inserting a newline after function docstrings + * Insert newline between docstring and following own line comment + * Split tuples in return positions by comma first + * Avoid treating byte strings as docstrings + * Add --line-length option to format command + * Avoid parenthesizing unsplittable because of comments + * CLI + * Add --output-format to ruff rule and ruff linter + * Bug fixes + * Respect --force-exclude in lint.exclude and format.exclude + * Respect --extend-per-file-ignores on the CLI + * Extend bad-dunder-method-name to permit __index__ + * Fix panic with 8 in octal escape + * Avoid raising D300 when both triple quote styles are present + * Consider unterminated f-strings in FStringRanges + * Avoid including literal shell=True for truthy, non-True diagnostics + * Avoid triggering single-element test for starred expressions + * Detect and ignore Jupyter automagics + * Fix invalid E231 error with f-strings + * Avoid triggering NamedTuple rewrite with starred annotation + * Avoid un-setting bracket flag in logical lines + * Place 'r' prefix before 'f' for raw format strings + * Remove trailing periods from NumPy 2.0 code actions + * Fix bug where PLE1307 was raised when formatting %c with characters + * Remove unicode flag from comparable + * Improve B015 message + * Use fixedOverflowWidgets for playground popover + * Mark byte_bounds as a non-backwards-compatible NumPy 2.0 change + * Internals + * Add a dedicated cache directory per Ruff version + * Allow selective caching for --fix and --diff + * Improve performance of comment parsing + * Improve performance of string parsing + * Use a dedicated sort key for isort import sorting + +------------------------------------------------------------------- +Fri Oct 27 07:53:47 UTC 2023 - Ondřej Súkup + +- Update to 0.1.3 + * Formatter + * Avoid space around pow for None, True and False + * Avoid sorting all paths in the format command + * Insert necessary blank line between class and leading comments + * Avoid introducing new parentheses in annotated assignments + * Refine the warnings about incompatible linter options + * Add test and basic implementation for formatter preview mode + * Refine warning about incompatible isort settings + * Only omit optional parentheses for starting or ending with parentheses + * Use source type to determine parser mode for formatting + * Don't warn about magic trailing comma when isort.force-single-line is true + * Use SourceKind::diff for formatter + * Fix fmt:off with trailing child comment + * Formatter parentheses support for IpyEscapeCommand + * Linter + * [pylint] Add buffer methods to bad-dunder-method-name (PLW3201) exclusions + * Match rule prefixes from external codes setting in unused-noqa + * Use line-length setting for isort in lieu of pycodestyle.max-line-length + * Update fix for unnecessary-paren-on-raise-exception to unsafe for unknown types + * Correct quick fix message for W605 + * Documentation + * Fix typo in max-doc-length documentation + * Improve documentation around linter-formatter conflicts + * Fix link to error suppression documentation in unused-noqa + * Add external option to unused-noqa documentation + * Add title attribute to icons + * Clarify unsafe case in RSE102 + * Fix skipping formatting examples + * docs: fix name of magic-trailing-comma option in README + * Add note about scope of rule changing in versioning policy + * Document: Fix default lint rules + * Fix a wrong setting in configuration.md + * Fix misspelled TOML headers in the tutorial + +------------------------------------------------------------------- +Wed Oct 25 12:38:40 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Wed Oct 25 11:04:42 UTC 2023 - Ondřej Súkup + +- Update to 0.1.2 + * This release includes the Beta version of the Ruff formatter — an extremely + fast, Black-compatible Python formatter + * Preview features + * [pylint] Implement non-ascii-module-import (C2403) + * [pylint] implement non-ascii-name (C2401) + * [pylint] Implement unnecessary-lambda (W0108) + * [refurb] Implement read-whole-file (FURB101) + * Add fix for E223, E224, and E242 + * Add fix for E225, E226, E227, and E228 + * Add fix for E252 + * Add fix for E261 + * Add fix for E273 and E274 + * Add fix for E275 + * Update SIM401 to catch ternary operations + * Update E721 to allow is and is not for direct type comparisons + * Rule changes + * Add backports.strenum to deprecated-imports + * Update SIM112 to ignore https_proxy, http_proxy, and no_proxy + * Update fix for literal-membership (PLR6201) to be unsafe + * Update fix for mutable-argument-defaults (B006) to be unsafe + * Formatter + * Change line-ending default to auto + * Respect parenthesized generators in has_own_parentheses + * Add caching to formatter + * Remove --line-length option from format command + * Add formatter to line-length documentation + * Warn about incompatible formatter options + * Fix range of unparenthesized tuple subject in match statement + * Remove experimental formatter warning + * Don't move type param opening parenthesis comment + * Update versions in format benchmark script + * Avoid loading files for cached format results + * CLI + * Show the ruff format command in help menus + * Add ruff version command with long version display + * Configuration + * New pycodestyle.max-line-length option + * Bug fixes + * Detect sys.version_info slices in outdated-version-block + * Avoid if-else simplification for TYPE_CHECKING blocks + * Avoid false-positive print separator diagnostic with starred argument + * Documentation + * Fix message for too-many-arguments lint + * Fix extend-unsafe-fixes and extend-safe-fixes example + * Add links to flake8-import-conventions options + * Rework the documentation to incorporate the Ruff formatter + * Fix Options JSON schema description + * Fix typo (pytext -> pytest) + * Improve magic-value-comparison example in docs + +------------------------------------------------------------------- +Fri Oct 20 10:09:22 UTC 2023 - Ondřej Súkup + +- update to 0.1.1 + * Rule changes + * Add unsafe fix for escape-sequence-in-docstring (D301) + * Configuration + * Respect #(deprecated) attribute in configuration options + * Add [format|lint].exclude options + * Respect tab-size setting in formatter + * Add lint.preview + * Preview features + * [pylint] Implement literal-membership (PLR6201) + * [pylint] Implement too-many-boolean-expressions (PLR0916) + * [pylint] Implement misplaced-bare-raise (E0704) + * [pylint] Implement global-at-module-level (W0604) + * [pylint] Implement unspecified-encoding (PLW1514) + * Add fix for triple-single-quotes (D300) + * Formatter + * New code style badge for ruff format + * Fix comments outside expression parentheses + * Add --target-version to ruff format + * Skip over parentheses when detecting in keyword + * Add --diff option to ruff format + * Insert newline after nested function or class statements + * Use pass over ellipsis in non-function/class contexts + * Bug fixes + * Lazily evaluate all PEP 695 type alias values + * Avoid failed assertion when showing fixes from stdin + * Avoid flagging HTTP and HTTPS literals in urllib-open + * Avoid flagging bad-dunder-method-name for _ + * Remove Python 2-only methods from URLOpen audit + * Use set bracket replacement for iteration-over-set to preserve whitespace and comments + * Documentation + * Update tutorial to match revised Ruff defaults + * Update rule B005 docs + * Update GitHub actions example in docs to use --output-format + * Document lint.preview and format.preview + * Clarify that new rules should be added to RuleGroup::Preview. + +------------------------------------------------------------------- +Tue Oct 17 10:38:21 UTC 2023 - Ondřej Súkup + +- update to 0.1.0 + * Breaking changes + + Unsafe fixes are no longer displayed or applied without opt-in + + Drop formatting specific rules from the default set + + The deprecated format setting has been removed + + The format setting cannot be used to configure the output format, use output-format instead + + The RUFF_FORMAT environment variable is ignored, use RUFF_OUTPUT_FORMAT instead + + The --format option has been removed from ruff check, use --output-format instead + * Rule changes + + Extend reimplemented-starmap (FURB140) to catch calls with a single and starred argument + + Improve cases covered by RUF015 + + Update SIM15 to allow open followed by close + + Respect msgspec.Struct default-copy semantics in RUF012 + + Add sqlalchemy methods to `flake8-boolean-trap`` exclusion list + + Add fix for PLR1714 + + Add fix for PIE804 + + Add fix for PLC0208 + + Add fix for PYI055 + + Update non-pep695-type-alias to require --unsafe-fixes outside of stub files + + Improve fix message for UP018 + + Update PLW3201 to support Enum sunder names + * Preview features + + Only show warnings for empty preview selectors when enabling rules + + Add unnecessary-key-check to simplify key in dct and dct[key] to dct.get(key) + + Add assignment-in-assert to prevent walrus expressions in assert statements + + [refurb] Add single-item-membership-test (FURB171) + + [pylint] Add and-or-ternary (R1706) + + New rules are added in preview. + * Configuration + + Add unsafe-fixes setting + + Add extend-safe-fixes and extend-unsafe-fixes for promoting and demoting fixes + * CLI + + Added --unsafe-fixes option for opt-in to display and apply unsafe fixes + + Fix use of deprecated --format option in warning + + Show changed files when running under --check + + Write summary messages to stderr when fixing via stdin instead of omitting them + + Update fix summary message in check --diff to include unsafe fix hints + + Add notebook cell field to JSON output format + + Rename applicability levels to Safe, Unsafe, and Display + * Bug fixes + + Fix bug where f-strings were allowed in match pattern literal + + Fix SIM110 with a yield in the condition + + Preserve trailing comments in C414 fixes + + Check sequence type before triggering unnecessary-enumerate len suggestion + + Use correct start location for class/function clause header + + Fix incorrect fixes for SIM101 + + Format comment before parameter default correctly + + Fix E251 false positive inside f-strings + + Allow bindings to be created and referenced within annotations + + Show per-cell diffs when analyzing notebooks over stdin + + Avoid curly brace escape in f-string format spec + + Fix lexing single-quoted f-string with multi-line format spec + + Consider nursery rules to be in-preview for ruff rule + + Report precise location for invalid conversion flag + + Visit pattern match guard as a boolean test + + Respect --unfixable in ISC rules + + Fix edge case with PIE804 + + Show custom message in PTH118 for Path.joinpath with starred arguments + + Fix false negative in outdated-version-block when using greater than comparisons + + Avoid converting f-strings within Django gettext calls + + Fix false positive in PLR6301 + + Treat type aliases as typing-only expressions e.g. resolves false positive in TCH004 + + Resolve cache-dir relative to project root + + Respect subscripted base classes in type-checking rules e.g. resolves false positive in TCH003 + + Fix JSON schema limit for line-length + + Fix commented-out coalesce keyword + * Documentation + + Document reimplemented-starmap performance effects + + Default to following the system dark/light mode + + Add documentation for fixes + + Fix typo in docs of PLR6301 + + Update UP038 docs to note that it results in slower code + + crlf -> cr-lf + + Add an example of an unsafe fix + + Fix documented examples for unnecessary-subscript-reversal + + Correct error in tuple example in ruff formatter docs + + Add versioning policy to documentation + + Fix invalid code in FURB177 example + * Formatter + + Less scary ruff format message + + Remove spaces from import statements + + Formatter quoting for f-strings with triple quotes + + Update ruff_python_formatter generate.py comment + + Document one-call chaining deviation + + Allow f-string modifications in line-shrinking cases + + Add trailing comment deviation to README + + Add trailing zero between dot and exponential + + Force parentheses for power operations in unary expressions + * Playground + + Fix playground Quick Fix action + +------------------------------------------------------------------- +Fri Oct 13 16:22:47 UTC 2023 - Ondřej Súkup + +- initial package diff --git a/python-ruff.spec b/python-ruff.spec new file mode 100644 index 0000000..a7ef27a --- /dev/null +++ b/python-ruff.spec @@ -0,0 +1,61 @@ +# +# spec file for package python-ruff +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_without libalternatives +%{?sle15_python_module_pythons} +Name: python-ruff +Version: 0.5.1 +Release: 0 +Summary: An extremely fast Python linter, written in Rust +License: MIT +URL: https://github.com/astral-sh/ruff +Source: https://files.pythonhosted.org/packages/source/r/ruff/ruff-%{version}.tar.gz +Source1: vendor.tar.zst +BuildRequires: %{python_module maturin} +BuildRequires: %{python_module pip} +BuildRequires: cargo-packaging +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: alts +BuildRequires: alts +%python_subpackages + +%description +Ruff extremely fast Python linter written in rust supperseding many other linting tools + +%prep +%autosetup -a1 -p1 -n ruff-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitearch} +%python_clone -a %{buildroot}%{_bindir}/ruff +%python_group_libalternatives ruff + +%pre +%python_libalternatives_reset_alternative ruff + +%files %{python_files} +%python_alternative %{_bindir}/ruff +%{python_sitearch}/ruff +%{python_sitearch}/ruff-%{version}.dist-info + +%changelog diff --git a/ruff-0.5.1.tar.gz b/ruff-0.5.1.tar.gz new file mode 100644 index 0000000..5581091 --- /dev/null +++ b/ruff-0.5.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3164488aebd89b1745b47fd00604fb4358d774465f20d1fcd907f9c0fc1b0655 +size 2594019 diff --git a/vendor.tar.zst b/vendor.tar.zst new file mode 100644 index 0000000..250342d --- /dev/null +++ b/vendor.tar.zst @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0fb93c80227ccf1c18c32e865c8320e3cdd6c981ea05db5b68f0ca263067e9c +size 25360638