python - SQLAlchemy: Hybrid Value Object, Query Tuple Results -
i trying follow examples documentation on building custom comparators using hybrid value objects,
class caseinsensitiveword(comparator):     "hybrid value representing lower case representation of word."      def __init__(self, word):         if isinstance(word, basestring):             self.word = word.lower()         elif isinstance(word, caseinsensitiveword):             self.word = word.word         else:             self.word = func.lower(word)      def operate(self, op, other):         if not isinstance(other, caseinsensitiveword):             other = caseinsensitiveword(other)         return op(self.word, other.word)      def __clause_element__(self):         return self.word      def __str__(self):         return self.word      key = 'word'     "label apply query tuple results"   i don't understand, however, why added end of class definition:
key = 'word' "label apply query tuple results"   what for?
while it's not baked python feature, convention comment attributes in same way functions , methods, i.e. placing string below attribute. comments above picked tools sphinx. can see examples of these docstrings getting generated in places http://www.sqlalchemy.org/docs/orm/mapper_config.html#sqlalchemy.orm.mapper.mapper.class_manager.
edit: oh why has actual ".key". when say:
for row in session.query(myclass.mycustomthing, myclass.myothercustomthing):    print row.word, row.someotherword   the "word" , "someotherword" tuple keys value of ".key" on each comparator. if call label() on it, change else. don't know it's strictly necessary there @ all.
Comments
Post a Comment