gsm.registerUtility(SimpleEmitter([dict(a=1), dict(b=2)]), IEmitter) gsm.registerAdapter(JsonFormatter, (IEmitter,), IFormatter, 'json') gsm.registerAdapter(StrFormatter, (IEmitter,), IFormatter, 'str') my_emitter = gsm.queryUtility(IEmitter) print my_emitter my_formatter = gsm.queryAdapter(my_emitter, IFormatter, 'str') print my_formatter