Bob Cowdery wrote: > What I want to do is when > > class API(object): > __metaclass__ = MetaAPI > > is created that MetaAPI generates attributes from a given > capability map and not the one it picked up on 'import'.
Okay. It depends on where you're getting that capability information from, but the simplest approach I can think of would be to stick it in the class: class API(object): __metaclass__ = MetaAPI capmap = global_map_getter(usercontext_or_keyring) ...then "capmap" should be available within MetaAPI.__init__: class MetaAPI(type): def __init__(cls, name, bases, dct): for name, method in dct['capmap']: setattr(cls, name, method) Of course, all of this could be done without using a metaclass--just call setattr as needed right after your class is defined. Another option would be to immediately follow your API class definition with a call like: from myframework import captools class API(object): def foo(): pass captools.enable(API) ...the choice comes down IMO to what you think will be the most usable/maintainable by those who follow you. Robert Brewer MIS Amor Ministries [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list