Como posso selecionar resultados de espuma?

Para evitar acessar repetidamente um servidor SOAP durante o desenvolvimento, estou tentando armazenar em cache os resultados para poder executar o restante do meu código sem consultar o servidor todas as vezes.

Com o código abaixo, recebo umPicklingError: Can't pickle <class suds.sudsobject.AdvertiserSearchResponse at 0x03424060>: it's not found as suds.sudsobject.AdvertiserSearchResponse quando tento obter um resultado de espuma. Eu acho que isso ocorre porque as classes são criadas dinamicamente.

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()

Se eu largar o-1 versão do protocolo depickle.dump(result, file, -1), Recebo um erro diferente:

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

Decapagem é a coisa certa a fazer? Posso fazer funcionar? Existe uma maneira melhor?

questionAnswers(2)

yourAnswerToTheQuestion