File: lookups.py

package info (click to toggle)
python-redmine 2.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 520 kB
  • sloc: python: 3,785; makefile: 5
file content (30 lines) | stat: -rw-r--r-- 655 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""
Defines lookup classes to be used in ResultSet's filter method.
"""

registry = {}


class Lookup:
    lookup_name = None

    def __init_subclass__(cls, **kwargs):
        super().__init_subclass__(**kwargs)
        registry[cls.lookup_name] = cls()

    def __call__(self, resource_value, requested_value):
        raise NotImplementedError


class Exact(Lookup):
    lookup_name = 'exact'

    def __call__(self, resource_value, requested_value):
        return resource_value == requested_value


class In(Lookup):
    lookup_name = 'in'

    def __call__(self, resource_value, requested_values):
        return resource_value in requested_values