Dave Challis created ARROW-2423:
-----------------------------------
Summary: [Python] PyArrow datatypes raise ValueError on equality
checks against non-PyArrow objects
Key: ARROW-2423
URL: https://issues.apache.org/jira/browse/ARROW-2423
Project: Apache Arrow
Issue Type: Bug
Components: Python
Affects Versions: 0.9.0
Environment: Mac OS High Sierra
PyArrow 0.9.0 (py36_1)
Python 3.6.3
Reporter: Dave Challis
Advertising
Checking a PyArrow datatype object for equality with non-PyArrow datatypes
causes a `ValueError` to be raised, rather than either returning a True/False
value, or returning
[NotImplemented|https://docs.python.org/3/library/constants.html#NotImplemented]
if the comparison isn't implemented.
E.g. attempting to call:
{code:java}
import pyarrow
pyarrow.int32() == 'foo'
{code}
results in:
{code:java}
Traceback (most recent call last):
File "types.pxi", line 1221, in pyarrow.lib.type_for_alias
KeyError: 'foo'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "t.py", line 2, in <module>
pyarrow.int32() == 'foo'
File "types.pxi", line 90, in pyarrow.lib.DataType.__richcmp__
File "types.pxi", line 113, in pyarrow.lib.DataType.equals
File "types.pxi", line 1223, in pyarrow.lib.type_for_alias
ValueError: No type alias for foo
{code}
The expected outcome for the above would be for the comparison to return
`False`, as that's the general behaviour for comparisons between objects of
different types (e.g. `1 == 'foo'` or `object() == 12.4` both return `False`).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)