Orest Kozyar wrote: >> Please post the entire traceback (omitting duplicate lines). > > Sorry, I should have included the traceback. I've revised the sample script > so that it generates the traceback when run. The sample script is at the > very bottom of this email.
I've poked at this a little. The problem is in the pickling of the minidom object. It fails for me using Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin If you use pickle instead of cPickle the stack trace at least shows the recursive calls. Here is a slightly shorter program that demonstrates the problem a little better: import urllib from pickle import Pickler from cStringIO import StringIO from xml.dom import minidom baseurl = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?' params = { 'db': 'pubmed', 'retmode': 'xml', 'rettype': 'medline', } badkey = '16842422' params['id'] = badkey url = baseurl + urllib.urlencode(params) doc = minidom.parseString(urllib.urlopen(url).read()) print 'Successfully retrieved and parsed XML document with ID %s' % badkey f = StringIO() p = Pickler(f, 0) p.dump(doc) #Will fail on the above line print 'Successfully shelved XML document with ID %s' % badkey Here is the top of the stack trace: File "BadShelve.py", line 35, in <module> p.dump(doc) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 224, in dump self.save(obj) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 725, in save_inst save(stuff) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 649, in save_dict self._batch_setitems(obj.iteritems()) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 663, in _batch_setitems save(v) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pickle.py", line 725, in save_inst save(stuff) You might want to take this to comp.lang.python or perhaps xml-sig. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor