[Grok-dev] Exclude a field from serialization

Hector Blanco white.lists at gmail.com
Wed Aug 3 13:52:55 EDT 2011

Hello everybody

I have a Grok application serialized in ZoDB. I want each of the
containers to have an instance of a Timer. Something like:

class BaseManager(grok.Container):
	def __init__(self, queriedClass):
		super(BaseManager, self).__init__()
		self.queriedClass = queriedClass
		self.__myTimer = threading.Timer(60, self.timerExecute)

That timer (the __poster field) doesn't need to be serialized in the
database. It probably even can't, because when I try to create the
application I get.

Module ZODB.serialize:422 in serialize
>>  return self._dump(meta, obj.__getstate__())
Module ZODB.serialize:431 in _dump
>>  self._p.dump(state)
Module copy_reg:70 in _reduce_ex
>>  raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instancemethod objects

(looks like it's trying to serialize the self.timerExecute field)

Is there any way to exclude a field from serialization? Thank you in advance.

More information about the Grok-dev mailing list