/usr/lib/python2.7/dist-packages/prompt_toolkit/styles/base.py is in python-prompt-toolkit 1.0.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | """
The base classes for the styling.
"""
from __future__ import unicode_literals
from abc import ABCMeta, abstractmethod
from collections import namedtuple
from six import with_metaclass
__all__ = (
'Attrs',
'DEFAULT_ATTRS',
'ANSI_COLOR_NAMES',
'Style',
'DynamicStyle',
)
#: Style attributes.
Attrs = namedtuple('Attrs', 'color bgcolor bold underline italic blink reverse')
"""
:param color: Hexadecimal string. E.g. '000000' or Ansi color name: e.g. 'ansiblue'
:param bgcolor: Hexadecimal string. E.g. 'ffffff' or Ansi color name: e.g. 'ansired'
:param bold: Boolean
:param underline: Boolean
:param italic: Boolean
:param blink: Boolean
:param reverse: Boolean
"""
#: The default `Attrs`.
DEFAULT_ATTRS = Attrs(color=None, bgcolor=None, bold=False, underline=False,
italic=False, blink=False, reverse=False)
#: ``Attrs.bgcolor/fgcolor`` can be in either 'ffffff' format, or can be any of
#: the following in case we want to take colors from the 8/16 color palette.
#: Usually, in that case, the terminal application allows to configure the RGB
#: values for these names.
ANSI_COLOR_NAMES = [
'ansiblack', 'ansiwhite', 'ansidefault',
# Low intensity.
'ansired', 'ansigreen', 'ansiyellow', 'ansiblue', 'ansifuchsia', 'ansiturquoise', 'ansilightgray',
# High intensity. (Not supported everywhere.)
'ansidarkgray', 'ansidarkred', 'ansidarkgreen', 'ansibrown', 'ansidarkblue',
'ansipurple', 'ansiteal',
]
class Style(with_metaclass(ABCMeta, object)):
"""
Abstract base class for prompt_toolkit styles.
"""
@abstractmethod
def get_attrs_for_token(self, token):
"""
Return :class:`.Attrs` for the given token.
"""
@abstractmethod
def invalidation_hash(self):
"""
Invalidation hash for the style. When this changes over time, the
renderer knows that something in the style changed, and that everything
has to be redrawn.
"""
class DynamicStyle(Style):
"""
Style class that can dynamically returns an other Style.
:param get_style: Callable that returns a :class:`.Style` instance.
"""
def __init__(self, get_style):
self.get_style = get_style
def get_attrs_for_token(self, token):
style = self.get_style()
assert isinstance(style, Style)
return style.get_attrs_for_token(token)
def invalidation_hash(self):
return self.get_style().invalidation_hash()
|