Daily edition

Oct 18, 2026

The edition exactly as it was published. Nothing here is re-selected on a later reading.

Oct 19, 20264 reads · 45 merged PRs screened

core implementation

pandas-dev/pandas · #70915

Files changed →View PR ↗

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 = ...,

language design

rust-lang/rust · #164486

Files changed →View PR ↗

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)

systems design

fastapi/fastapi · #16518

Files changed →View PR ↗

🔥 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(

runtime

nodejs/node · #66482

Files changed →View PR ↗

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);   } 

Read today’s edition →