Revisions of python-ruff
Ana Guerrero (anag+factory)
accepted
request 1223378
from
Ondřej Súkup (mimi_vx)
(revision 46)
- update to 0.7.3 * Preview features * Formatter: Disallow single-line implicit concatenated strings * [flake8-pyi] Include all Python file types for PYI006 and PYI066 * [flake8-simplify] Implement split-of-static-string (SIM905) * [refurb] Implement subclass-builtin (FURB189) * [ruff] Improve diagnostic messages and docs (RUF031, RUF032, RUF034) * Rule changes * Detect items that hash to same value in duplicate sets (B033, PLC0208) * [eradicate] Better detection of IntelliJ language injection comments (ERA001) * [flake8-pyi] Add autofix for docstring-in-stub (PYI021) * [flake8-pyi] Update duplicate-literal-member (PYI062) to alawys provide an autofix * [pyflakes] Detect items that hash to same value in duplicate dictionaries (F601) * [ruff] Fix false positive for decorators (RUF028) * Bug fixes * Avoid parsing joint rule codes as distinct codes in # noqa * [eradicate] ignore # language= in commented-out-code rule (ERA001) * [flake8-bugbear] - do not run mutable-argument-default on stubs (B006) * [flake8-builtins] Skip lambda expressions in builtin-argument-shadowing (A002) * [flake8-comprehension] Also remove trailing comma while fixing C409 and C419 * [flake8-simplify] Allow open without context manager in return statement (SIM115) * [pylint] Respect hash-equivalent literals in iteration-over-set (PLC0208) * [pylint] Update known dunder methods for Python 3.13 (PLW3201) * [pyupgrade] - ignore kwarg unpacking for UP044 * [refurb] Parse more exotic decimal strings in verbose-decimal-constructor (FURB157) * Documentation * Add links to missing related options within rule documentations * Add rule short code to mkdocs tags to allow searching via rule codes
Dominique Leuenberger (dimstar_suse)
accepted
request 1220121
from
Ondřej Súkup (mimi_vx)
(revision 45)
- update to 0.7.2 * Preview features * Fix formatting of single with-item with trailing comment * [pyupgrade] Add PEP 646 Unpack conversion to * with fix (UP044) * Rule changes * Regenerate known_stdlibs.rs with stdlibs 2024.10.25 * [flake8-no-pep420] Skip namespace package enforcement for PEP 723 scripts (INP001) * Server * Fix server panic when undoing an edit * Bug fixes * Fix issues in discovering ruff in pip build environments * [flake8-type-checking] Fix false positive for singledispatchmethod (TCH003) * [flake8-type-checking] Treat return type of singledispatch as runtime-required (TCH003) * Documentation * [flake8-simplify] Include caveats of enabling if-else-block-instead-of-if-exp (SIM108)
Ana Guerrero (anag+factory)
accepted
request 1218438
from
Ondřej Súkup (mimi_vx)
(revision 44)
- update to 0.7.1 * Preview features * Fix E221 and E222 to flag missing or extra whitespace around == operator * Formatter: Alternate quotes for strings inside f-strings in preview * Formatter: Join implicit concatenated strings when they fit on a line * [pylint] Restrict iteration-over-set to only work on sets of literals (PLC0208) * Rule changes * [flake8-type-checking] Support auto-quoting when annotations contain quotes * Server * Avoid indexing the workspace for single-file mode * Bug fixes * Make ARG002 compatible with EM101 when raising NotImplementedError
Ana Guerrero (anag+factory)
accepted
request 1216817
from
Ondřej Súkup (mimi_vx)
(revision 43)
- add Provides: ruff-%{version}
Ana Guerrero (anag+factory)
accepted
request 1208873
from
Ondřej Súkup (mimi_vx)
(revision 42)
- update to 0.7.0 * Breaking changes * The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments. This was a change that we attempted to make in Ruff v0.6.0, but only partially made due to an error on our part. See the blog post for more details. * The useless-try-except rule (in our tryceratops category) has been recoded from TRY302 to TRY203 . This ensures Ruff's code is consistent with the same rule in the tryceratops linter. * The lint.allow-unused-imports setting has been removed . Use lint.pyflakes.allow-unused-imports instead. * Formatter preview style * Normalize implicit concatenated f-string quotes per part * Preview linter features * [refurb] implement hardcoded-string-charset (FURB156) * [refurb] Count codepoints not bytes for slice-to-remove-prefix-or-suffix (FURB188) * Rule changes * [pylint] Mark PLE1141 fix as unsafe * [flake8-async] Consider async generators to be "checkpoints" for cancel-scope-no-checkpoint (ASYNC100) * [flake8-bugbear] Do not suggest setting parameter strict= to False in B905 diagnostic message * [flake8-todos] Only flag the word "TODO", not words starting with "todo" (TD006) * [pycodestyle] Fix whitespace-related false positives and false negatives inside type-parameter lists (E231, E251) * [flake8-simplify] Stabilize preview behavior for SIM115 so that the rule can detect files being opened from a wider range of standard-library functions . * CLI * Add explanation of fixable in --statistics command * Bug fixes * [pyflakes] Allow ipytest cell magic (F401) * [flake8-use-pathlib] Fix PTH123 false positive when open is passed a file descriptor * [flake8-bandit] Detect patterns from multi line SQL statements (S608) * [flake8-pyi] - Fix dropped expressions in PYI030 autofix
Ana Guerrero (anag+factory)
accepted
request 1206146
from
Ondřej Súkup (mimi_vx)
(revision 41)
- update to 0.6.9 * Preview features * Fix codeblock dynamic line length calculation for indented docstring examples * [refurb] Mark FURB118 fix as unsafe * Rule changes * [pydocstyle] Don't raise D208 when last line is non-empty * [pylint] Preserve trivia (i.e. comments) in PLR5501 autofix * Configuration * [pyflakes] Add allow-unused-imports setting for unused-import rule (F401) * Bug fixes * Support ruff discovery in pip build environments * [flake8-bugbear] Avoid short circuiting B017 for multiple context managers * [pylint] Do not offer an invalid fix for PLR1716 when the comparisons contain parenthesis * [pyupgrade] Fix UP043 to apply to collections.abc.Generator and collections.abc.AsyncGenerator * [refurb] Fix handling of slices in tuples for FURB118, e.g., x[:, 1]
Ana Guerrero (anag+factory)
accepted
request 1203894
from
Ondřej Súkup (mimi_vx)
(revision 40)
- update to 0.6.8: * Preview features * Remove unnecessary parentheses around match case clauses * Parenthesize overlong if guards in match..case clauses * Detect basic wildcard imports in ruff analyze graph * [pylint] Implement boolean-chained-comparison (R1716) * Rule changes * [lake8-simplify] Detect SIM910 when using variadic keyword arguments, i.e., **kwargs * [pyupgrade] Avoid false negatives with non-reference shadowed bindings of loop variables (UP028) * Bug fixes * Detect tuples bound to variadic positional arguments i.e. *args * Exit gracefully on broken pipe errors * Avoid panic when analyze graph hits broken pipe * Performance * Reuse BTreeSets in module resolver * Skip traversal for non-compound statements
Ana Guerrero (anag+factory)
accepted
request 1202630
from
Dirk Mueller (dirkmueller)
(revision 39)
- update to 0.6.7: * Add Python version support to ruff analyze CLI * Add `exclude` support to `ruff analyze` * Fix parentheses around return type annotations * \[`pycodestyle`\] Fix: Don't autofix if the first line ends in a question mark? (D400) * Respect `lint.exclude` in ruff check `--add-noqa` * Avoid tracking module resolver files in Salsa - update to 0.6.6: * \[`refurb`\] Skip `slice-to-remove-prefix-or-suffix` (`FURB188`) when non-trivial slice steps are present * Add a subcommand to generate dependency graphs * Fix placement of inline parameter comments * Fix off-by one error in the `LineIndex::offset` calculation * \[`fastapi`\] Respect FastAPI aliases in route definitions * \[`pydocstyle`\] Respect word boundaries when detecting function signature in docs * [pydoclint] Ignore DOC201 when function name is "new" * [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188) * [eradicate] Ignore script-comments with multiple end-tags (ERA001) was added in a newer version than specified in Ruff config (F821) * Add support for extensionless Python files for server * Fix configuration inheritance for configurations specified in the LSP settings * [ruff] Handle unary operators in decimal-from-float-literal (RUF032) * Only include rules with diagnostics in SARIF metadata * Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML" * Fix errors not shown for restored snippet on page load
Ana Guerrero (anag+factory)
accepted
request 1201802
from
Ondřej Súkup (mimi_vx)
(revision 38)
- update to 0.6.5: * Preview features * [pydoclint] Ignore DOC201 when function name is "new" * [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188) * Rule changes * [eradicate] Ignore script-comments with multiple end-tags (ERA001) * [pyflakes] Improve error message for UndefinedName when a builtin was added in a newer version than specified in Ruff config (F821) * Server * Add support for extensionless Python files for server * Fix configuration inheritance for configurations specified in the LSP settings * Bug fixes * [ruff] Handle unary operators in decimal-from-float-literal (RUF032) * CLI * Only include rules with diagnostics in SARIF metadata * Playground * Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML" * Fix errors not shown for restored snippet on page load
Ana Guerrero (anag+factory)
accepted
request 1199612
from
Dirk Mueller (dirkmueller)
(revision 37)
- update to 0.6.4: * \[`flake8-builtins`\] Use dynamic builtins list based on Python version * \[`pydoclint`\] Permit yielding `None` in `DOC402` and `DOC403` * \[`pylint`\] Update diagnostic message for `PLW3201` * \[`ruff`\] Implement `post-init-default` (`RUF033`) * \[`ruff`\] Implement useless if-else (`RUF034`) * \[`flake8-pyi`\] Respect `pep8_naming.classmethod-decorators` settings when determining if a method is a classmethod in `custom-type-var-return-type` (`PYI019`) * \[`flake8-pyi`\] Teach various rules that annotations might be stringized * \[`pylint`\] Avoid `no-self-use` for `attrs`-style validators * \[`pylint`\] Recurse into subscript subexpressions when searching for list/dict lookups (`PLR1733`, `PLR1736`) * \[`pyupgrade`\] Detect `aiofiles.open` calls in `UP015` * \[`pyupgrade`\] Mark `sys.version_info[0] < 3` and similar comparisons as outdated (`UP036`) * [flake8-simplify] Extend open-file-with-context-handler to work with other standard-library IO modules (SIM115) * [ruff] Avoid unused-async for functions with FastAPI route decorator (RUF029) * [ruff] Ignore fstring-missing-syntax (RUF027) for fastAPI paths * [ruff] Implement check for Decimal called with a float literal (RUF032) * [flake8-simplify] Extend open-file-with-context-handler to work with dbm.sqlite3 (SIM115) * [pycodestyle] Disable E741 in stub files (.pyi) * [pydoclint] Avoid DOC201 on explicit returns in functions that only return None * [flake8-bugbear] Update diagnostic message when expression is at the end of function (B015) * [flake8-pyi] Skip type annotations in string-or-bytes-too-long (PYI053) * [flake8-type-checking] Always recognise relative imports as first-party
Dominique Leuenberger (dimstar_suse)
accepted
request 1198261
from
Ondřej Súkup (mimi_vx)
(revision 36)
- update to 0.6.3: * Preview features * [flake8-simplify] Extend open-file-with-context-handler to work with other standard-library IO modules (SIM115) * [ruff] Avoid unused-async for functions with FastAPI route decorator (RUF029) * [ruff] Ignore fstring-missing-syntax (RUF027) for fastAPI paths * [ruff] Implement check for Decimal called with a float literal (RUF032) * [flake8-simplify] Extend open-file-with-context-handler to work with dbm.sqlite3 (SIM115) * [pycodestyle] Disable E741 in stub files (.pyi) * [pydoclint] Avoid DOC201 on explicit returns in functions that only return None * Rule changes * [flake8-bugbear] Update diagnostic message when expression is at the end of function (B015) * [flake8-pyi] Skip type annotations in string-or-bytes-too-long (PYI053) * [flake8-type-checking] Always recognise relative imports as first-party * [flake8-unused-arguments] Ignore unused arguments on stub functions (ARG001) * [pylint] Ignore augmented assignment for self-cls-assignment (PLW0642) * [flake8-async] Disable check for asyncio before Python 3.11 (ASYNC109) * Bug fixes * [pep8-naming] Don't flag from imports following conventional import names (N817) * [pylint] - Allow __new__ methods to have cls as their first argument even if decorated with @staticmethod for bad-staticmethod-argument (PLW0211) * [FastAPI] Avoid introducing invalid syntax in fix for fast-api-non-annotated-dependency (FAST002) * [flake8-implicit-str-concat] Normalize octals before merging concatenated strings in single-line-implicit-string-concatenation (ISC001) * [flake8-pytest-style] Improve help message for pytest-incorrect-mark-parentheses-style (PT023) * [pylint] Avoid autofix for calls that aren't min or max as starred expression (PLW3301) * [ruff] Add datetime.time, datetime.tzinfo, and datetime.timezone as immutable function calls (RUF009) * [ruff] Extend comment deletion for RUF100 to include trailing text from noqa directives while preserving any following comments on the same line, if any * Fix dark theme on initial page load for the Ruff playground * Server * Show full context in error log messages * Documentation * Add hyperfine installation instructions; update hyperfine code samples
Ana Guerrero (anag+factory)
accepted
request 1194751
from
Ondřej Súkup (mimi_vx)
(revision 35)
- update to 0.6.1: * Detect imports in src layouts by default for isort rules * The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments . * Lint and format Jupyter Notebook by default . * big list of changes: https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md
Dominique Leuenberger (dimstar_suse)
accepted
request 1192842
from
Ondřej Súkup (mimi_vx)
(revision 34)
Dominique Leuenberger (dimstar_suse)
accepted
request 1190325
from
Ondřej Súkup (mimi_vx)
(revision 33)
- update to 0.5.5 * server funcionality is now stable * big list of changes: https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md
Ana Guerrero (anag+factory)
accepted
request 1186130
from
Dirk Mueller (dirkmueller)
(revision 32)
- 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`
Ana Guerrero (anag+factory)
accepted
request 1184226
from
Dirk Mueller (dirkmueller)
(revision 31)
- 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 * Implement re-lexing logic for better error recovery * [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 * Add tracing setup guide to Helix documentation * Add tracing setup guide to Neovim documentation * Defer notebook cell deletion to avoid an error message
Ana Guerrero (anag+factory)
accepted
request 1182988
from
Ondřej Súkup (mimi_vx)
(revision 30)
- 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 - 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
Ana Guerrero (anag+factory)
accepted
request 1178989
from
Ondřej Súkup (mimi_vx)
(revision 29)
- 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
Ana Guerrero (anag+factory)
accepted
request 1173634
from
Ondřej Súkup (mimi_vx)
(revision 28)
- 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
Dominique Leuenberger (dimstar_suse)
accepted
request 1172165
from
Ondřej Súkup (mimi_vx)
(revision 27)
- 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
Displaying revisions 1 - 20 of 46