Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

python310-ruff-0.7.4-1.1 RPM for s390x

From OpenSuSE Ports Tumbleweed for s390x

Name: python310-ruff Distribution: openSUSE:Factory:zSystems
Version: 0.7.4 Vendor: openSUSE
Release: 1.1 Build date: Sun Nov 17 02:34:46 2024
Group: Unspecified Build host: reproducible
Size: 36227470 Source RPM: python-ruff-0.7.4-1.1.src.rpm
Packager: https://bugs.opensuse.org
Url: https://github.com/astral-sh/ruff
Summary: An extremely fast Python linter, written in Rust
Ruff extremely fast Python linter written in rust supperseding many other linting tools

Provides

Requires

License

MIT

Changelog

* Sun Nov 17 2024 Ondřej Súkup <[email protected]>
  - update to 0.7.4
    * Preview features
    * [flake8-datetimez] Detect usages of datetime.max/datetime.min (DTZ901)
    * [flake8-logging] Implement root-logger-calls (LOG015)
    * [flake8-no-pep420] Detect empty implicit namespace packages (INP001)
    * [flake8-pyi] Add "replace with Self" fix (PYI019)
    * [perflint] Implement quick-fix for manual-list-comprehension (PERF401)
    * [pylint] Implement shallow-copy-environ (W1507)
    * [ruff] Implement none-not-at-end-of-union (RUF036)
    * [ruff] Implementation unsafe-markup-call from flake8-markupsafe plugin (RUF035)
    * [ruff] Report problems for attrs dataclasses (RUF008, RUF009)
    * Rule changes
    * [flake8-boolean-trap] Exclude dunder methods that define operators (FBT001)
    * [flake8-pyi] Add "replace with Self" fix (PYI034)
    * [flake8-pyi] Always autofix duplicate-union-members (PYI016)
    * [flake8-pyi] Improve autofix for nested and mixed type unions for unnecessary-type-union (PYI055)
    * [flake8-pyi] Mark fix as unsafe when type annotation contains comments for duplicate-literal-member (PYI062)
    * Server
    * Use the current working directory to resolve settings from ruff.configuration
    * Bug fixes
    * Avoid conflicts between PLC014 (useless-import-alias) and I002 (missing-required-import) by considering lint.isort.required-imports for PLC014
    * [flake8-type-checking] Skip quoting annotation if it becomes invalid syntax (TCH001)
    * [flake8-pyi] Avoid using typing.Self in stub files pre-Python 3.11 (PYI034)
    * [flake8-pytest-style] Flag pytest.raises call with keyword argument expected_exception (PT011)
    * [flake8-simplify] Infer "unknown" truthiness for literal iterables whose items are all unpacks (SIM222)
    * [flake8-type-checking] Fix false positives for typing.Annotated (TCH001)
    * [pylint] Allow await at the top-level scope of a notebook (PLE1142)
    * [pylint] Fix miscellaneous issues in await-outside-async detection (PLE1142)
    * [pyupgrade Avoid applying PEP 646 rewrites in invalid contexts ()UP044)
    * [pyupgrade] Detect permutations in redundant open modes (UP015)
    * [refurb] Avoid triggering hardcoded-string-charset for reordered sets (FURB156)
    * [refurb] Further special cases added to verbose-decimal-constructor (FURB157)
    * [refurb] Use UserString instead of non-existent UserStr (FURB189)
    * [ruff] Avoid treating lowercase letters as # noqa codes (RUF100)
    * [ruff] Do not report when Optional has no type arguments (RUF013)
    * Documentation
    * Add "Notebook behavior" section for F704, PLE1142
    * Document comment policy around fix safety
* Mon Nov 11 2024 Ondřej Súkup <[email protected]>
  - 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
* Fri Nov 01 2024 Ondřej Súkup <[email protected]>
  - 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)
* Fri Oct 25 2024 Ondřej Súkup <[email protected]>
  - 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
* Mon Oct 21 2024 Ondřej Súkup <[email protected]>
  - add Provides: ruff-%{version}
* Fri Oct 18 2024 Ondřej Súkup <[email protected]>
  - 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
* Mon Oct 07 2024 Ondřej Súkup <[email protected]>
  - 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]
* Thu Sep 26 2024 Ondřej Súkup <[email protected]>
  - 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
* Mon Sep 23 2024 Dirk Müller <[email protected]>
  - 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
* Wed Sep 18 2024 Ondřej Súkup <[email protected]>
  - 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
* Mon Sep 09 2024 Dirk Müller <[email protected]>
  - 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`)
* Mon Sep 02 2024 Ondřej Súkup <[email protected]>
  - 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
    * Expand note to use Ruff with other language server in Kate
    * Update example for PT001 as per the new default behavior
    * [perflint] Improve docs for try-except-in-loop (PERF203)
    * [pydocstyle] Add reference to lint.pydocstyle.ignore-decorators setting to rule docs
* Mon Aug 19 2024 Ondřej Súkup <[email protected]>
  - 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
* Mon Aug 05 2024 Soc Virnyl Estela <[email protected]>
  - update to 0.5.6:
    * Ruff 0.5.6 automatically enables linting and formatting of notebooks in preview mode.
    * Enable notebooks by default in preview mode
    * [flake8-builtins] Implement import, lambda, and module shadowing
    * [pydoclint] Add docstring-missing-returns (DOC201) and docstring-extraneous-returns (DOC202)
    * [flake8-return] Exempt cached properties and other property-like decorators from explicit return rule (RET501)
    * Make server panic hook more error resilient
    * Use $/logTrace for server trace logs in Zed and VS Code
    * Keep track of deleted cells for reorder change request
    * [flake8-implicit-str-concat] Always allow explicit multi-line concatenations when implicit concatenations are banned
    * [flake8-async] Avoid flagging asyncio.timeouts as unused when the context manager includes asyncio.TaskGroup
    * [flake8-slots] Avoid recommending __slots__ for classes that inherit from more than namedtuple
    * [isort] Avoid marking required imports as unused
    * [isort] Preserve trailing inline comments on import-from statements
    * [pycodestyle] Add newlines before comments (E305)
    * [pycodestyle] Don't attach comments with mismatched indents
    * [pyflakes] Fix preview-mode bugs in F401 when attempting to autofix unused first-party submodule imports in an __init__.py file
    * [pylint] Respect start index in unnecessary-list-index-lookup
    * [pyupgrade] Avoid recommending no-argument super in slots=True dataclasses
    * [pyupgrade] Use colon rather than dot formatting for integer-only types
    * Fix NFKC normalization bug when removing unused imports
    * Consider more stdlib decorators to be property-like
    * Improve handling of metaclasses in various linter rules
    * Improve consistency between linter rules in determining whether a function is property
* Mon Jul 29 2024 Ondřej Súkup <[email protected]>
  - update to 0.5.5
    * server funcionality is now stable
    * big list of changes: https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md
* Mon Jul 08 2024 Dirk Müller <[email protected]>
  - 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 01 2024 Dirk Müller <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Dirk Müller <[email protected]>
  - 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 06 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 06 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 09 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 08 2024 Matej Cepl <[email protected]>
  - Remove limitations on building (do not exclude any arch beforehand).
* Wed Mar 06 2024 Ondřej Súkup <[email protected]>
  - 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 <path>, ruff --explain, ruff --clean, and ruff --generate-shell-completion
      in favor of ruff check <path>, ruff rule, ruff clean, and ruff generate-shell-completion
    * 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 05 2024 Andreas Schwab <[email protected]>
  - Enable build on riscv64
* Wed Feb 21 2024 Ondřej Súkup <[email protected]>
  - 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<Tok, LexicalError> size by using Box<str> 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 07 2024 Ondřej Súkup <[email protected]>
  - 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 05 2024 Ondřej Súkup <[email protected]>
  - 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 01 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 2024 Ondřej Súkup <[email protected]>
  - 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 08 2024 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 05 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 07 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 2023 ecsos <[email protected]>
  - Add %{?sle15_python_module_pythons}
* Wed Oct 25 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - 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 2023 Ondřej Súkup <[email protected]>
  - initial package

Files

/usr/bin/ruff
/usr/bin/ruff-3.10
/usr/lib64/python3.10/site-packages/ruff
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/INSTALLER
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/METADATA
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/RECORD
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/REQUESTED
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/WHEEL
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/licenses
/usr/lib64/python3.10/site-packages/ruff-0.7.4.dist-info/licenses/LICENSE
/usr/lib64/python3.10/site-packages/ruff/__init__.py
/usr/lib64/python3.10/site-packages/ruff/__main__.py
/usr/lib64/python3.10/site-packages/ruff/__pycache__
/usr/lib64/python3.10/site-packages/ruff/__pycache__/__init__.cpython-310.opt-1.pyc
/usr/lib64/python3.10/site-packages/ruff/__pycache__/__init__.cpython-310.pyc
/usr/lib64/python3.10/site-packages/ruff/__pycache__/__main__.cpython-310.opt-1.pyc
/usr/lib64/python3.10/site-packages/ruff/__pycache__/__main__.cpython-310.pyc
/usr/share/libalternatives/ruff
/usr/share/libalternatives/ruff/310.conf


Generated by rpm2html 1.8.1

Fabrice Bellet, Wed Dec 4 00:10:59 2024