Skip to content

⬆️ deps: Update Python dev dependencies#91

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/python-dev-dependencies
Open

⬆️ deps: Update Python dev dependencies#91
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/python-dev-dependencies

Conversation

@renovate

@renovate renovate Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
ruff (source, changelog) >=0.15.20>=0.15.22 age confidence
ty (changelog) >=0.0.56>=0.0.62 age confidence

Release Notes

astral-sh/ruff (ruff)

v0.15.22

Compare Source

Release Notes

Released on 2026-07-16.

Preview features
  • [pycodestyle] Add an autofix for E402 (#​22212)
  • [refurb] Allow subclassing builtins in stub files (FURB189) (#​26812)
  • [ruff] Add rule to replace noqa comments with ruff:ignore (RUF105) (#​26423)
  • [ruff] Add rule to use human-readable names in ruff:ignore comments (RUF106) (#​26682)
  • [ruff] Add rule to use human-readable names in configuration selectors (RUF201) (#​26772)
Bug fixes
  • [flake8-pyi] Fix false positive in __all__ (PYI053) (#​26872)
Rule changes
  • [pylint] Ignore mutable type updates in redefined-loop-name (PLW2901) (#​25733)
Performance
  • Avoid redundant lexer token bookkeeping (#​26765)
  • Avoid redundant pending-indentation writes (#​26774)
  • Avoid unnecessary identifier lookahead (#​26525)
  • Reuse parser scratch buffers (#​26798)
Documentation
  • Document argfile support (#​26803)
  • [flake8-datetimez] Clarify naming guidance for datetime.today (DTZ002) (#​26658)
  • [pycodestyle] Document E731 fix safety (#​26847)
  • [ruff] Clarify intentional async contexts for unused-async (RUF029) (#​26641)
Contributors

Install ruff 0.15.22

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.ps1 | iex"

Download ruff 0.15.22

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ruff

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.15.21

Compare Source

Released on 2026-07-09.

Preview features
  • Add --add-ignore for adding ruff:ignore comments (#​26346)
  • [flake8-comprehensions] Drop C409 tuple comprehension preview behavior (#​25707)
  • Avoid whitespace normalization when formatting comments (#​26455)
  • [pyupgrade] Lint and fix use of deprecated abc decorators (UP051) (#​26417)
Bug fixes
  • Refine non-empty f-string detection (#​26526)
  • Detect syntax errors in individual notebook cells (#​26419)
  • [flake8-implicit-str-concat] Fix ISC003 autofix incorrectly stripping + from comments (#​26554)
Rule changes
  • [flake8-executable] Mark EXE004 fix as unsafe (#​26033)
  • [flake8-pyi] Mark PYI061 fixes as unsafe in Python files (#​26533)
  • [pydocstyle] Skip overload-with-docstring in stub files (D418) (#​26318)
Performance
  • Avoid per-token source index visitor calls (#​26506)
  • Cache parenthesized expression boundaries in the formatter (#​26344)
  • Improve performance of rendering edits in preview mode (#​26565)
  • Inline fits_element in formatter (#​26429)
  • Inline formatter printing hot paths (#​26504)
  • Lazily create builtin bindings (#​26510)
  • Skip empty trivia scans in the source indexer (#​26507)
  • Use ICF for macOS release builds (#​25780)
Formatter
  • Add --extend-exclude to ruff format (#​26372)
Documentation
  • Add "How does Ruff's import sorting compare to isort?" link to README (#​26530)
  • Fix Mozilla Firefox repository link in README (#​26537)
  • [flake8-bandit] Fix misleading docstring for mako-templates (S702) (#​26432)
  • [ruff] Fix non-triggering example for if-key-in-dict-del (RUF051) (#​26433)
Contributors
astral-sh/ty (ty)

v0.0.62

Compare Source

Released on 2026-07-21.

Bug fixes
  • Guard recursive Protocol and TypedDict relations (#​26990)
  • Prevent stack overflows in recursive type relation checks (#​26503)
  • Recover from cancelled file indexing (#​26876)
Diagnostics
  • Avoid editing ignore comments with trailing reasons (#​26939)
  • Prefer innermost inline suppressions (#​26940)
  • Remove unused own-line ignore comments (#​27013)
  • Reuse applicable own-line suppressions in --add-ignore (#​26925)
Configuration
  • Respect rules and analysis in PEP 723 script metadata configurations (#​26671)
Core type checking
  • Accept gradual constrained TypeVar solutions (#​26965)
  • Avoid recursive TypeVarTuple alias expansion (#​27032)
  • Check inherited method conflicts via the MRO (#​27019)
  • Contextually infer custom __setattr__ assignments (#​27015)
  • Fix Callable isinstance reachability (#​26970)
  • Fix Just[float] protocol matching (#​27053)
  • Fix Self binding for classmethod __new__ constructors (#​27030)
  • Fix nested short-circuit flow snapshots (#​26956)
  • Gate TypedDict PEP 728 parameters by Python version (#​26968)
  • Improve match reachability inference around value-pattern branches (#​26979)
  • Make membership and equality narrowing consistent (#​26982)
  • Preserve constrained TypeVar equality narrowing (#​26988)
  • Preserve constrained TypeVar inequality narrowing (#​26995)
  • Preserve unsatisfiable generic call constraints (#​26964)
  • Respect bounded typevars in union inference (#​27023)
  • Respect metaclass __setattr__ for class attributes (#​27000)
Performance
  • Cache non-terminal-call reachability prefixes (#​26810)
  • Cache protocol Self binding (#​26997)
  • Cache sparse reachability checkpoints (#​26811)
  • Defer statement-call narrowing gates (#​26793)
Contributors

v0.0.61

Compare Source

Released on 2026-07-17.

Bug fixes
  • Avoid recursive protocol structural comparisons (#​26721)
LSP server
  • Render Google docstrings as structured Markdown (#​26599)
Library support
  • Pydantic: Collect field metadata through subscripted generic Annotated aliases (#​26885)
Diagnostics
  • Avoid extending own-line suppressions in --add-ignore (#​26808)
Core type checking
  • Derive descriptor setter domains for protocols (#​26683)
  • Enforce declared receiver TypeVar domains (#​26863)
  • Infer isinstance results for aliases and type variables (#​26961)
  • Infer isinstance results for fixed class tuples (#​26935)
  • Narrow inline list and set membership checks (#​26955)
  • Narrow tagged unions by tag truthiness (#​26887)
  • Narrow walrus expression values (#​26949)
  • Project intersections in to_instance (#​26892)
  • Remove inferable TypeVar artifacts recursively (#​26787)
  • Respect mixin receiver domains in method overrides (#​26941)
  • Support TypeVarTuple and Unpack (#​25240)
Performance
  • Deduplicate completion labels (#​26890)
  • Only collect expected types for files open in the editor (#​25546)
  • Parallelize subtype hierarchy search (#​26875)
  • Share heap-backed parser names with CharStr (#​26594)
  • Use the new incremental checker from the ignore crate (#​26933)
Contributors

v0.0.60

Compare Source

Released on 2026-07-15.

Bug fixes
  • Expand transparent callable workaround with overloads and Awaitable[T] (#​26761)
  • Separate type-mapping caches by transformation mode (#​26857)
  • Avoid recursive protocol union redundancy checks (#​26689)
  • Handle recursive protocols in redundant-cast checks (#​26708)
LSP server
  • Prevent type that is written with a code span from being incorrectly re-wrapped during docstring Markdown rendering (#​26723)
Library support
  • Pydantic: Support populate_by_name and custom initializers (#​26764)
  • Pydantic: Warn about immediately discarded extra arguments (#​26762)
Diagnostics
  • Narrow TypeGuard keyword arguments and remove invalid-type-guard-call (#​26809)
  • Support own-line suppression comments (#​26785)
Core type checking
  • Derive descriptor setter domains for protocols (#​26683)
  • Handle cycles in derived constraint relations (#​26814)
  • Implement unified generic call inference (#​26141)
  • Preserve constraints from bound receivers (#​26776)
  • Project exact-length narrowing through TypeVars (#​26852)
  • Resolve PEP 695 aliases in type[...] annotations (#​26842)
  • Retain sequence pattern narrowing in successful match cases (#​26807)
  • Support class and static protocol methods (#​26574)
  • Support class objects satisfying instance-method protocols (#​26789)
  • Support type[Protocol] (#​26649)
  • Sync vendored typeshed stubs (#​26840). Typeshed diff
  • Treat transparent callable decorators consistently in class assignments (#​26720)
Performance
  • Compare overloaded protocol method returns pairwise (#​26684)
  • Extend PathBounds fast-path to support both upper and lower bounds (#​26782)
  • Skip Self type scans for non-generic instances (#​26703)
Contributors

v0.0.59

Compare Source

Released on 2026-07-12.

Bug fixes
  • Guard descriptor classification cycles (#​26690)
  • Respect init=False in dataclass field-order checks (#​26749)
  • Avoid duplicate diagnostics for overloaded TypeIs (#​26716)
Library support
  • Pydantic: Support custom __init__ methods (#​26699)
  • Pydantic: Support field metadata in Annotated (#​26650)
Core type checking
  • Allow unsound equality-based narrowing for builtins (#​26414)
  • Bind Self in implicit dunder calls (#​26711)
  • Correct protocol method receiver binding (#​26701)
  • Exempt ParamSpec callables from the dunder descriptor heuristic (#​26696)
  • Remove transitive TypeVar artifacts during collection inference (#​26714)
LSP server
  • Avoid broad invalidation from file check eligibility (#​26741)
  • Correct how we expand tabs in docstrings (#​26679)
  • Resolve ambiguity in Google-style docstring parsing in favour of observations from popular projects (#​26673)
CLI
  • Avoid allocation for every stdout write (#​26698)
  • Buffer diagnostic output (#​26702)
Performance
  • Cache generic context (#​26745)
  • Cache known class instances (#​26746)
  • Reuse common TypedDict constraints through intersections (#​26747)
  • Use purpose-specific types for completion and module text (#​26664)
Contributors

v0.0.58

Compare Source

Released on 2026-07-09.

Bug fixes
  • Fix protocol matching for class variables (#​26669)
  • Fix reflected binary dispatch for runtime classes (#​26623)
  • Support cached properties in protocols (#​26681)
Diagnostics
  • Add assignability context to upper-bound diagnostics (#​26645)
  • Add blanket ignore comment rule (#​26426)
  • Improve protocol attribute diagnostic context (#​26644)
Library support
  • Pydantic: Add fields from mixin classes (#​26631)
  • Pydantic: Add support for validate_by_{name,alias} (#​26598)
  • Pydantic: Add support for validation_alias (#​26629)
  • Pydantic: Fix float conversion in unions (#​26655)
  • Pydantic: Ignore private attributes (#​26630)
  • Pydantic: Make BaseSettings fields optional by default (#​26628)
  • Pydantic: Recognize frozen models via config (#​26648)
  • Pydantic: Support dict model configurations (#​26632)
  • Pydantic: Support validation of RootModel fields (#​26634)
  • Pydantic: Understand ellipsis as providing no default value (#​26637)
Core type checking
  • Gate membership narrowing on __contains__ semantics (#​25964)
  • Handle callable classes in solver (#​26090)
  • Infer ModuleType.__doc__ as str in the presence of a docstring (#​26505)
  • Infer metaclass-declared attributes on class instances (#​26512)
  • Respect user stub overlays during module resolution (#​26123)
Performance
  • Avoid allocating decorated parameter names (#​26666)
  • Optimize TypeCollector (#​26593)
Contributors

v0.0.57

Compare Source

Released on 2026-07-07.

Bug fixes
  • Detect async generator expressions containing await (#​26568)
  • Preserve exhaustive gradual match patterns (#​26523)
LSP server
  • Fix selection range behavior for strings (#​26532)
  • Recognize that dedent ends doctest block when parsing docstrings for signature help (#​26552)
  • Render reStructuredText hyperlinks as Markdown in hover docstrings (#​25907)
  • Update __slots__ string when renaming an attribute (#​26438)
Documentation
  • Document PYTHONPATH support in module discovery (#​3889)
Library support
  • Add support for extra arguments in Pydantic model constructors (#​26520)
  • Detect Pydantic model configurations (#​26573)
  • Distinguish lax and strict mode for Pydantic models (#​26587)
Core type checking
  • Fix subtyping/assignability for @property protocol members (#​25332)
  • Narrow isinstance against intersections containing invalid member (#​26545)
  • Narrow match subjects through structural patterns (#​25942)
  • Preserve generic functools.partial signatures (#​24583)
  • Preserve generic variadic callback semantics (#​26521)
  • Preserve invariant materialization on generic specializations (#​26578)
  • Preserve literal enum member names (#​26592)
Performance
  • Avoid exponential invariant constraint paths (#​26538)
  • Batch parallel jobs when finding references (#​26534)
  • Build module names directly in CompactString (#​26546)
  • Elide default use-def state (#​26398)
  • Reuse owned buffers for string literals (#​26547)
  • Use ICF for macOS release builds (#​3709)
  • Use cached class literal lookup for is_subclass_of (#​26585)
Contributors

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

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

@renovate
renovate Bot enabled auto-merge July 20, 2026 03:48
@renovate
renovate Bot force-pushed the renovate/python-dev-dependencies branch from e1227c5 to ce540ab Compare July 22, 2026 09:04
@renovate renovate Bot changed the title ⬆️ deps: Update Python dev dependencies ⬆️ deps: Update dependency ty to >=0.0.61 Jul 22, 2026
@renovate
renovate Bot force-pushed the renovate/python-dev-dependencies branch from ce540ab to 31e2fe3 Compare July 22, 2026 17:43
@renovate renovate Bot changed the title ⬆️ deps: Update dependency ty to >=0.0.61 ⬆️ deps: Update Python dev dependencies Jul 22, 2026
@renovate
renovate Bot force-pushed the renovate/python-dev-dependencies branch from 31e2fe3 to 18980a1 Compare July 23, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants