I tried to use trac.core.Interface, but an error hadn't occurred by trac if the class doesn't have the interface method when the class implementing IIndexer is loaded. I guess trac.core.Interface is used for trac.core.ExtensionPoint, not generic interface like Java. So, I implemented own implements_indexer(). However, it might be too complicated. Do you want use trac.core.Interface as a marker?