Skip to content
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

[Python] Improve error message in compute functions when passing wrong positional/keyword arguments #30270

Closed
asfimport opened this issue Nov 17, 2021 · 1 comment

Comments

@asfimport
Copy link

From https://stackoverflow.com/questions/69990087/how-to-use-pyarrow-compute-is-in-function

Small example of the current error messages:

array1 = pa.array([1,2,3,4])
array2 = pa.array([1,4])

import pyarrow.compute as pc

# Using positional for value_set as well (the signature indicates with * that this are keyword
# only arguments, but the error message is still confusing compared to plain python
>>> pc.is_in(array1, array2)
...
ArrowInvalid: Function is_in accepts 1 arguments but attempted to look up kernel(s) with 2

# Using keyword for the first argument (which is allowed in pure python functions)
# gives confusing error message because it passes it to the options
>>> pc.is_in(values=array1,value_set=array2)
...
~/scipy/repos/arrow/python/pyarrow/_compute.pyx in pyarrow._compute.SetLookupOptions.__init__()

TypeError: __init__() got an unexpected keyword argument 'values'

I think it should be quite easy to improve the error messaging on this front, since we know how many arguments the kernel takes.

cc @amol-

Reporter: Joris Van den Bossche / @jorisvandenbossche
Assignee: Joris Van den Bossche / @jorisvandenbossche

PRs and other links:

Note: This issue was originally created as ARROW-14732. Please see the migration documentation for further details.

@asfimport
Copy link
Author

Antoine Pitrou / @pitrou:
Issue resolved by pull request 11721
#11721

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants