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
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-20 06:09 +0000
1from __future__ import annotations
3from .base import Always, Filter, FilterOrBool, Never
5__all__ = [
6 "to_filter",
7 "is_true",
8]
11_always = Always()
12_never = Never()
15_bool_to_filter: dict[bool, Filter] = {
16 True: _always,
17 False: _never,
18}
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]
29 if isinstance(bool_or_filter, Filter):
30 return bool_or_filter
32 raise TypeError("Expecting a bool or a Filter instance. Got %r" % bool_or_filter)
35def is_true(value: FilterOrBool) -> bool:
36 """
37 Test whether `value` is True. In case of a Filter, call it.
39 :param value: Boolean or `Filter` instance.
40 """
41 return to_filter(value)()