appobject.py
changeset 4462 c57c8176b8c2
parent 4459 f628abfb3a6c
child 4490 d45cde54d464
equal deleted inserted replaced
4461:a35c76ffed92 4462:c57c8176b8c2
    25 def objectify_selector(selector_func):
    25 def objectify_selector(selector_func):
    26     """convenience decorator for simple selectors where a class definition
    26     """convenience decorator for simple selectors where a class definition
    27     would be overkill::
    27     would be overkill::
    28 
    28 
    29         @objectify_selector
    29         @objectify_selector
    30         def yes(cls, *args, **kwargs):
    30         def one(cls, *args, **kwargs):
    31             return 1
    31             return 1
    32 
    32 
    33     """
    33     """
    34     return type(selector_func.__name__, (Selector,),
    34     return type(selector_func.__name__, (Selector,),
    35                 {'__doc__': selector_func.__doc__,
    35                 {'__doc__': selector_func.__doc__,
   183     def __str__(self):
   183     def __str__(self):
   184         return 'NOT(%s)' % super(NotSelector, self).__str__()
   184         return 'NOT(%s)' % super(NotSelector, self).__str__()
   185 
   185 
   186 
   186 
   187 class yes(Selector):
   187 class yes(Selector):
   188     """return arbitrary score
   188     """Return the score given as parameter, with a default score of 0.5 so any
   189 
   189     other selector take precedence.
   190     default score of 0.5 so any other selector take precedence
   190 
       
   191     Usually used for appobjects which can be selected whatever the context, or
       
   192     also sometimes to add arbitrary points to a score.
       
   193 
       
   194     Take care, `yes(0)` could be named 'no'...
   191     """
   195     """
   192     def __init__(self, score=0.5):
   196     def __init__(self, score=0.5):
   193         self.score = score
   197         self.score = score
   194 
   198 
   195     def __call__(self, *args, **kwargs):
   199     def __call__(self, *args, **kwargs):