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

Array.astype not supported with string literals #7131

Closed
2 tasks done
njriasan opened this issue Jun 21, 2021 · 1 comment · Fixed by #7132
Closed
2 tasks done

Array.astype not supported with string literals #7131

njriasan opened this issue Jun 21, 2021 · 1 comment · Fixed by #7132

Comments

@njriasan
Copy link
Contributor

Array.astype not working with literal strings

Providing a literal string like "float32" doesn't work with array.astype. Here is a reproducer from master:

import numba
import numpy as np

@numba.njit
def ex():
      data = np.arange(1000)
      return data.astype("float32")
  
print(ex())

Which produces the output:

Traceback (most recent call last):
  File "test.py", line 9, in <module>
    print(ex())
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 421, in _compile_for_args
    error_rewrite(e, 'typing')
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 360, in error_rewrite
    raise e
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 373, in _compile_for_args
    return_val = self.compile(tuple(argtypes))
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 911, in compile
    cres = self._compiler.compile(args, return_type)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 84, in compile
    raise retval
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 94, in _compile_cached
    retval = self._compile_core(args, return_type)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/dispatcher.py", line 107, in _compile_core
    cres = compiler.compile_extra(self.targetdescr.typing_context,
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler.py", line 675, in compile_extra
    return pipeline.compile_extra(func)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler.py", line 419, in compile_extra
    return self._compile_bytecode()
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler.py", line 483, in _compile_bytecode
    return self._compile_core()
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler.py", line 462, in _compile_core
    raise e
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler.py", line 453, in _compile_core
    pm.run(self.state)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler_machinery.py", line 343, in run
    raise patched_exception
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler_machinery.py", line 334, in run
    self._runPass(idx, pass_inst, state)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
    return func(*args, **kwargs)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler_machinery.py", line 289, in _runPass
    mutated |= check(pss.run_pass, internal_state)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/compiler_machinery.py", line 262, in check
    mangled = func(compiler_state)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/typed_passes.py", line 105, in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/typed_passes.py", line 83, in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
  File "/Users/nicholasriasanovsky/Documents/bodo/nick-numba/numba/core/typeinfer.py", line 1074, in propagate
    raise errors[0]
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of BoundFunction(array.astype for array(int64, 1d, C)) with parameters (Literal[str](float32))

During: resolving callee type: BoundFunction(array.astype for array(int64, 1d, C))
During: typing of call at test.py (7)


File "test.py", line 7:
def ex():
    <source elided>
    data = np.arange(1000)
    return data.astype("float32")
  • I have tried using the latest released version of Numba (most recent is
    visible in the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
  • I have included a self contained code sample to reproduce the problem.
    i.e. it's possible to run as 'python bug.py'.
@njriasan
Copy link
Contributor Author

This seems like a simple fix and I will submit a PR with the change.

@njriasan njriasan changed the title Array.astype not support with string literals Array.astype not supported with string literals Jun 21, 2021
njriasan added a commit to njriasan/numba that referenced this issue Jun 21, 2021
sklam added a commit that referenced this issue Oct 6, 2021
gh #7131 Support for astype with literal strings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants