Skip to content

ak.is_none raising on typetracer array input #1864

@douglasdavis

Description

@douglasdavis

Version of Awkward Array

2.0.0rc2

Description and code to reproduce

Looks like is_none isn't supported by type tracer arrays

>>> import awkward as ak
>>> a = ak.from_iter([[None, 1], None, [1, 2]])
>>> ak.is_none(a, axis=0)
<Array [False, True, False] type='3 * bool'>
>>> ak.is_none(a, axis=1)
<Array [[True, False], None, [False, False]] type='3 * option[var * bool]'>
>>> tt = ak.Array(a.layout.typetracer.forget_length())
>>> ak.is_none(tt, axis=0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 28, in is_none
    return _impl(array, axis, highlevel, behavior)
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 82, in _impl
    out = layout.recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/content.py", line 1588, in recursively_apply
    return self._recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/indexedoptionarray.py", line 1626, in _recursively_apply
    result = action(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 72, in getfunction_outer
    return layout.recursively_apply(getfunction_inner, behavior)
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/content.py", line 1588, in recursively_apply
    return self._recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/indexedoptionarray.py", line 1626, in _recursively_apply
    result = action(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 47, in getfunction_inner
    index = nplike.index_nplike.where(tag, 0, nplike.asarray(layout.index))
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/_typetracer.py", line 789, in where
    raise ak._errors.wrap_error(NotImplementedError)
NotImplementedError: 

See if this has been reported at https://github.com/scikit-hep/awkward-1.0/issues
>>> ak.is_none(tt, axis=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 28, in is_none
    return _impl(array, axis, highlevel, behavior)
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 82, in _impl
    out = layout.recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/content.py", line 1588, in recursively_apply
    return self._recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/indexedoptionarray.py", line 1640, in _recursively_apply
    return continuation()
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/indexedoptionarray.py", line 1602, in continuation
    content._recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/listoffsetarray.py", line 2033, in _recursively_apply
    return continuation()
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/listoffsetarray.py", line 1995, in continuation
    content._recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/indexedoptionarray.py", line 1626, in _recursively_apply
    result = action(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 72, in getfunction_outer
    return layout.recursively_apply(getfunction_inner, behavior)
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/content.py", line 1588, in recursively_apply
    return self._recursively_apply(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/contents/indexedoptionarray.py", line 1626, in _recursively_apply
    result = action(
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/operations/ak_is_none.py", line 47, in getfunction_inner
    index = nplike.index_nplike.where(tag, 0, nplike.asarray(layout.index))
  File "/Users/ddavis/.pyenv/versions/dev/lib/python3.10/site-packages/awkward/_typetracer.py", line 789, in where
    raise ak._errors.wrap_error(NotImplementedError)
NotImplementedError: 

See if this has been reported at https://github.com/scikit-hep/awkward-1.0/issues

Metadata

Metadata

Assignees

Labels

bugThe problem described is something that must be fixed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions