rendered paste body# Call as:def blah(): defer.maybeDeferred(blah.isSenderDenied("botanicus.net", "dw"))\ .addCallback(blah2)def blah2(): pass def isSenderDenied(self, domain, mailbox): if not self.deniedSendersLoaded: return self.reloadDeniedSenders()\ .addCallback(self._cbIsSenderDenied, domain, mailbox) return self._cbIsSenderDenied(None, domain, mailbox) def _cbIsSenderDenied(self, lastResult, domain, mailbox): deniedSenders = self._deniedSenders if domain in deniedSenders: for expr, (source, reason) in deniedSenders[domain].iteritems(): if fnmatch.fnmatch(mailbox, expr): return source, reason