GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||
GeezerVison is showing github.com — Drop unify's ignored scalar flags inside the library, and share the UDT leaf walkers by eriknw · Pull Request #665 · python-graphblas/python-graphblas Conversation
Member
Stacked on #663. Follow-ups to #591 from review. This is a refactor with no change in behavior. Every existing unify's scalar flags.
Walkers.
Some walkers stay separate. Each reads a literal by its own rules, and merging them would
Tests. A new row in A differential check compared the old and new walkers on 362 dtypes:
It also covered 8,014 literal values and 131,044 dtype pairs. All 665,406 results matched on Questions for Erik
🤖 Generated with Claude Code
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@ ## 56-udt-jit-edge-cases #665 +/- ## ========================================================= + Coverage 99.08% 99.20% +0.11% ========================================================= Files 109 109 Lines 35859 35842 -17 Branches 4100 4087 -13 ========================================================= + Hits 35532 35557 +25 + Misses 183 164 -19 + Partials 144 121 -23 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
b85d9a4 to
20ce9b8
Compare
f666203 to
080a941
Compare
5ec2d02 to
427a2fa
Compare
b9fbfa3 to
8387a9e
Compare
8387a9e to
bc9c687
Compare
bc40c1d to
d65e1d2
Compare
unify has ignored is_left_scalar and is_right_scalar since a literal is typed before it gets there, so the fill-value and ewise_union calls in Vector, Matrix and Scalar stop passing them.
get_typed_op took is_left_scalar and is_right_scalar only to hand them to unify, which ignores them. Drop them from get_typed_op and from every caller in Vector, Matrix, Scalar and _get_typed_op_from_exprs.
_has_half_leaf, _has_narrow_float_leaf, _has_duration_leaf, _numba_untyped_array_element and _raw_bytes_element each walked records, nested records, arrays of records and arrays of arrays to test each leaf. They now test the leaves dtypes._iter_leaves yields, which walks them the same way. A test checks that a field holding an array of arrays of bool, which numpy keeps unflattened, still gets the message for an array Numba cannot type.
The inner leaves() of _check_leaves_compare was _leaf_dtypes again.
_int_beyond_leaf and _beyond_as_infinity read a literal's parts by the same rules, and the comparison path called the first only to decide whether to call the second. _beyond_as_infinity now returns None when there is no such int, and _int_beyond_leaf goes.
_check_udt_pair and _corresponding_leaves each compared the leaf paths and then the field shapes of two records, one to raise KeyError and one to return a reason. _record_leaf_mismatch now says where they differ, and each caller words it as before. The rules for array UDTs stay apart: operands broadcast, a stored element does not.
d65e1d2 to
dbebe98
Compare
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.