Tille, Andreas writes:
But unfortunately there seems to be another one, because it does not work even if I use 'value' nor if I change the code to
if id == 'keywords' : new_value=[] for keyword in value: keyword=keyword.strip() if keyword != '' : new_value.append(keyword) value=new_value self._setPropValue(id, value) The code looks good!
My suspection is that something goes wrong more generally (the _updateProperty is just not called or the if condition might not be true because any strange pre/or suffixes or something else).
So I'm looking for any suggestion how to debug the code efficiently. I debug Python code in Zope with adding:
import pdb; pdb.set_trace() When Zope executes this code, it stops and I can use "pdb" (Python's debugger) to analyse the state and single step. Breakpoints do not work, however. It is also not that easy to quit the debugger again. A colleague is using WingIDE, an IDE for Python (and other languages) able to debug Zope applications. He is quite happy with it (it is not free, however). There is a HowTo on zope.org explaining how to debug Zope applications out of [X]Emacs. Probably "Komodo", another IDE for Python and other languages, too, is able to debug Zope applications (not free, too).
If I would insert any 'print' statements or something else to which data stream would they directed. Would it be the STUPID_LOG_FILE or something else or should I open a temporary file. Which is the method you use generally for such stuff? No, they would go to standard output, unless you redirect them with the ">>" operator.
Do not forget to flush your output stream when you use "print". Otherwise, you will be astonished that your output sits in the buffer and you wait in vain... Dieter