Skip to content

REPL errors out on numpy.array initialization expression #879

Closed
@georgipeev

Description

@georgipeev

As the user starts typing a numpy.array initialization expression, the REPL produces a TypeError and exits.
Consider the following example, where the error is produced when the user tries to type np.array([1, 2:

(env) /Users/georgepf>bpython
bpython version 0.20.1 on top of Python 3.9.1 /Users/georgepf/env/bin/python3
>>>  import numpy as np
>>>  np.array([1, 
Traceback (most recent call last):
  File "/Users/georgepf/env/bin/bpython", line 8, in <module>
    sys.exit(main())
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsies.py", line 221, in main
    exit_value = repl.mainloop(True, paste)
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsies.py", line 133, in mainloop
    self.process_event_and_paint(e)
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsies.py", line 97, in process_event_and_paint
    self.process_event(e)
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsiesfrontend/repl.py", line 658, in process_event
    return self.process_key_event(e)
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsiesfrontend/repl.py", line 825, in process_key_event
    self.add_normal_character(e)
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsiesfrontend/repl.py", line 1111, in add_normal_character
    self.cursor_offset += 1
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsiesfrontend/repl.py", line 1821, in _set_cursor_offset
    self.update_completion()
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/curtsiesfrontend/repl.py", line 1143, in update_completion
    self.list_win_visible = self.complete(tab)
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/repl.py", line 770, in complete
    self.matches_iter.update(
  File "/Users/georgepf/env/lib/python3.9/site-packages/bpython/repl.py", line 356, in update
    self.start, self.end, self.current_word = self.completer.locate(
TypeError: cannot unpack non-iterable NoneType object
(env) /Users/georgepf>

This was on an M1 MacBook Pro running macOS Big Sur 11.1, python 3.9.1 and bpython are running natively on Apple silicon, numpy is 1.21.0 compiled locally for M1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions