Repository navigation
Commit e118ab8
committed
fix: make the chunk normalizer the one judge of a chunk specification
Chunk specifications were parsed by `normalize_chunks_nd`, but a separate
duck-typed classifier, `_is_rectilinear_chunks`, ran on the raw input first
at three sites to decide whether the spec was rectilinear. Two opinions on
the same input is the shape of the bug in #4374, and they could disagree:
a 0-d numpy array counted as rectilinear because it has `__iter__`.
The classifier is gone. Each site normalizes first and asks the resulting
`ChunkGrid` (`is_regular`); stored rectilinear metadata passed as
`chunks=` counts as rectilinear even when its edges are uniform. The shard
resolver sends regular and rectilinear shard specs through the same
normalizer.
Also fixed on the way:
- The legacy v2 branch of `AsyncArray.create` tested `chunks or
chunk_shape`, so `zarr.create(chunks=np.array([...]), zarr_format=2)`
failed with "truth value of an array is ambiguous". It now uses the
`is not None` form the v3 branch already had.
- 0-d numpy arrays unwrap to their scalar in both normalizers instead of
failing with "len() of unsized object".
- A non-integer scalar spec (`2.0`, `np.float64`) raises the normalizer's
own TypeError instead of "object has no len()".
Assisted-by: ClaudeCode:claude-fable-5-11 parent ba883a5 commit e118ab8
3 files changed
Lines changed: 100 additions & 104 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | 48 | | |
50 | 49 | | |
51 | 50 | | |
| |||
514 | 513 | | |
515 | 514 | | |
516 | 515 | | |
517 | | - | |
518 | | - | |
519 | | - | |
520 | 516 | | |
521 | 517 | | |
522 | 518 | | |
523 | | - | |
524 | | - | |
| 519 | + | |
525 | 520 | | |
526 | 521 | | |
527 | | - | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
528 | 525 | | |
529 | 526 | | |
530 | 527 | | |
| |||
4530 | 4527 | | |
4531 | 4528 | | |
4532 | 4529 | | |
4533 | | - | |
4534 | | - | |
| 4530 | + | |
| 4531 | + | |
| 4532 | + | |
| 4533 | + | |
| 4534 | + | |
| 4535 | + | |
| 4536 | + | |
| 4537 | + | |
| 4538 | + | |
| 4539 | + | |
| 4540 | + | |
| 4541 | + | |
4535 | 4542 | | |
4536 | 4543 | | |
4537 | 4544 | | |
| |||
4541 | 4548 | | |
4542 | 4549 | | |
4543 | 4550 | | |
4544 | | - | |
4545 | | - | |
4546 | | - | |
4547 | | - | |
4548 | | - | |
4549 | | - | |
4550 | | - | |
4551 | | - | |
4552 | 4551 | | |
4553 | 4552 | | |
4554 | 4553 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
334 | 333 | | |
335 | 334 | | |
336 | 335 | | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | 336 | | |
362 | 337 | | |
363 | 338 | | |
| |||
756 | 731 | | |
757 | 732 | | |
758 | 733 | | |
| 734 | + | |
| 735 | + | |
759 | 736 | | |
760 | 737 | | |
761 | 738 | | |
| |||
834 | 811 | | |
835 | 812 | | |
836 | 813 | | |
| 814 | + | |
| 815 | + | |
837 | 816 | | |
838 | 817 | | |
839 | 818 | | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
840 | 824 | | |
841 | 825 | | |
842 | 826 | | |
| |||
952 | 936 | | |
953 | 937 | | |
954 | 938 | | |
955 | | - | |
956 | | - | |
957 | | - | |
958 | | - | |
959 | | - | |
960 | | - | |
961 | | - | |
962 | | - | |
| 939 | + | |
963 | 940 | | |
| 941 | + | |
| 942 | + | |
964 | 943 | | |
965 | 944 | | |
966 | 945 | | |
| |||
984 | 963 | | |
985 | 964 | | |
986 | 965 | | |
987 | | - | |
| 966 | + | |
988 | 967 | | |
989 | | - | |
| 968 | + | |
990 | 969 | | |
991 | | - | |
| 970 | + | |
992 | 971 | | |
993 | | - | |
| 972 | + | |
| 973 | + | |
994 | 974 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | 22 | | |
24 | 23 | | |
25 | 24 | | |
| |||
557 | 556 | | |
558 | 557 | | |
559 | 558 | | |
560 | | - | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
600 | | - | |
601 | | - | |
602 | | - | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | 559 | | |
610 | 560 | | |
611 | 561 | | |
| |||
1211 | 1161 | | |
1212 | 1162 | | |
1213 | 1163 | | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
1214 | 1231 | | |
1215 | 1232 | | |
1216 | 1233 | | |
| |||
0 commit comments