open-cogsci / OpenSesame

Graphical experiment builder for the social sciences
http://osdoc.cogsci.nl/
GNU General Public License v3.0
236 stars 112 forks source link

autodetect_indentation_mode can trigger re.error Exception #733

Closed smathot closed 3 years ago

smathot commented 3 years ago

This came in as an automated bug report. It appears that something can go wrong with regular expression search for spaces, although it's unclear under which conditions this can happen.

Traceback (most recent call last):
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libqtopensesame\widgets\tree_overview.py", line 330, in mousePressEvent
    target_treeitem.open_tab()
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libqtopensesame\items\qtitem.py", line 143, in open_tab
    self.tabwidget.add(self.widget(), self.item_icon(), self.name)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libqtopensesame\items\qtitem.py", line 45, in inner
    self.init_edit_widget()
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libqtopensesame\items\inline_script.py", line 101, in init_edit_widget
    self._pyqode_tab_widget.create_new_document('Prepare', self.ext)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\pyqode\core\widgets\splittable_tab_widget.py", line 1418, in create_new_document
    self.guess_mimetype(name), **kwargs)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\pyqode\core\widgets\splittable_tab_widget.py", line 1379, in _create_code_edit
    **kwargs
  File "C:\Program Files (x86)\OpenSesame\share\opensesame_extensions\pyqode_manager\pyqode_extras\widgets\python_code_edit.py", line 107, in __init__
    self.modes.append(AutodetectIndentationMode())
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\pyqode\core\managers\modes.py", line 31, in append
    mode.on_install(self.editor)
  File "C:\Program Files (x86)\OpenSesame\share\opensesame_extensions\pyqode_manager\pyqode_extras\modes\autodetect_indentation_mode.py", line 39, in on_install
    self._autodetect_indentation()
  File "C:\Program Files (x86)\OpenSesame\share\opensesame_extensions\pyqode_manager\pyqode_extras\modes\autodetect_indentation_mode.py", line 56, in _autodetect_indentation
    code
  File "C:\Program Files (x86)\OpenSesame\lib\re.py", line 223, in findall
    return _compile(pattern, flags).findall(string)
  File "C:\Program Files (x86)\OpenSesame\lib\re.py", line 286, in _compile
    p = sre_compile.compile(pattern, flags)
  File "C:\Program Files (x86)\OpenSesame\lib\sre_compile.py", line 764, in compile
    p = sre_parse.parse(p, flags)
  File "C:\Program Files (x86)\OpenSesame\lib\sre_parse.py", line 924, in parse
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
  File "C:\Program Files (x86)\OpenSesame\lib\sre_parse.py", line 420, in _parse_sub
    not nested and not items))
  File "C:\Program Files (x86)\OpenSesame\lib\sre_parse.py", line 810, in _parse
    p = _parse_sub(source, state, sub_verbose, nested + 1)
  File "C:\Program Files (x86)\OpenSesame\lib\sre_parse.py", line 420, in _parse_sub
    not nested and not items))
  File "C:\Program Files (x86)\OpenSesame\lib\sre_parse.py", line 645, in _parse
    source.tell() - here + len(this))
re.error: nothing to repeat at position 13 (line 2, column 8)