¿Cómo puedo encurtir los resultados de espuma?

Para evitar acceder repetidamente a un servidor SOAP durante el desarrollo, estoy tratando de almacenar en caché los resultados para poder ejecutar el resto de mi código sin consultar el servidor cada vez.

Con el siguiente código me sale unPicklingError: Can't pickle <class suds.sudsobject.AdvertiserSearchResponse at 0x03424060>: it's not found as suds.sudsobject.AdvertiserSearchResponse cuando trato de encurtir un resultado de espuma. Supongo que esto se debe a que las clases se crean dinámicamente.

import pickle
from suds.client import Client

client = Client(...)
result = client.service.search(...)

file = open('test_pickle.dat', 'wb')
pickle.dump(result, file, -1)
file.close()

Si dejo caer el-1 versión del protocolo depickle.dump(result, file, -1), Me sale un error diferente:

TypeError: a class that defines __slots__ without defining __getstate__ cannot be pickled

¿Es encurtido lo correcto? ¿Puedo hacer que funcione? ¿Hay una mejor manera?

Respuestas a la pregunta(2)

Su respuesta a la pregunta