Skip to content

Minimum python version should be 3.9 #184

@paskino

Description

@paskino

I used an example with the advanced dialog, clicked various buttons and got errors.

This is my current system. Most errors are due to removesuffix which has been introduced with PEP 616 in Python 3.9.

# Name                    Version                   Build  Channel
eqt                       2.0.0              pyhdecd6ff_1    conda-forge
python                    3.8.20          h7d35d02_2_cpython    conda-forge
qt-main                   5.15.8              hcd44e0d_23    conda-forge
qtpy                      2.4.2              pyhdecd6ff_0    conda-forge
pyside2                   5.15.8           py38h9c4fdf2_4    conda-forge

This means that we need to change the minimum python version to 3.9. This is also made necessary as Python 3.8 has reached end-of-life, see https://devguide.python.org/versions/ (April 2025).

OK

I clicked OK and got the following error

Traceback (most recent call last):
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 380, in _onOk
    super()._onOk()
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 36, in _onOk
    self.saveAllWidgetStates()
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 241, in saveAllWidgetStates
    self.formWidget.saveAllWidgetStates()
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 454, in saveAllWidgetStates
    self.widget_states = self.getAllWidgetStates()
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 279, in getAllWidgetStates
    return {key: self.getWidgetState(widget) for key, widget in self.widgets.items()}
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 279, in <dictcomp>
    return {key: self.getWidgetState(widget) for key, widget in self.widgets.items()}
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 320, in getWidgetState
    name, role = self._getNameAndRoleFromWidget(widget)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 371, in _getNameAndRoleFromWidget
    return self._getNameAndRoleFromKey(key)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 356, in _getNameAndRoleFromKey
    return key.removesuffix('_field'), 'field'
AttributeError: 'str' object has no attribute 'removesuffix'

Cancel

Traceback (most recent call last):
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 45, in _onCancel
    self.restoreAllSavedWidgetStates()
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 260, in restoreAllSavedWidgetStates
    self.formWidget.restoreAllSavedWidgetStates()
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 478, in restoreAllSavedWidgetStates
    self.applyWidgetStates(self.default_widget_states)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 446, in applyWidgetStates
    name, role = self._getNameAndRoleFromKey(key)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 356, in _getNameAndRoleFromKey
    return key.removesuffix('_field'), 'field'
AttributeError: 'str' object has no attribute 'removesuffix'

Set Default Values

Traceback (most recent call last):
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 370, in <lambda>
    self.default_button.clicked.connect(lambda: self._setDefaultValues())
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 428, in _setDefaultValues
    self.applyWidgetStates(self.formWidget.default_widget_states)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/FormDialog.py", line 330, in applyWidgetStates
    return self.formWidget.applyWidgetStates(states)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 446, in applyWidgetStates
    name, role = self._getNameAndRoleFromKey(key)
  File "/Users/edoardo.pasca/Apps/miniforge3/envs/idvc_dev/lib/python3.8/site-packages/eqt/ui/UIFormWidget.py", line 356, in _getNameAndRoleFromKey
    return key.removesuffix('_field'), 'field'
AttributeError: 'str' object has no attribute 'removesuffix'

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions