Je travaille sur un projet construit sur python 2.4 (C'est un projet python embarqué, donc je n'ai pas le choix sur la version de python utilisée). Tout au long de l'application, nous utilisons array.array
pour stocker des données.Décapage array.array en 2.4 en utilisant cPickle
La prise en charge du décapage array.array
objets a été ajoutée à pickle
(et cPickle
) dans 2.5. Nous avons une solution de contournement viable dans 2.4 en utilisant la pure classe pickle python (nous sous-traitons Pickler/Unpickler pour gérer les tableaux) mais cela ne fonctionne pas avec cPickle (nous avons besoin de cela en raison de problèmes de performance).
Des suggestions?
EDIT - SOLUTION:
Voici le code final qui semble fonctionner (merci pour les suggestions):
# Add serialization for array objects
def array_unpickler(data):
return array.array(data[0], data[1:])
def array_pickler(arr):
return array_unpickler, ("%s%s" % (arr.typecode, arr.tostring()),)
copy_reg.pickle(array.ArrayType, array_pickler, array_unpickler)
Excellent! Je l'ai fait fonctionner. Votre suggestion m'a conduit à http://effbot.org/librarybook/copy-reg.htm, qui fournit quelques excellents exemples. –