7-day edition

Sep 10, 2026 – Sep 16, 2026

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

Sep 17, 20263 reads · 567 merged PRs screened

core implementation

TheAlgorithms/Python · #13183

Files changed →View PR ↗

Add Dancing Links (DLX) algorithm for Exact Cover problemPython · 165 + / 0

Introduces 11 new declarations in other/dancing_links.py.

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

other/dancing_links.py · 1 files

@@ -0,0 +1,165 @@+"""+Implementation of the Dancing Links algorithm (Algorithm X) by Donald Knuth.+https://en.wikipedia.org/wiki/Knuth's_Algorithm_X+https://en.wikipedia.org/wiki/Dancing_links++>>> universe = [1, 2, 3, 4, 5, 6, 7]+>>> subsets = [+...     [1, 4, 7],+...     [1, 4],+...     [4, 5, 7],+...     [3, 5, 6],+...     [2, 3, 6, 7],+... ]+>>> dlx = DancingLinks(universe, subsets)+>>> sols = dlx.solve()+>>> len(sols) == 0+True+"""+++class DLXNode:+    """Represents a node in the Dancing Links structure."""++    def __init__(self) -> None:+        self.left = self.right = self.up = self.down = self+        self.column = None+++class ColumnNode(DLXNode):+    """Represents a column header node, keeping track of its column size."""++    def __init__(self, name: str) -> None:+        super().__init__()

language design

denoland/deno · #36835

Files changed →View PR ↗

fix(cli): preserve double dash before the entrypointRust · 188 + / 0

Introduces 8 new declarations in libs/cli_parser/src/tests.rs.

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

libs/cli_parser/src/tests.rs · 3 files

@@ -1195,6 +1214,48 @@ fn eval_print() {   assert_eq!(r.get_one("code_arg"), Some("1+1")); } +#[test]+fn eval_double_dash_before_code() {+  let r = parse(+    &TEST_ROOT,+    &svec!["deno", "eval", "--", "-1; console.log(0)", "arg1"],+  )+  .unwrap();+  assert_eq!(r.get_one("code_arg"), Some("-1; console.log(0)"));+  assert_eq!(r.trailing, vec!["arg1"]);+}++#[test]+fn eval_double_dash_before_code_keeps_second_separator() {+  // Only the first `--` is special (mirrors clap): it was consumed to make+  // the positional literal, so a later `--` is forwarded as-is even though+  // eval strips the separator in `deno eval code -- a`.+  let r =+    parse(&TEST_ROOT, &svec!["deno", "eval", "--", "code", "--", "a"]).unwrap();+  assert_eq!(r.get_one("code_arg"), Some("code"));+  assert_eq!(r.trailing, vec!["--", "a"]);+}++#[test]+fn upgrade_double_dash_stays_trailing() {+  // Commands without trailing var args don't enter positional-only mode:+  // `--` still starts (unused) trailing args, as before.+  let r =+    parse(&TEST_ROOT, &svec!["deno", "upgrade", "--", "v1", "v2"]).unwrap();+  assert_eq!(r.get_one("version-or-hash-or-channel"), None);+  assert_eq!(r.trailing, vec!["v1", "v2"]);

language design

pandas-dev/pandas · #66117

Files changed →View PR ↗

BUG: interpolate leaving NAs unfilled for pyarrow dtypesPython · 5 + / 12

Reworks 13 lines of existing logic in pandas/core/arrays/arrow/array.py.

Changes how existing language design behaves. Tests changed with it, with code of their own.

pandas/core/arrays/arrow/array.py · 3 files

@@ -3227,18 +3227,11 @@ def interpolate(         if not self.dtype._is_numeric:             raise TypeError(f"Cannot interpolate with {self.dtype} dtype") -        if (-            method == "linear"-            and limit_area is None-            and limit is None-            and limit_direction == "forward"-        ):-            values = self._pa_array.combine_chunks()-            na_value = pa.array([None], type=values.type)-            y_diff_2 = pc.fill_null_backward(pc.pairwise_diff_checked(values, period=2))-            prev_values = pa.concat_arrays([na_value, values[:-2], na_value])-            interps = pc.add_checked(prev_values, pc.divide_checked(y_diff_2, 2))-            return self._from_pyarrow_array(pc.coalesce(self._pa_array, interps))+        # GH#65345: a pyarrow-native fast path for+        # method="linear"/limit_direction="forward" was removed here because+        # it only handled isolated NAs (leaving consecutive and trailing NAs+        # unfilled), truncated interpolated values for integer dtypes, and+        # did not upcast to float64 like the general path below.          mask = self.isna()         if self.dtype.kind == "f":

Read today’s edition →