Formatting¶
The formatting module includes functions to apply IRC formatting to text.
Availability: 4.5+
- sopel.formatting.CONTROL_BOLD = '\x02'¶
The control code to start or end bold formatting.
- sopel.formatting.CONTROL_COLOR = '\x03'¶
The control code to start or end color formatting.
- sopel.formatting.CONTROL_FORMATTING = ['\x0f', '\x03', '\x04', '\x02', '\x1d', '\x1f', '\x1e', '\x11', '\x16']¶
A list of all control characters expected to appear as formatting.
- sopel.formatting.CONTROL_HEX_COLOR = '\x04'¶
The control code to start or end hexadecimal color formatting.
- sopel.formatting.CONTROL_ITALIC = '\x1d'¶
The control code to start or end italic formatting.
- sopel.formatting.CONTROL_MONOSPACE = '\x11'¶
The control code to start or end monospace formatting.
- sopel.formatting.CONTROL_NORMAL = '\x0f'¶
The control code to reset formatting.
- sopel.formatting.CONTROL_REVERSE = '\x16'¶
The control code to start or end reverse-color formatting.
- sopel.formatting.CONTROL_STRIKETHROUGH = '\x1e'¶
The control code to start or end strikethrough formatting.
- sopel.formatting.CONTROL_UNDERLINE = '\x1f'¶
The control code to start or end underlining.
- sopel.formatting.bold(text)¶
Return the text, with bold IRC formatting.
- sopel.formatting.color(text, fg=None, bg=None)¶
Return the text, with the given colors applied in IRC formatting.
- Parameters:
text (str) – the text to format
fg (mixed) – the foreground color
bg (mixed) – the background color
- Raises:
TypeError – if
textis not a stringValueError – if
fgorbgis an unrecognized color value
- Return type:
The color can be a string of the color name, or an integer in the range 0-99. The known color names can be found in the
colorsclass of this module.
- class sopel.formatting.colors(
- value,
- names=_not_given,
- *values,
- module=None,
- qualname=None,
- type=None,
- start=1,
- boundary=None,
Mapping of color names to mIRC code values.
- BLACK = '01'¶
- BLUE = '02'¶
- BROWN = '05'¶
- CYAN = '11'¶
- FUCHSIA = '13'¶
- GRAY = '14'¶
- GREEN = '03'¶
- GREY = '14'¶
- LIGHT_BLUE = '12'¶
- LIGHT_CYAN = '11'¶
- LIGHT_GRAY = '15'¶
- LIGHT_GREEN = '09'¶
- LIGHT_GREY = '15'¶
- LIGHT_PURPLE = '13'¶
- LIGHT_RED = '04'¶
- LIME = '09'¶
- MAROON = '05'¶
- NAVY = '02'¶
- OLIVE = '07'¶
- ORANGE = '07'¶
- PINK = '13'¶
- PURPLE = '06'¶
- RED = '04'¶
- ROYAL = '12'¶
- SILVER = '15'¶
- TEAL = '10'¶
- WHITE = '00'¶
- YELLOW = '08'¶
- sopel.formatting.hex_color(text, fg=None, bg=None)¶
Return the text, with the given colors applied in IRC formatting.
- Parameters:
- Raises:
TypeError – if
textis not a stringValueError – if
fgorbgis an unrecognized color value
- Return type:
The color can be provided with a string of either 3 or 6 hexadecimal digits. As in CSS, 3-digit colors will be interpreted as if they were 6-digit colors with each digit repeated (e.g. color
c90is identical tocc9900). Do not include the leading#symbol.Note
This is a relatively new IRC formatting convention. Use it only when you can afford to have its meaning lost, as not many clients support it yet.
- sopel.formatting.italic(text)¶
Return the text, with italic IRC formatting.
- sopel.formatting.monospace(text)¶
Return the text, with monospace IRC formatting.
- Parameters:
text (str) – the text to format
- Raises:
TypeError – if
textis not a string- Return type:
Note
This is a relatively new IRC formatting convention. Use it only when you can afford to have its meaning lost, as not many clients support it yet.
- sopel.formatting.plain(text)¶
Return the text without any IRC formatting.
- sopel.formatting.reverse(text)¶
Return the text, with reverse-color IRC formatting.
- Parameters:
text (str) – the text to format
- Raises:
TypeError – if
textis not a string- Return type:
Note
This code isn’t super well supported, and its behavior even in clients that understand it (e.g. mIRC) can be unpredictable. Use it carefully.
- sopel.formatting.strikethrough(text)¶
Return the text, with strikethrough IRC formatting.
- Parameters:
text (str) – the text to format
- Raises:
TypeError – if
textis not a string- Return type:
Note
This is a relatively new IRC formatting convention. Use it only when you can afford to have its meaning lost, as not many clients support it yet.