Luca Montecchiani
l.montecchiani at teamsystem.com
Thu May 24 10:31:44 EDT 2007
Hi all, in the process to convert our application from 3.2.10 to the latest version 3.3.10 I've found a problem and an easy workaround. In some places we need to pickle some form input data but with the new version we can't do it anymore, the cPickle module raise an error complain about a cStringIO object unpickability. This was our workaround : : if type(v) == util.StringField: v = str(v) tmp = cPickle.dumps(v,protocol=-1) : The same problem there is saving session objects that contain a StringField, see the traceback: File "/projects/portale/20070102/ambiente/portale/core/python/lib/python2.5/site-packages/mod_python/Session.py", line 269, in save self.do_save(dict) File "/projects/portale/20070102/ambiente/portale/core/python/lib/python2.5/site-packages/mod_python/Session.py", line 407, in do_save dbm[self._sid] = cPickle.dumps(dict) File "/projects/portale/20070102/ambiente/portale/core/python/lib/python2.5/copy_reg.py", line 69, in _reduce_ex raise TypeError, "can't pickle %s objects" % base.__name__ TypeError: can't pickle StringO objects This mean that I need to convert to str() every StringField that I want to put in a Session object :-(( Hope this help, luca -- Luca Montecchiani Software Di Base TeamSystem S.p.a. ------------------------------------------------------------------------------------------ Informativa ai sensi del D. Lgs. 196-30/06/2003. Il contenuto di questa e.mail e degli eventuali allegati, deve essere nella disponibilità del solo destinatario. Se ricevete per errore questa e-mail siete pregati di informarci (rispedendola al mittente) e di provvedere alla sua rimozione. Possono essere presenti informazioni riservate e non corrette (parzialmente o totalmente). Le e-mail in partenza e in arrivo possono essere oggetto di monitoraggio da parte di Teamsystem spa. Del contenuto è responsabile il mittente della presente. Chiunque venga in possesso non autorizzato di questa e-mail è vincolato dalla Legge a non leggerne il contenuto, a non copiarla, a non diffonderla e a non usarla. Informiamo che per l' esercizio dei diritti di cui all'art. 7 del d.lgs.196/2003 ci si può rivolgere al Titolare del trattamento Teamsystem S.r.l. via Gagarin 205 61100 PESARO per posta o fax, indicando sulla busta o sul foglio la dicitura "Inerente alla Privacy", o inviando una e-mail all' indirizzo privacy at teamsystem.com . ------------------------------------------------------------------------------------------
|