[Eric] TypeError in DebugClientBase.py
Seth Hill
sethrh at gmail.com
Sat Nov 21 20:18:30 GMT 2009
Hello all,
I'm new to the mailing list and Eric, so please bear with me.
I have discovered a possible bug in the DebugClientBase.py which
comes with Eric4 4.3.9 (r3513) on Windows XP. I've put a workaround
in place for the issue (see below). My question is not so much about
the bug (if it is a bug), but rather, where's the appropriate place
to submit bug reports? If the right place is here, then continue
reading (and my apologies if not!).
I'm working with a django 1.1 project, trying to get debugging going.
I'm working with a form in a view function. I set a breakpoint in the
view function, and get a TypeError in DebugClientBase.py:1608. It
looks like the debugger is going through the locals and calling
unicode() on all of them. Some of the locals in this case don't
support the unicode method. When the debugger calls the unicode()
method, it triggers an exception inside the running wsgi server. I
get an error message on the web page, and the debug session stops
working.
My code looks like:
forms.py:
class NewCustomerForm(forms.Form):
name = forms.CharField()
# etc
views.py:
def create_customer(request):
if request.method == "POST": # breakpoint here
form = NewCustomerForm(request.POST)
if form.is_valid(): # exception occurs when stepping
to here
The line in DebugClientBase.py looks like:
valtypestr = unicode(type(value))[1:-1]
I've "fixed" the error by wrapping the line in a try:
try:
valtypestr = unicode(type(value))[1:-1]
except TypeError:
valtypestr = repr(type(value))[1:-1]
You can duplicate the TypeError with something like:
>>> class Foo:
... def __unicode__(self):
... return u'Foo instance'
...
>>> unicode(Foo)
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: unbound method __unicode__() must be called with Foo
instance as first argument (got nothing instead)
Regards,
Seth Hill
More information about the Eric
mailing list