Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

# -*- encoding: utf-8 -*- 

 

from .filters import DEFAULT_FILTERS 

from .util import DEFAULT_CONVERTERS 

 

 

class QueryConfig: 

 

    def __init__(self): 

        self.model = None 

        self.expressions = None 

        self.session = None 

        self._converters = None 

        self.converters = None 

        self._filters = None 

        self.filters = None 

        self.query = None 

 

    @property 

    def converters(self): 

        return self._converters 

 

    @converters.setter 

    def converters(self, value): 

        if value is None: 

            value = DEFAULT_CONVERTERS.copy() 

        self._converters = value 

 

    @property 

    def filters(self): 

        return self._filters 

 

    @filters.setter 

    def filters(self, value): 

        if value is None: 

            value = DEFAULT_FILTERS 

        self._filters = dict( 

            (filter_obj.name, filter_obj) 

            for filter_obj in value 

        ) 

 

    def filter_for(self, filter_name): 

        if filter_name not in self._filters: 

            raise KeyError('Filter %s not found' % filter_name) 

        filter_cl = self._filters[filter_name] 

        return filter_cl(self.converters)