Hello, I recently conducted a study using SDAPS and now want to check the submitted questionnaires as recognized using the “gui” command of SDAPS. However, instead of the graphical user interface, I get the following output in my terminal:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/sdaps/gui/__init__.py",
line 364, in page_number_combo_changed_cb
self.update_ui()
File "/usr/lib/python2.7/site-packages/sdaps/gui/__init__.py",
line 306, in update_ui
self.provider.survey.questionnaire.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 98, in sync_state
qobject.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 134, in sync_state
box.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 296, in sync_state
self.checkbox.props.active = self.obj.data.state
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 36, in get_data
self.sheet.data[self.id] = getattr(data,
self.__class__.__name__)(self)
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
73, in __init__
self.text = unicode()
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
47, in __setattr__
self._parent.question.questionnaire.notify_data_changed(self._parent,
self, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 77, in notify_data_changed
func(self, qobj, dobj, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 51, in data_changed
self.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 98, in sync_state
qobject.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 134, in sync_state
box.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 296, in sync_state
self.checkbox.props.active = self.obj.data.state
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 36, in get_data
self.sheet.data[self.id] = getattr(data,
self.__class__.__name__)(self)
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
73, in __init__
self.text = unicode()
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
47, in __setattr__
self._parent.question.questionnaire.notify_data_changed(self._parent,
self, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 77, in notify_data_changed
func(self, qobj, dobj, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 51, in data_changed
self.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 98, in sync_state
qobject.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 134, in sync_state
box.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 296, in sync_state
self.checkbox.props.active = self.obj.data.state
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 36, in get_data
self.sheet.data[self.id] = getattr(data,
self.__class__.__name__)(self)
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
73, in __init__
self.text = unicode()
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
47, in __setattr__
self._parent.question.questionnaire.notify_data_changed(self._parent,
self, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 77, in notify_data_changed
func(self, qobj, dobj, name, old_value)
[ about 2000 lines repeating above pattern, omitted here]
File "/usr/lib/python2.7/site-packages/sdaps/model/data.py", line
47, in __setattr__
self._parent.question.questionnaire.notify_data_changed(self._parent,
self, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 77, in notify_data_changed
func(self, qobj, dobj, name, old_value)
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 51, in data_changed
self.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 98, in sync_state
qobject.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 134, in sync_state
box.widget.sync_state()
File "/usr/lib/python2.7/site-packages/sdaps/gui/
widget_buddies.py", line 243, in sync_state
self.widget.props.active = self.obj.data.state
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 35, in get_data
if not self.id in self.sheet.data:
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 363, in get_sheet
return self.question.sheet
File "/usr/lib/python2.7/site-packages/sdaps/model/
questionnaire.py", line 127, in get_sheet
return self.questionnaire.sheet
RuntimeError: maximum recursion depth exceeded
I am using SDAPS version 1.1.11 on ArchLinux, compiled from source.
I have patched the source code to avoid warnings from “gi” about a
missing statement/configuration which Gtk version to use. The
applied patch reads as follows:
diff -Naur sdaps-1.1.11/sdaps/gui/__init__.py sdaps-1.1.11-gtk3/
sdaps/gui/__init__.py
--- sdaps-1.1.11/sdaps/gui/__init__.py 2015-02-14
19:45:36.000000000 +0100
+++ sdaps-1.1.11-gtk3/sdaps/gui/__init__.py 2016-12-20
17:25:14.132122130 +0100
@@ -21,7 +21,8 @@
possible to manually correct the automatic recognition and do basic
debugging.
"""
-
+import gi
+gi.require_version('Gtk', '3.0')
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gtk
diff -Naur sdaps-1.1.11/sdaps/gui/sheet_widget.py sdaps-1.1.11-gtk3/
sdaps/gui/sheet_widget.py
--- sdaps-1.1.11/sdaps/gui/sheet_widget.py 2014-12-20
16:01:30.000000000 +0100
+++ sdaps-1.1.11-gtk3/sdaps/gui/sheet_widget.py 2016-12-20
17:25:17.515275723 +0100
@@ -17,6 +17,8 @@
# along with this program. If not, see <http://www.gnu.org/
licenses/>.
import math
+import gi
+gi.require_version('Gtk', '3.0')
from gi.repository import GObject
from gi.repository import Gtk
from gi.repository import Gdk
diff -Naur sdaps-1.1.11/sdaps/gui/widget_buddies.py sdaps-1.1.11-
gtk3/sdaps/gui/widget_buddies.py
--- sdaps-1.1.11/sdaps/gui/widget_buddies.py 2015-02-14
19:45:36.000000000 +0100
+++ sdaps-1.1.11-gtk3/sdaps/gui/widget_buddies.py 2016-12-20
17:25:20.185134273 +0100
@@ -16,6 +16,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/
licenses/>.
+import gi
+gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GLib
import cairo
diff -Naur sdaps-1.1.11/sdaps/utils/paper.py sdaps-1.1.11-gtk3/
sdaps/utils/paper.py
--- sdaps-1.1.11/sdaps/utils/paper.py 2015-02-14
19:45:36.000000000 +0100
+++ sdaps-1.1.11-gtk3/sdaps/utils/paper.py 2016-12-20
17:24:59.522904885 +0100
@@ -19,6 +19,8 @@
def _get_gtk_ppd_papersize(paper=None):
try:
+ import gi
+ gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
except:
return paper, None
Anyone has an idea about why there is an endless recursion in the
code?
Looking forward to your answers!
Bye,
Thomas Fischer
--
Thomas Fischer
Senior Lecturer, Doctor of Engineering
School of Informatics
University of Skövde, Sweden
https://www.his.se/fish
signature.asc
Description: This is a digitally signed message part.
