summaryrefslogtreecommitdiffstats
path: root/ptpython/filters.py
blob: be85edf7783dafeca2cf996190484d52a8adf49b (plain)
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
from typing import TYPE_CHECKING

from prompt_toolkit.filters import Filter

if TYPE_CHECKING:
    from .python_input import PythonInput

__all__ = ["HasSignature", "ShowSidebar", "ShowSignature", "ShowDocstring"]


class PythonInputFilter(Filter):
    def __init__(self, python_input: "PythonInput") -> None:
        super().__init__()
        self.python_input = python_input

    def __call__(self) -> bool:
        raise NotImplementedError


class HasSignature(PythonInputFilter):
    def __call__(self) -> bool:
        return bool(self.python_input.signatures)


class ShowSidebar(PythonInputFilter):
    def __call__(self) -> bool:
        return self.python_input.show_sidebar


class ShowSignature(PythonInputFilter):
    def __call__(self) -> bool:
        return self.python_input.show_signature


class ShowDocstring(PythonInputFilter):
    def __call__(self) -> bool:
        return self.python_input.show_docstring