Not that anyone cares, but the metaclass approach did not work, as Python doesn't want to have two non-identical metaclasses in an inheritance chain. Or something.
On Nov 18, 10:42 am, Adam <[EMAIL PROTECTED]> wrote: > It just occurred to me that this solution could be made much easier by > using a simple, small metaclass (which, it is worth noting, I totally > copped from GAE's PropertiedClass metaclass): > > class ModelMixin(type): > def __init__(cls, name, bases, dct): > super(PropertiedClass, cls).__init__(name, bases, dct) > > for attr_name in dct.keys(): > attr = dct[attr_name] > if isinstance(attr, Property): > cls._properties[attr_name] = attr > > class Commentable(): > __metaclass__ = ModelMixin > > comments_counter = db.IntegerProperty(required=True, default=0) > > Bada-bing. Now, the ugly nonsense of creating the _properties dict > and assigning to it is gone. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---