Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-14732

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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 7.0.0
    • Python

    Description

      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-

      Attachments

        Issue Links

          Activity

            People

              jorisvandenbossche Joris Van den Bossche
              jorisvandenbossche Joris Van den Bossche
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h 40m
                  2h 40m