Barry A. Warsaw added the comment: On Aug 02, 2012, at 11:33 AM, Nick Coghlan wrote:
>Specifically, what I did was to drop "find_module" from the Finder ABC, but >keep the ABC itself as a way to document the common "invalidate_caches" >API. The ABC definition no longer cares whether you implement find_module() >or not. MetaPathFinder then enforces find_module(), while PathEntryFinder >enforces find_loader(). One problem I have, which I'm not sure how to solve, is that the protocol defines a couple of optional methods, specifically find_loader() on meta path finders, and module_repr() on loaders. You'd like for the ABC to be able to capture both the support of these methods if they exist, and their optional nature, but I don't believe that's possible with @abc.abstractmethod. Correct me if I'm wrong, but by adding these methods to the ABC, it requires subclasses to define them. I noticed this when I broke the test suite, and solved it by just adding the methods to the mocks and other test classes. But I think this is not the best solution. Maybe we need an @abc.optionalabstractmethod decorator? ;) ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15502> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com