Selected changesmerged Sep 10, 2026 – Sep 16, 2026
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__()
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"]);
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":