Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/prompt_toolkit/filters/utils.py: 86%

14 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-04-20 06:09 +0000

1from __future__ import annotations 

2 

3from .base import Always, Filter, FilterOrBool, Never 

4 

5__all__ = [ 

6 "to_filter", 

7 "is_true", 

8] 

9 

10 

11_always = Always() 

12_never = Never() 

13 

14 

15_bool_to_filter: dict[bool, Filter] = { 

16 True: _always, 

17 False: _never, 

18} 

19 

20 

21def to_filter(bool_or_filter: FilterOrBool) -> Filter: 

22 """ 

23 Accept both booleans and Filters as input and 

24 turn it into a Filter. 

25 """ 

26 if isinstance(bool_or_filter, bool): 

27 return _bool_to_filter[bool_or_filter] 

28 

29 if isinstance(bool_or_filter, Filter): 

30 return bool_or_filter 

31 

32 raise TypeError("Expecting a bool or a Filter instance. Got %r" % bool_or_filter) 

33 

34 

35def is_true(value: FilterOrBool) -> bool: 

36 """ 

37 Test whether `value` is True. In case of a Filter, call it. 

38 

39 :param value: Boolean or `Filter` instance. 

40 """ 

41 return to_filter(value)()