LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+f5613e8b4f,g1470d8bcf6+190ad2ba91,g14a832a312+311607e4ab,g2079a07aa2+86d27d4dc4,g2305ad1205+a8e3196225,g295015adf3+b67ee847e5,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+a761f810f3,g487adcacf7+17c8fdbcbd,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+65b5bd823e,g5a732f18d5+53520f316c,g64a986408d+f5613e8b4f,g6c1bc301e9+51106c2951,g858d7b2824+f5613e8b4f,g8a8a8dda67+585e252eca,g99cad8db69+6729933424,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e9bba80f27,gc120e1dc64+eee469a5e5,gc28159a63d+0e5473021a,gcf0d15dbbd+a761f810f3,gdaeeff99f8+f9a426f77a,ge6526c86ff+d4c1d4bfef,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf1cff7945b+f5613e8b4f,w.2024.16
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: