Daily edition

Sep 20, 2026

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

Sep 21, 20265 reads · 67 merged PRs screened

core implementation

pandas-dev/pandas · #68000

Files changed →View PR ↗

BUG: named agg result depended on the output name matching the column name (GH#63743)Python · 40 + / 4

Introduces 3 new declarations in pandas/core/apply.py.

Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.

pandas/core/apply.py · 4 files

@@ -1902,10 +1902,22 @@ def reconstruct_func(     names, and the reconstructed order of columns.     If relabeling is False, the columns and order will be None. +    Named aggregation is the one exception: when ``allow_skip_normalization`` is+    True, every output name equals its source column name, and every aggfunc+    reduces to a scalar, relabeling is reported as False (and columns/order as+    None) even though named aggregation was used, because the caller can consume+    the un-normalized func directly.+     Parameters     ----------     func: agg function (e.g. 'min' or Callable) or list of agg functions         (e.g. ['min', np.max]) or dictionary (e.g. {'A': ['min', np.max]}).+    allow_skip_normalization: bool, default False+        Whether the caller can handle the un-normalized ``{column: aggfunc}`` form+        that named aggregation reduces to when every output name equals its source+        column name and every aggfunc is a scalar reduction. Callers that rely on+        ``columns``/``order`` being returned whenever named aggregation was used+        must leave this False.     **kwargs: dict, kwargs used in is_multi_agg_with_relabel and         normalize_keyword_aggregation function for relabelling 

core implementation

TheAlgorithms/Python · #11785

Files changed →View PR ↗

[Feature] Implemented DES Algorithm in ECB modePython · 557 + / 0

Introduces 16 new declarations in ciphers/des_ecb.py.

Adds new core implementation rather than adjusting what was there. Read the linked PR for the surrounding test context.

ciphers/des_ecb.py · 2 files

@@ -0,0 +1,557 @@+"""+Python program for DES (Data Encryption Standard) using Electronic Codebook (ECB) mode.++DES is a symmetric-key block cipher that encrypts data in fixed-size blocks (64 bits).+In ECB mode, the plaintext is divided into 64-bit blocks, and each block is encrypted+independently using the same key. This makes ECB the simplest block cipher mode, but+also one of the least secure, as identical plaintext blocks will produce identical+ciphertext blocks.++This implementation of DES includes key scheduling, encryption, and decryption.+It uses standard DES operations such as initial and final permutations, expansion,+permutation, and S-box lookups. Padding is applied to ensure the plaintext length is+a multiple of 64 bits.++Warning: ECB mode is not secure for most use cases due to its vulnerability to block+repetition analysis. Consider using a more secure mode of operation, such as CBC+(Cipher Block Chaining), for sensitive data encryption.++References:+- Handbook of Applied Cryptography (Algorithm 7.82)+- Handbook of Applied Cryptography (Algorithm 7.83)+- Handbook of Applied Cryptography (Algorithm 9.29)+- https://en.wikipedia.org/wiki/Data_Encryption_Standard+"""++import random++# fmt: off++# Initial Permutation Table+IP = [58, 50, 42, 34, 26, 18, 10, 2,+      60, 52, 44, 36, 28, 20, 12, 4,+      62, 54, 46, 38, 30, 22, 14, 6,

language design

rust-lang/rust · #162925

Files changed →View PR ↗

even more cleanups for `rustc_builtin_macros`Rust · 155 + / 265

Introduces 5 new declarations in compiler/rustc_builtin_macros/src/deriving/generic/mod.rs.

Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.

compiler/rustc_builtin_macros/src/deriving/generic/mod.rs · 14 files

@@ -965,70 +927,66 @@ impl<'a> MethodDef<'a> {         !self.explicit_self     } -    fn extract_arg_details(-        &self,-        cx: &ExtCtxt<'_>,-        trait_: &TraitDef<'_>,-        type_ident: Ident,-        generics: &Generics,-    ) -> ArgDetails {+    fn extract_arg_details(&self, cx: &ExtCtxt<'_>, trait_: &TraitDef<'_>) -> ArgDetails {         let mut selflike_args = ThinVec::new();         let mut nonselflike_args = Vec::new();-        let mut nonself_arg_tys = Vec::new();         let span = trait_.span; -        let explicit_self = self.explicit_self.then(|| {+        if self.explicit_self {             // This constructs a fresh `self` path.             selflike_args.push(cx.expr_self(span));-            respan(span, SelfKind::Region(None, ast::Mutability::Not))-        });+        }          for (ty, name) in self.nonself_args.iter() {-            let ast_ty = ty.to_ty(cx, span, type_ident, generics);             let ident = Ident::new(*name, span);-            nonself_arg_tys.push((ident, ast_ty));-             let arg_expr = cx.expr_ident(span, ident);              match ty {                 // Selflike (`&Self`) arguments only occur in non-static methods.

runtime

nodejs/node · #66052

Files changed →View PR ↗

stream: trim per-stream costs in webstreamsJavaScript · 103 + / 150

Introduces 5 new declarations in lib/internal/webstreams/readablestream.js.

Adds new runtime rather than adjusting what was there. Read the linked PR for the surrounding test context.

lib/internal/webstreams/readablestream.js · 3 files

@@ -1350,57 +1343,29 @@ ObjectDefineProperties(ReadableByteStreamController.prototype, {   [SymbolToStringTag]: getNonWritablePropertyDescriptor(ReadableByteStreamController.name), }); -function InternalReadableStream(start, pull, cancel, highWaterMark, size) {-  ObjectSetPrototypeOf(this, ReadableStream.prototype);-  markTransferMode(this, false, true);-  this[kType] = 'ReadableStream';-  this[kState] = createReadableStreamState();-  const controller = new ReadableStreamDefaultController(kSkipThrow);+function createReadableStream(start, pull, cancel, highWaterMark = 1, size = defaultSizeAlgorithm) {+  const stream = new ReadableStream(kSkipThrow);   setupReadableStreamDefaultController(-    this,-    controller,+    stream,+    new ReadableStreamDefaultController(kSkipThrow),     start,     pull,     cancel,     highWaterMark,     size);-}--ObjectSetPrototypeOf(InternalReadableStream.prototype, ReadableStream.prototype);-ObjectSetPrototypeOf(InternalReadableStream, ReadableStream);--function createReadableStream(start, pull, cancel, highWaterMark = 1, size = defaultSizeAlgorithm) {-  const stream = new InternalReadableStream(start, pull, cancel, highWaterMark, size);--  // For spec compliance the InternalReadableStream must be a ReadableStream-  stream.constructor = ReadableStream;   return stream; }

core implementation

numpy/numpy · #32467

Files changed →View PR ↗

BUG: preserve integer ordering in digitize monotonicity checkC · 10 + / 98

Reworks 65 lines of existing logic in numpy/_core/src/multiarray/compiled_base.c.

Changes how existing core implementation behaves. Tests changed with it, with code of their own.

numpy/_core/src/multiarray/compiled_base.c · 8 files

@@ -26,57 +26,6 @@ typedef enum {     PACK_ORDER_BIG } PACK_ORDER; -/*- * Returns -1 if the array is monotonic decreasing,- * +1 if the array is monotonic increasing,- * and 0 if the array is not monotonic.- */-static int-check_array_monotonic(const double *a, npy_intp lena)-{-    npy_intp i;-    double next;-    double last;--    if (lena == 0) {-        /* all bin edges hold the same value */-        return 1;-    }-    last = a[0];--    /* Skip repeated values at the beginning of the array */-    for (i = 1; (i < lena) && (a[i] == last); i++);--    if (i == lena) {-        /* all bin edges hold the same value */-        return 1;-    }--    next = a[i];-    if (last < next) {-        /* Possibly monotonic increasing */-        for (i += 1; i < lena; i++) {

Read today’s edition →