This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [astroid](https://github.com/pylint-dev/astroid) | `<=4.1.1` → `<=4.1.2` |  |  | --- ### Release Notes <details> <summary>pylint-dev/astroid (astroid)</summary> ### [`v4.1.2`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-412) [Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.1...v4.1.2) \============================ Release date: 2026-03-22 - Fix crash accessing property `fset` in generic classes with type annotations. Closes [#​2996](https://github.com/pylint-dev/astroid/issues/2996) - Fix infinite recursion caused by cyclic inference in `Constraint`. - Fix `RecursionError` in `_compute_mro()` when circular class hierarchies are created through runtime name rebinding. Circular bases are now resolved to the original class instead of recursing. Closes [#​2967](https://github.com/pylint-dev/astroid/issues/2967) Closes [pylint-dev/pylint#10821](https://github.com/pylint-dev/pylint/issues/10821) - Fix `DuplicateBasesError` crash in dataclass transform when a class has duplicate bases in its MRO (e.g., `Protocol` appearing both directly and indirectly). Catch `MroError` at `.mro()` call sites in `brain_dataclasses.py`, consistent with the existing pattern elsewhere. Closes [#​2628](https://github.com/pylint-dev/astroid/issues/2628) - Fix `FunctionModel` returning descriptor attributes for builtin functions. Closes [#​2743](https://github.com/pylint-dev/astroid/issues/2743) - Catch `MemoryError` when inferring f-strings with extremely large format widths (e.g. `f'{0:11111111111}'`) so that inference yields `Uninferable` instead of crashing. Closes [#​2762](https://github.com/pylint-dev/astroid/issues/2762) - Fix `ValueError` in `__str__`/`repr` and error messages when nodes have extreme values (very long identifiers or large integers). Clamp pprint width to a minimum of 1 and truncate oversized values in error messages. Closes [#​2764](https://github.com/pylint-dev/astroid/issues/2764) ### [`v4.1.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-411) [Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.0...v4.1.1) \============================ Release date: 2026-02-22 - Let `UnboundMethodModel` inherit from `FunctionModel` to improve inference of dunder methods for unbound methods. Refs [#​2741](https://github.com/pylint-dev/astroid/issues/2741) - Filter `Unknown` from `UnboundMethod` and `Super` special attribute lookup to prevent placeholder nodes from leaking during inference. Refs [#​2741](https://github.com/pylint-dev/astroid/issues/2741) ### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410) [Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0) \============================ Release date: 2026-02-08 - Add support for equality constraints (`==`, `!=`) in inference. Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632) Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633) - Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint where the `Uninferable` string appeared in function arguments that were constructed dynamically. Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822) - Add support for type constraints (`isinstance(x, y)`) in inference. Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162) Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635) Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469) - Make `type.__new__()` raise clear errors instead of returning `None` - Move object dunder methods from `FunctionModel` to `ObjectModel` to make them available on all object types, not just functions. Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742) Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741) Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094) - `lineno` and `end_lineno` are now available on `Arguments`. - Add helper to iterate over all annotations nodes of function arguments, `Arguments.get_annotations()`. Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860) - Skip direct parent when determining the `Decorator` frame. Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425) - Add simple command line interface for astroid to output generated AST. Use with `python -m astroid`. - Fix incorrect type inference for `super().method()` calls that return `Self`. Previously, astroid would infer the parent class type instead of the child class type, causing pylint E1101 false positives in method chaining scenarios. Closes [#​457](https://github.com/pylint-dev/astroid/issues/457) - Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain. Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870) - Fix ability to detect .py modules inside PATH directories on Windows described by a UNC path with a trailing backslash (`\`) - Example: modutils.modpath\_from\_file(filename=r"\Mac\Code\tests\test\_resources.py", path=\["\mac\code"]) == \['tests', 'test\_resources'] - Fix `random.sample` inference crash when sequence contains uninferable elements. Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518) - Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes. Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923) </details> --- ### 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 is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44Ni4wIiwidXBkYXRlZEluVmVyIjoiNDMuODYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=--> Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/576 Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk> Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>
787 B
787 B