LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Static Protected Attributes | List of all members
lsst.pex.config.history.Color Class Reference

Public Member Functions

 __init__ (self, text, category)
 
 __str__ (self)
 

Static Public Member Functions

 colorize (val=None)
 

Public Attributes

 rawText
 
 color
 

Static Public Attributes

dict categories
 
dict colors
 

Protected Attributes

 _code
 

Static Protected Attributes

bool _colorize = True
 

Detailed Description

A controller that determines whether strings should be colored.

Parameters
----------
text : `str`
    Text content to print to a terminal.
category : `str`
    Semantic category of the ``text``. See `categories` for possible
    values.

Raises
------
RuntimeError
    Raised when the ``category`` is not a key of ``Color.categories``.

Notes
-----
The usual usage is ``Color(string, category)`` which returns a string that
may be printed; categories are given by the keys of `Color.categories`.

`Color.colorize` may be used to set or retrieve whether the user wants
color. It always returns `False` when `sys.stdout` is not attached to a
terminal.

Definition at line 35 of file history.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pex.config.history.Color.__init__ ( self,
text,
category )

Definition at line 96 of file history.py.

96 def __init__(self, text, category):
97 try:
98 color = Color.categories[category]
99 except KeyError:
100 raise RuntimeError("Unknown category: %s" % category)
101
102 self.rawText = str(text)
103 x = color.lower().split(";")
104 self.color, bold = x.pop(0), False
105 if x:
106 props = x.pop(0)
107 if props in ("bold",):
108 bold = True
109
110 try:
111 self._code = "%s" % (30 + Color.colors[self.color])
112 except KeyError:
113 raise RuntimeError("Unknown colour: %s" % self.color)
114
115 if bold:
116 self._code += ";1"
117

Member Function Documentation

◆ __str__()

lsst.pex.config.history.Color.__str__ ( self)

Definition at line 156 of file history.py.

156 def __str__(self):
157 if not self.colorize():
158 return self.rawText
159
160 base = "\033["
161
162 prefix = base + self._code + "m"
163 suffix = base + "m"
164
165 return prefix + self.rawText + suffix
166
167

◆ colorize()

lsst.pex.config.history.Color.colorize ( val = None)
static
Get or set whether the string should be colorized.

Parameters
----------
val : `bool` or `dict`, optional
    The value is usually a bool, but it may be a dict which is used
    to modify `Color.categories`.

Returns
-------
shouldColorize : `bool`
    If `True`, the string should be colorized. A string **will not** be
    colorized if standard output or standard error are not attached to
    a terminal or if the ``val`` argument was `False`.

    Only strings written to a terminal are colorized.

Definition at line 119 of file history.py.

119 def colorize(val=None):
120 """Get or set whether the string should be colorized.
121
122 Parameters
123 ----------
124 val : `bool` or `dict`, optional
125 The value is usually a bool, but it may be a dict which is used
126 to modify `Color.categories`.
127
128 Returns
129 -------
130 shouldColorize : `bool`
131 If `True`, the string should be colorized. A string **will not** be
132 colorized if standard output or standard error are not attached to
133 a terminal or if the ``val`` argument was `False`.
134
135 Only strings written to a terminal are colorized.
136 """
137 if val is not None:
138 Color._colorize = val
139
140 if isinstance(val, dict):
141 unknown = []
142 for k in val:
143 if k in Color.categories:
144 if val[k] in Color.colors:
145 Color.categories[k] = val[k]
146 else:
147 print(f"Unknown colour {val[k]} for category {k}", file=sys.stderr)
148 else:
149 unknown.append(k)
150
151 if unknown:
152 print("Unknown colourizing category: %s" % " ".join(unknown), file=sys.stderr)
153
154 return Color._colorize if sys.stdout.isatty() else False
155

Member Data Documentation

◆ _code

lsst.pex.config.history.Color._code
protected

Definition at line 111 of file history.py.

◆ _colorize

bool lsst.pex.config.history.Color._colorize = True
staticprotected

Definition at line 94 of file history.py.

◆ categories

dict lsst.pex.config.history.Color.categories
static
Initial value:
= {
"NAME": "blue",
"VALUE": "yellow",
"FILE": "green",
"TEXT": "red",
"FUNCTION_NAME": "blue",
}

Definition at line 61 of file history.py.

◆ color

lsst.pex.config.history.Color.color

Definition at line 104 of file history.py.

◆ colors

dict lsst.pex.config.history.Color.colors
static
Initial value:
= {
"black": 0,
"red": 1,
"green": 2,
"yellow": 3,
"blue": 4,
"magenta": 5,
"cyan": 6,
"white": 7,
}

Definition at line 81 of file history.py.

◆ rawText

lsst.pex.config.history.Color.rawText

Definition at line 102 of file history.py.


The documentation for this class was generated from the following file: