Okidoki, thanks for the example - what we are doing in _zeitgeist.engine.datamodel.Event.get_plain() for payloads is indeed wrong.
Let me clearify the purpose of this method, get_plain() is designed to change Event(template) objects in a way that they are dumpable by the pickle module. And we are using pickle to store blacklists in the filesystem for later use.
But: do we really want to support blacklists based on payload? Please remember, payload can be random (binary)data, what's the point of filtering events based on a binary blob?
So rather than fixing the way this method handles the payload field, I propose we should not allow payload in blacklists at all.
Okidoki, thanks for the example - what we are doing in _zeitgeist. engine. datamodel. Event.get_ plain() for payloads is indeed wrong.
Let me clearify the purpose of this method, get_plain() is designed to change Event(template) objects in a way that they are dumpable by the pickle module. And we are using pickle to store blacklists in the filesystem for later use.
But: do we really want to support blacklists based on payload? Please remember, payload can be random (binary)data, what's the point of filtering events based on a binary blob?
So rather than fixing the way this method handles the payload field, I propose we should not allow payload in blacklists at all.