Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency ruff to ^0.9.0 #179

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open

Update dependency ruff to ^0.9.0 #179

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 9, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
ruff (source, changelog) ^0.8.1 -> ^0.9.0 age adoption passing confidence

Release Notes

astral-sh/ruff (ruff)

v0.9.0

Compare Source

Check out the blog post for a migration guide and overview of the changes!

Breaking changes

Ruff now formats your code according to the 2025 style guide. As a result, your code might now get formatted differently. See the formatter section for a detailed list of changes.

This release doesn’t remove or remap any existing stable rules.

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

The following fixes or improvements to fixes have been stabilized:

Formatter

This release introduces the new 2025 stable style (#​13371), stabilizing the following changes:

  • Format expressions in f-string elements (#​7594)
  • Alternate quotes for strings inside f-strings (#​13860)
  • Preserve the casing of hex codes in f-string debug expressions (#​14766)
  • Choose the quote style for each string literal in an implicitly concatenated f-string rather than for the entire string (#​13539)
  • Automatically join an implicitly concatenated string into a single string literal if it fits on a single line (#​9457)
  • Remove the ISC001 incompatibility warning (#​15123)
  • Prefer parenthesizing the assert message over breaking the assertion expression (#​9457)
  • Automatically parenthesize over-long if guards in match case clauses (#​13513)
  • More consistent formatting for match case patterns (#​6933)
  • Avoid unnecessary parentheses around return type annotations (#​13381)
  • Keep the opening parentheses on the same line as the if keyword for comprehensions where the condition has a leading comment (#​12282)
  • More consistent formatting for with statements with a single context manager for Python 3.8 or older (#​10276)
  • Correctly calculate the line-width for code blocks in docstrings when using max-doc-code-line-length = "dynamic" (#​13523)
Preview features
  • [flake8-bugbear] Implement class-as-data-structure (B903) (#​9601)
  • [flake8-type-checking] Apply quoted-type-alias more eagerly in TYPE_CHECKING blocks and ignore it in stubs (TC008) (#​15180)
  • [pylint] Ignore eq-without-hash in stub files (PLW1641) (#​15310)
  • [pyupgrade] Split UP007 into two individual rules: UP007 for Union and UP045 for Optional (UP007, UP045) (#​15313)
  • [ruff] New rule that detects classes that are both an enum and a dataclass (RUF049) (#​15299)
  • [ruff] Recode RUF025 to RUF037 (RUF037) (#​15258)
Rule changes
Server
  • Improve the observability by removing the need for the "trace" value to turn on or off logging. The server logging is solely controlled using the logLevel server setting
    which defaults to info. This addresses the issue where users were notified about an error and told to consult the log, but it didn’t contain any messages. (#​15232)
  • Ignore diagnostics from other sources for code action requests (#​15373)
CLI
  • Improve the error message for --config key=value when the key is for a table and it’s a simple value
Bug fixes
  • [eradicate] Ignore metadata blocks directly followed by normal blocks (ERA001) (#​15330)
  • [flake8-django] Recognize other magic methods (DJ012) (#​15365)
  • [pycodestyle] Avoid false positives related to type aliases (E252) (#​15356)
  • [pydocstyle] Avoid treating newline-separated sections as sub-sections (D405) (#​15311)
  • [pyflakes] Remove call when removing final argument from format (F523) (#​15309)
  • [refurb] Mark fix as unsafe when the right-hand side is a string (FURB171) (#​15273)
  • [ruff] Treat ) as a regex metacharacter (RUF043, RUF055) (#​15318)
  • [ruff] Parenthesize the int-call argument when removing the int call would change semantics (RUF046) (#​15277)

v0.8.6

Compare Source

Preview features
  • [format]: Preserve multiline implicit concatenated strings in docstring positions (#​15126)
  • [ruff] Add rule to detect empty literal in deque call (RUF025) (#​15104)
  • [ruff] Avoid reporting when ndigits is possibly negative (RUF057) (#​15234)
Rule changes
  • [flake8-todos] remove issue code length restriction (TD003) (#​15175)
  • [pyflakes] Ignore errors in @no_type_check string annotations (F722, F821) (#​15215)
CLI
  • Show errors for attempted fixes only when passed --verbose (#​15237)
Bug fixes
  • [ruff] Avoid syntax error when removing int over multiple lines (RUF046) (#​15230)
  • [pyupgrade] Revert "Add all PEP-585 names to UP006 rule" (#​15250)

v0.8.5

Compare Source

Preview features
  • [airflow] Extend names moved from core to provider (AIR303) (#​15145, #​15159, #​15196, #​15216)
  • [airflow] Extend rule to check class attributes, methods, arguments (AIR302) (#​15054, #​15083)
  • [fastapi] Update FAST002 to check keyword-only arguments (#​15119)
  • [flake8-type-checking] Disable TC006 and TC007 in stub files (#​15179)
  • [pylint] Detect nested methods correctly (PLW1641) (#​15032)
  • [ruff] Detect more strict-integer expressions (RUF046) (#​14833)
  • [ruff] Implement falsy-dict-get-fallback (RUF056) (#​15160)
  • [ruff] Implement unnecessary-round (RUF057) (#​14828)
Rule changes
  • Visit PEP 764 inline TypedDict keys as non-type-expressions (#​15073)
  • [flake8-comprehensions] Skip C416 if comprehension contains unpacking (#​14909)
  • [flake8-pie] Allow cast(SomeType, ...) (PIE796) (#​15141)
  • [flake8-simplify] More precise inference for dictionaries (SIM300) (#​15164)
  • [flake8-use-pathlib] Catch redundant joins in PTH201 and avoid syntax errors (#​15177)
  • [pycodestyle] Preserve original value format (E731) (#​15097)
  • [pydocstyle] Split on first whitespace character (D403) (#​15082)
  • [pyupgrade] Add all PEP-585 names to UP006 rule (#​5454)
Configuration
  • [flake8-type-checking] Improve flexibility of runtime-evaluated-decorators (#​15204)
  • [pydocstyle] Add setting to ignore missing documentation for *args and **kwargs parameters (D417) (#​15210)
  • [ruff] Add an allowlist for unsafe-markup-use (RUF035) (#​15076)
Bug fixes
  • Fix type subscript on older python versions (#​15090)
  • Use TypeChecker for detecting fastapi routes (#​15093)
  • [pycodestyle] Avoid false positives and negatives related to type parameter default syntax (E225, E251) (#​15214)
Documentation
  • Fix incorrect doc in shebang-not-executable (EXE001) and add git+windows solution to executable bit (#​15208)
  • Rename rules currently not conforming to naming convention (#​15102)

v0.8.4

Compare Source

Preview features
  • [airflow] Extend AIR302 with additional functions and classes (#​15015)
  • [airflow] Implement moved-to-provider-in-3 for modules that has been moved to Airflow providers (AIR303) (#​14764)
  • [flake8-use-pathlib] Extend check for invalid path suffix to include the case "." (PTH210) (#​14902)
  • [perflint] Fix panic in PERF401 when list variable is after the for loop (#​14971)
  • [perflint] Simplify finding the loop target in PERF401 (#​15025)
  • [pylint] Preserve original value format (PLR6104) (#​14978)
  • [ruff] Avoid false positives for RUF027 for typing context bindings (#​15037)
  • [ruff] Check for ambiguous pattern passed to pytest.raises() (RUF043) (#​14966)
Rule changes
  • [flake8-bandit] Check S105 for annotated assignment (#​15059)
  • [flake8-pyi] More autofixes for redundant-none-literal (PYI061) (#​14872)
  • [pydocstyle] Skip leading whitespace for D403 (#​14963)
  • [ruff] Skip SQLModel base classes for mutable-class-default (RUF012) (#​14949)
Bug
  • [perflint] Parenthesize walrus expressions in autofix for manual-list-comprehension (PERF401) (#​15050)
Server
  • Check diagnostic refresh support from client capability which enables dynamic configuration for various editors (#​15014)

v0.8.3

Compare Source

Preview features
  • Fix fstring formatting removing overlong implicit concatenated string in expression part (#​14811)
  • [airflow] Add fix to remove deprecated keyword arguments (AIR302) (#​14887)
  • [airflow]: Extend rule to include deprecated names for Airflow 3.0 (AIR302) (#​14765 and #​14804)
  • [flake8-bugbear] Improve error messages for except* (B025, B029, B030, B904) (#​14815)
  • [flake8-bugbear] itertools.batched() without explicit strict (B911) (#​14408)
  • [flake8-use-pathlib] Dotless suffix passed to Path.with_suffix() (PTH210) (#​14779)
  • [pylint] Include parentheses and multiple comparators in check for boolean-chained-comparison (PLR1716) (#​14781)
  • [ruff] Do not simplify round() calls (RUF046) (#​14832)
  • [ruff] Don't emit used-dummy-variable on function parameters (RUF052) (#​14818)
  • [ruff] Implement if-key-in-dict-del (RUF051) (#​14553)
  • [ruff] Mark autofix for RUF052 as always unsafe (#​14824)
  • [ruff] Teach autofix for used-dummy-variable about TypeVars etc. (RUF052) (#​14819)
Rule changes
  • [flake8-bugbear] Offer unsafe autofix for no-explicit-stacklevel (B028) (#​14829)
  • [flake8-pyi] Skip all type definitions in string-or-bytes-too-long (PYI053) (#​14797)
  • [pyupgrade] Do not report when a UTF-8 comment is followed by a non-UTF-8 one (UP009) (#​14728)
  • [pyupgrade] Mark fixes for convert-typed-dict-functional-to-class and convert-named-tuple-functional-to-class as unsafe if they will remove comments (UP013, UP014) (#​14842)
Bug fixes
  • Raise syntax error for mixing except and except* (#​14895)
  • [flake8-bugbear] Fix B028 to allow stacklevel to be explicitly assigned as a positional argument (#​14868)
  • [flake8-bugbear] Skip B028 if warnings.warn is called with *args or **kwargs (#​14870)
  • [flake8-comprehensions] Skip iterables with named expressions in unnecessary-map (C417) (#​14827)
  • [flake8-pyi] Also remove self and cls's annotation (PYI034) (#​14801)
  • [flake8-pytest-style] Fix pytest-parametrize-names-wrong-type (PT006) to edit both argnames and argvalues if both of them are single-element tuples/lists (#​14699)
  • [perflint] Improve autofix for PERF401 (#​14369)
  • [pylint] Fix PLW1508 false positive for default string created via a mult operation (#​14841)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

coderabbitai bot commented Jan 9, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Finishing Touches

  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

codecov bot commented Jan 9, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.59%. Comparing base (8191190) to head (9b7b283).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #179   +/-   ##
=======================================
  Coverage   81.59%   81.59%           
=======================================
  Files          12       12           
  Lines         576      576           
=======================================
  Hits          470      470           
  Misses        106      106           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants