Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/prompt_toolkit/filters/utils.py: 87%
15 statements
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:07 +0000
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:07 +0000
1from __future__ import annotations
3from typing import Dict
5from .base import Always, Filter, FilterOrBool, Never
7__all__ = [
8 "to_filter",
9 "is_true",
10]
13_always = Always()
14_never = Never()
17_bool_to_filter: dict[bool, Filter] = {
18 True: _always,
19 False: _never,
20}
23def to_filter(bool_or_filter: FilterOrBool) -> Filter:
24 """
25 Accept both booleans and Filters as input and
26 turn it into a Filter.
27 """
28 if isinstance(bool_or_filter, bool):
29 return _bool_to_filter[bool_or_filter]
31 if isinstance(bool_or_filter, Filter):
32 return bool_or_filter
34 raise TypeError("Expecting a bool or a Filter instance. Got %r" % bool_or_filter)
37def is_true(value: FilterOrBool) -> bool:
38 """
39 Test whether `value` is True. In case of a Filter, call it.
41 :param value: Boolean or `Filter` instance.
42 """
43 return to_filter(value)()