def color_interface_line(interface_id): catalog = Catalog() interface = catalog.interface(interface_id) hierarchy = [ cl.__name__ for cl in reversed(inspect.getmro(interface)) if cl in catalog._interfaces.values() ] hierarchy = ' > '.join(hierarchy) return '\033[93m%s\033[91m (%s)\033[0m' % (interface_id, hierarchy)
def list_implementations(): catalog = Catalog() print '===============' print 'Implementations' print '===============' for interface_id in catalog.interfaces(): print color_interface_line(interface_id) for factory in catalog.factories(interfaces=interface_id, exclude_tags=['wralea']): print ' *', factory.name print
def list_interfaces(): catalog = Catalog() print '==========' print 'Interfaces' print '==========' for interface_id in sorted(catalog.interfaces()): interface = catalog.interface(interface_id) print color_interface_line(interface_id) print ' defined in:', interface.__module__ print print
def color_interface_line(interface_id): catalog = Catalog() interface = catalog.interface(interface_id) hierarchy = [cl.__name__ for cl in reversed(inspect.getmro(interface)) if cl in catalog._interfaces.values()] hierarchy = ' > '.join(hierarchy) return '\033[93m%s\033[91m (%s)\033[0m' % (interface_id, hierarchy)
from openalea.oalab.legacy.catalog import Catalog catalog = Catalog() def test_services(): service1 = catalog.service(name='XyzHandler') service2 = catalog.service(name='XyzHandler') assert service1 is service2 assert hasattr(service1, 'read') assert hasattr(service1, 'write') def test_get_factories(): interfaces = list(catalog.interfaces()) assert 'IXyzReader' in interfaces assert 'IXyzWriter' in interfaces factories = catalog.factories(tags=['plugin']) names = [factory.name for factory in factories] assert 'XyzHandler' in names xyzhandlers = catalog.factories(name='XyzHandler') assert len(xyzhandlers) == 1 xyzhandler = catalog.factory(name='XyzHandler') assert xyzhandler == xyzhandlers[0] interface_name = 'IXyzReader'