Commit 8d17a84
authored
* Skip no-op astype in _delayed_read_window (#1624)
After #1601 widened the call site to always pass target_dtype, every
dask chunk ran arr.astype(target_dtype) even when arr.dtype already
matched. numpy.astype defaults to copy=True and so allocated a same-
dtype chunk-sized buffer and memcpy on every read. Gate the cast on a
real dtype mismatch; the #1597 mask path still promotes uint to float64
inline so every chunk lands in the dask-declared dtype.
Regression test in test_dask_no_op_astype_1624.py wraps read_to_array
to capture an ndarray subclass that records astype calls, then asserts
no same-dtype call survives the per-chunk return path.
* Address review: drop stub test, exercise uint16 fixture array
Copilot review on #1626 flagged two unused-variable issues. Fixes:
- Delete test_float32_chunks_avoid_redundant_copy. It declared
same_dtype_casts and wrapped _delayed_read_window without recording
anything, so it only asserted output dtype -- which does not
validate the #1624 regression. test_astype_skipped_when_dtypes_match
already covers the same surface properly via an ndarray subclass
that tracks astype calls; verified it fails on the pre-fix code
with "Same-dtype astype still runs per chunk".
- In test_uint16_mask_path_still_promotes, exercise the previously-
unused arr fixture: assert that pixels equal to the 65535 sentinel
become NaN and every other pixel matches arr.astype(float64).
Anchors the test to fixture values so regressions in the mask
branch surface here, not just as dtype drift.
1 parent 9a5f55e commit 8d17a84
2 files changed
Lines changed: 137 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1868 | 1868 | | |
1869 | 1869 | | |
1870 | 1870 | | |
1871 | | - | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
1872 | 1879 | | |
1873 | 1880 | | |
1874 | 1881 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
0 commit comments