def compatibleWithBase(self, base): messagenames = (ImmutableSet(self.messages.keys()) | ImmutableSet(base.messages.keys())) compatibility = Same() for name in messagenames: selfmessage = self.messages.get(name, None) basemessage = base.messages.get(name, None) if not selfmessage: c = Older("missing message %s, did you mean to deprecate?" % name) elif not basemessage: c = Newer("added message %s" % name) else: c = selfmessage.compatibleWithBase(basemessage) c.prefix("in message %s: " % name) compatibility = compatibility.combine(c) return compatibility
def compatibleWithBase(self, base): messagenames = ( frozenset(self.messages.keys()) | frozenset(base.messages.keys()) ) compatibility = Same() for name in messagenames: selfmessage = self.messages.get(name, None) basemessage = base.messages.get(name, None) if not selfmessage: c = Older("missing message %s, did you mean to deprecate?" % name) elif not basemessage: c = Newer("added message %s" % name) else: c = selfmessage.compatibleWithBase(basemessage) c.prefix("in message %s: " % name) compatibility = compatibility.combine(c) return compatibility