Update dependency ruff to ^0.16.0 - #232
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d079758a9f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| pytest-dotenv = "^0.5.2" | ||
| pytest-xdist = "^3.6.1" | ||
| ruff = "^0.15.0" | ||
| ruff = "^0.16.0" |
There was a problem hiding this comment.
Pin Ruff's lint rules before bumping to 0.16
In the PR lint workflow I checked, .github/workflows/lint.yml installs these dev dependencies and then pnpm run lint runs poetry run ruff check . for packages/python-sdk; because this config has no explicit tool.ruff.lint.select, Ruff 0.16 applies its expanded default rule set (the v0.16 migration notes and default rules include I001). The current package already violates I001 in e2b_desktop/main.py, example.py, and tests, so installing this bump makes the existing lint job fail unless the new violations are fixed or the previous defaults are pinned.
Useful? React with 👍 / 👎.
d079758 to
2e4482f
Compare
2ff53bd to
ee981f0
Compare
9ff4359 to
7be2a77
Compare
7be2a77 to
525a4ef
Compare
525a4ef to
2156b72
Compare
This PR contains the following updates:
^0.15.0→^0.16.0Release Notes
astral-sh/ruff (ruff)
v0.16.4Compare Source
Released on 2026-08-20.
Preview features
flake8-use-pathlib] Add autofix forPTH116(#26460)refurb] Restrictdelete-full-sliceto lists (FURB131) (#27711)refurb] SkipFURB101andFURB103when theopenargument is a file descriptor (#27643)Bug fixes
InvalidInstructionon Windows CPUs that do not supportPOPCNT(#27803)pyflakes] Emit semantic syntax errors in string type definitions asF722(#27835)pylint] Allowos._exitimports inimport-private-name(PLC2701) (#27738)Rule changes
ruff] Addctypes.LittleEndianStructureand related types to existing exception (RUF012) (#27753)nonlocal(#27628)Server
Documentation
Other changes
Contributors
v0.16.3Compare Source
Released on 2026-08-13.
Preview features
pylint] Fix false negatives on negative numbers (PLR6104) (#27251)pyupgrade] Add rule to replacewhile 1withwhile True(UP048) (#27190)Bug fixes
flake8-bandit] Also check keyword arguments (S602,S603,S607,S609) (#27687)pylint] Allowcontinueinfinallyon Python 3.8 (#27626)pylint] FixPLE1307false positive with bools (#27651)pylint] Fix false positives and negatives with%bformat character (PLE1300,PLE1307) (#27560)pylint] Improve handling of concatenated strings (PLE1300) (#27659)Rule changes
numpy] Makenp.chararrayautofix backwards-compatible (NPY201) (#27527)Performance
Exprsize to 64 bytes (#27591)CLI
ruff check --statisticsoutput (#27646)Documentation
ruff] Also suggestasyncio.TaskGroup(RUF006) (#27461)Other changes
Contributors
v0.16.2Compare Source
Released on 2026-08-06.
Bug fixes
flake8-pyi] Avoid false positives onsingledispatchfunctions (PYI041) (#27335)Server
Contributors
v0.16.1Compare Source
Released on 2026-07-30.
Preview features
flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#27201)pyupgrade] Skip fix when a defaultedTypeVarprecedes a non-defaulted one (UP040,UP046,UP047) (#27133)ruff] Fix false positive with unpacked arguments (RUF065) (#26959)Bug fixes
gen-lsp-typesto gracefully handle unknown enumeration values in LSP messages (#27230)flake8-bugbear] Markrangeas immutable (B008) (#27247)flake8-comprehensions] NFKC-normalize keyword names inC408fix (#26813)flake8-return] Fix false positive when variable is read infinallyclause (RET504) (#25441)pydocstyle] Skip section detection inside RST directive bodies (D214,D405,D413) (#23635)refurb] Parenthesizeyieldarguments in theFURB192fix (#27192)Rule changes
flake8-pytest-style] MarkPT022fixes as unsafe (#26440)refurb] Mark fixes that remove unknown separators as unsafe (FURB105) (#27200)Server
Documentation
pyconMarkdown formatting (#27153)flake8-bandit] DocumentTYPE_CHECKINGexception (S101) (#27004)flake8-import-conventions] Document thatextend-aliasescan override default aliases (#27191)pylint] Add missing fix safety gotchas fornon-augmented-assignment(PLR6104) (#27250)Other changes
Contributors
v0.16.0Compare Source
Released on 2026-07-23.
Check out the blog post for a migration
guide and overview of the changes!
Breaking changes
Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for
more details and the new Default Rules page for a
full listing of the enabled rules.
Ruff can now format Python code blocks in Markdown files and will do this by default. See the
documentation for more details.
Ruff now supports
ruff: ignorecomments at the ends of lines, likenoqacomments, or on the line preceding a diagnostic. For example, these both suppress anunused-import(F401) diagnostic:Fixes are now shown in
checkandformat --checkoutput:This example also shows off the Markdown formatting.
format --checknow supports the same output formats as the linter, including thegithubandgitlaboutputs for rendering annotations in CI:See the CLI help or documentation for the
full list of supported formats.
The
filename,location,end_location,fix.edits[].location, andfix.edits[].end_locationfields in the JSON output format may now be
nullrather than defaulting to the empty string androw 1, column 1, respectively.
Stabilization
The following rules have been stabilized and are no longer in preview:
airflow3-incompatible-function-signature(
AIR303)missing-copyright-notice(
CPY001)unnecessary-from-float(FURB164)sorted-min-max(FURB192)implicit-string-concatenation-in-collection-literal(
ISC004)log-exception-outside-except-handler(
LOG004)invalid-bool-return-type(
PLE0304)too-many-positional-arguments(
PLR0917)stop-iteration-return(PLR1708)none-not-at-end-of-union(
RUF036)access-annotations-from-class-dict(
RUF063)duplicate-entry-in-dunder-all(
RUF068)The following behaviors have been stabilized:
blind-except(BLE001) is now suppressed whenthe exception is logged via
loggingmethods other thancritical,errorandexception.future-required-type-annotation(
FA102) now checks for additional PEP 585-compatibleAPIs, such as those from
collections.abc.f-string-in-get-text-func-call(
INT001),format-in-get-text-func-call(
INT002), andprintf-in-get-text-func-call(
INT003) now check for additional common ways of using thegettextmodule, such as assigningit to
builtins._.suspicious-url-open-usage(
S310) now resolves local string literal bindings to avoid more false positives.snmp-insecure-version(S508) andsnmp-weak-cryptography(S509) nowsupport the recommended API from newer versions of PySNMP.
typing-text-str-alias(UP019) nowrecognizes
typing_extensions.Textin addition totyping.Text.Preview features
pyupgrade] Fix false positive withTypeVardefault before Python 3.13 (UP040) (#26888)Bug fixes
ruff] Fix missing check on unrecognized early bound (RUF016) (#26986)Rule changes
Performance
pyupgrade] Speed upunnecessary-future-import(UP010) (#27047)Documentation
ruff] Add missing period in "Why is this bad?" section (RUF200) (#26930)flake8-simplify] Clarifyos.environbehavior on Windows (SIM112) (#26972)pydocstyle] Document fix safety (D400) (#26971)Contributors
Configuration
📅 Schedule: (in timezone UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.