Selected changesmerged Oct 18, 2026
BUG: MultiIndex.rename rejects the name keyword (GH#33778)Python · 90 + / 3 −
Introduces 4 new declarations in pandas/core/indexes/multi.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
pandas/core/indexes/multi.py ↗ · 4 files
@@ -5013,9 +5014,95 @@ def isin(self, values, level=None) -> npt.NDArray[np.bool_]: return np.zeros(len(levs), dtype=np.bool_) return levs.isin(values) - # error: Incompatible types in assignment (expression has type overloaded function,- # base class "Index" defined the type as "Callable[[Index, Any, bool], Any]")- rename = Index.set_names # type: ignore[assignment]+ @overload+ def rename(+ self,+ name: Hashable | Sequence[Hashable] | dict[Hashable, Hashable] = ...,+ *,+ names: Hashable | Sequence[Hashable] | dict[Hashable, Hashable] = ...,+ level: Hashable | Sequence[Hashable] | None = ...,+ inplace: Literal[False] = ...,+ ) -> Self: ...++ @overload+ def rename(+ self,+ name: Hashable | Sequence[Hashable] | dict[Hashable, Hashable] = ...,+ *,+ names: Hashable | Sequence[Hashable] | dict[Hashable, Hashable] = ...,+ level: Hashable | Sequence[Hashable] | None = ...,+ inplace: Literal[True],+ ) -> None: ...++ @overload+ def rename(+ self,+ name: Hashable | Sequence[Hashable] | dict[Hashable, Hashable] = ...,+ *,+ names: Hashable | Sequence[Hashable] | dict[Hashable, Hashable] = ...,+ level: Hashable | Sequence[Hashable] | None = ...,
improve diagnostic for literals in lint attributesRust · 83 + / 53 −
Introduces 3 new declarations in compiler/rustc_attr_parsing/src/attributes/lint.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
compiler/rustc_attr_parsing/src/attributes/lint.rs ↗ · 7 files
@@ -48,58 +48,70 @@ impl LintParser { }; for item in parsers {- if let Some(p) = item.meta_item() {- match p.args() {- ArgParser::NoArgs => {- let (tool, lint_name, rest) = match &*p.path().0.segments {- [] => unreachable!(),- [lint_name] => (None, lint_name.ident.name, None),- [tool, lint_name] => (Some(tool.ident), lint_name.ident.name, None),- [tool, lint_name, rest @ ..] => {- let rest = rest- .iter()- .map(|s| s.ident.name)- .collect::<Vec<_>>()- .into();- (Some(tool.ident), lint_name.ident.name, Some(rest))- }- };+ match item {+ MetaItemOrLitParser::MetaItemParser(p) => {+ match p.args() {+ ArgParser::NoArgs => {+ let (tool, lint_name, rest) = match &*p.path().0.segments {+ [] => unreachable!(),+ [lint_name] => (None, lint_name.ident.name, None),+ [tool, lint_name] => {+ (Some(tool.ident), lint_name.ident.name, None)+ }+ [tool, lint_name, rest @ ..] => {+ let rest = rest+ .iter()+ .map(|s| s.ident.name)
🔥 Remove deprecated `openapi_prefix` and unused `**extra` from `FastAPI`Python · 1 + / 35 −
Reworks 30 lines of existing logic in fastapi/applications.py.
Changes how existing systems design behaves. Tests changed with it, with code of their own.
fastapi/applications.py ↗ · 2 files
@@ -641,21 +640,6 @@ async def read_items(): """ ), ] = None,- openapi_prefix: Annotated[- str,- Doc(- """- A URL prefix for the OpenAPI URL.- """- ),- deprecated(- """- "openapi_prefix" has been deprecated in favor of "root_path", which- follows more closely the ASGI standard, is simpler, and more- automatic.- """- ),- ] = "", root_path: Annotated[ str, Doc(
process: return unregister fn from finalizationJavaScript · 18 + / 5 −
Reworks 19 lines of existing logic in lib/internal/process/finalization.js.
Changes how existing runtime behaves. Tests changed with it, with code of their own.
lib/internal/process/finalization.js ↗ · 4 files
@@ -84,33 +84,45 @@ function createFinalization() { ref.fn = fn; registry ||= new SafeFinalizationRegistry(clear);- registry.register(obj, ref);+ registry.register(obj, ref, ref); refs[event].add(ref);++ // The returned function must not capture `obj`, otherwise it would+ // never be garbage collected while the caller holds the function.+ return function unregister() {+ if (!refs[event].delete(ref)) {+ return;+ }+ registry.unregister(ref);+ uninstall(event);+ }; } /** * Execute the given function when the process exits, * and clean things up when the object is gc. * @param {any} obj * @param {Function} fn+ * @returns {Function} A function that removes this registration. */ function register(obj, fn) { validateObject(obj, 'obj', kValidateObjectAllowFunction); - _register('exit', obj, fn);+ return _register('exit', obj, fn); }