def _createModelEventProtobuf(self, ob, eventType): """ Creates and returns a ModelEvent. This is tightly coupled to the modelevent.proto protobuf. """ try: serializer = IModelProtobufSerializer(ob) event = modelevents_pb2.ModelEvent() self._events.append(event) event.event_uuid = generate() event.type = getattr(event, eventType) type = serializer.modelType event.model_type = MODEL_TYPE.getNumber(type) proto = getattr(event, type.lower(), None) if proto: if eventType == 'REMOVED': guid = self._getGUID(ob) proto.uuid = guid else: serializer.fill(proto) return event except TypeError: log.debug("Could not adapt %r to a protobuf serializer." % (ob))