-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
upstream KeyError: ('awkward_ListOffsetArray_reduce_local_nextparents_64', <class 'numpy.int64'>, <class 'numpy.int32'>)
#307
Comments
Looks like the paired awkward-cpp version has an impact as well. I'm actually having a confusing time trying to force installing explicit combinations of |
I think this counts as an awkward bug, because we don't define any overloads for non int-64 types. We should probably do that. I'm not sure why this suddenly happens since 2.2.x, but something is producing an Index32 instead of Index64, triggering this pre-existing bug. It looks like whatever is in the Parquet file. We might have changed something related to this upstream, but nothing comes to mind. |
Whether to make int32 or int64 indexes is an options when converting ak to arrow. Perhaps the default changed? |
Those I install Awkward from a git-cloned repo, so it's not as easy, and maybe you're doing the same thing. My background package manager is conda (Mambaforge), and I minimize the number of packages installed by pip into this environment, but Awkward is one of them. Step 1: make sure there are no old pip uninstall awkward awkward-cpp # multiple times; each time removes only one Step 2: with the latest nox -s prepare
pip install -v ./awkward-cpp
pip install -e . Just clearing it out and reinstalling it whenever I think there's an awkward-cpp change gets my environment to a state where it works again.
Not necessarily: output |
Arrow has traditionally favored |
Yea we're getting an i32 offsets in reading parquet; here's some debugging info from
|
perhaps these arguments which of dask-awkward/src/dask_awkward/lib/io/parquet.py Lines 380 to 386 in 6516145
|
Okay, yeah: @agoose77 is right. |
|
I have an up-to-date Awkward, did Something (could be pytest) is taking away the most relevant part of the stack trace:
It goes from dask-awkward to awkward/_dispatch.py to awkward/errors.py without showing me the step where it's failing in I found my way to the error by inserting A better solution would be to add specializations to the kernel, so that it can be used in these situations without making a new 64-bit array. That solution has a slower turn-around time because it would require a new awkward-cpp, but since you marked these as Unless you tell me otherwise, that's how I'm going to fix this, by adding kernel specializations, deploying a new awkward-cpp, and then a new awkward. (@agoose77 should focus on his viva: I'll be doing all of those steps myself.) |
I definitely don't mind whatever the timing may be! |
scikit-hep/awkward#2572 should do it. Since you're not pressed for time, we'll wait until after @agoose77's viva to review that PR and do a pair of awkward-cpp/awkward releases. It will be on the weekend or Monday. |
Didn't need to! Having a quick coffee break and LGTM. |
These xfails can now be removed with Awkward 2.3.1: --- a/tests/test_structure.py
+++ b/tests/test_structure.py
@@ -362,7 +362,6 @@ def test_singletons(daa, L4, tmp_path):
)
-@pytest.mark.xfail(reason="upstream awkward dtype mismatch")
@pytest.mark.parametrize("ascending", [True, False])
def test_argsort(daa, caa, ascending):
assert_eq(
@@ -379,7 +378,6 @@ def test_argsort(daa, caa, ascending):
)
-@pytest.mark.xfail(reason="upstream awkward dtype mismatch")
@pytest.mark.parametrize("ascending", [True, False])
def test_sort(daa, caa, ascending):
assert_eq( |
thanks! |
Problem surfaces with
awkward==2.3.0
failures:
Some kind of dtype mismatch it looks like? I'll look at the awkward changelog to see if I can find anythin but Cc @agoose77 for visibility!
The text was updated successfully, but these errors were encountered: