Just released: taggable-mixin
May 22, 2008
I have just packaged up a bit of the code that is part of this blog, the part that manages tags, and released it as a Google Code-hosted open source project: taggable-mixin.
Taggable is a Python mixin class that can be added to any AppEngine Model class to give it the ability to have tags associated with it. It does so without modifying the Model itself; the tags are stored in a completely separate Model of their own, and they are associated by Key. The tags are managed efficiently, so they are never duplicated. A single tag instance can be associated with any number of different model instances.
I think that it is a pretty neat, clean and compact solution to the problem of tagging. I'm very much looking forward to getting feedback from my fellow AppEngine developers, as I am still a relative newbie to Python. I have learned a great deal about it since I began working with AppEngine, but I am hardly a veteran coder, familiar with Python idioms and such. I also want this to be as valuable a contribution to the community as it can be, but unless I hear back from those using it, I will have only limited ideas about how it can be improved.