selectors.py
branchtls-sprint
changeset 1138 22f634977c95
parent 1132 96752791c2b6
child 1178 8d9b705168d3
equal deleted inserted replaced
1135:00eb43688a57 1138:22f634977c95
   216     def score_entity(self, entity):
   216     def score_entity(self, entity):
   217         raise NotImplementedError()
   217         raise NotImplementedError()
   218 
   218 
   219 
   219 
   220 # very basic selectors ########################################################
   220 # very basic selectors ########################################################
   221 @objectify_selector
   221 
   222 def yes(cls, *args, **kwargs):
   222 class yes(Selector):
   223     """accept everything"""
   223     """return arbitrary score"""
   224     return 1
   224     def __init__(self, score=1):
       
   225         self.score = score
       
   226     def __call__(self, *args, **kwargs):
       
   227         return self.score
   225 
   228 
   226 @objectify_selector
   229 @objectify_selector
   227 @lltrace
   230 @lltrace
   228 def none_rset(cls, req, rset, *args, **kwargs):
   231 def none_rset(cls, req, rset, *args, **kwargs):
   229     """accept no result set (e.g. given rset is None)"""
   232     """accept no result set (e.g. given rset is None)"""
   906 
   909 
   907     :param scorefunc: callable expected to take an entity as argument and to
   910     :param scorefunc: callable expected to take an entity as argument and to
   908                       return a score >= 0 
   911                       return a score >= 0 
   909     """
   912     """
   910     def __init__(self, scorefunc, once_is_enough=False):
   913     def __init__(self, scorefunc, once_is_enough=False):
   911         super(EntitySelector, self).__init__(once_is_enough)
   914         super(score_entity, self).__init__(once_is_enough)
   912         self.score_entity = scorefunc
   915         self.score_entity = scorefunc
   913 
   916 
   914 
   917 
   915 # XXX DEPRECATED ##############################################################
   918 # XXX DEPRECATED ##############################################################
   916 
   919