File: utils.py

package info (click to toggle)
prompt-toolkit 1.0.9-1~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 1,452 kB
  • sloc: python: 15,352; makefile: 3
file content (39 lines) | stat: -rw-r--r-- 1,002 bytes parent folder | download | duplicates (3)
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
from __future__ import unicode_literals
from .base import Always, Never
from .types import SimpleFilter, CLIFilter

__all__ = (
    'to_cli_filter',
    'to_simple_filter',
)

_always = Always()
_never = Never()


def to_simple_filter(bool_or_filter):
    """
    Accept both booleans and CLIFilters as input and
    turn it into a SimpleFilter.
    """
    if not isinstance(bool_or_filter, (bool, SimpleFilter)):
        raise TypeError('Expecting a bool or a SimpleFilter instance. Got %r' % bool_or_filter)

    return {
        True: _always,
        False: _never,
    }.get(bool_or_filter, bool_or_filter)


def to_cli_filter(bool_or_filter):
    """
    Accept both booleans and CLIFilters as input and
    turn it into a CLIFilter.
    """
    if not isinstance(bool_or_filter, (bool, CLIFilter)):
        raise TypeError('Expecting a bool or a CLIFilter instance. Got %r' % bool_or_filter)

    return {
        True: _always,
        False: _never,
    }.get(bool_or_filter, bool_or_filter)