module documentation
(source)

Internet Relay Chat protocol for client and server.

Future Plans

The way the IRCClient class works here encourages people to implement IRC clients by subclassing the ephemeral protocol class, and it tends to end up with way more state than it should for an object which will be destroyed as soon as the TCP transport drops. Someone oughta do something about that, ya know?

The DCC support needs to have more hooks for the client for it to be able to ask the user things like "Do you want to accept this session?" and "Transfer #2 is 67% done." and otherwise manage the DCC sessions.

Test coverage needs to be better.

Author
Kevin Turner
See Also
RFC 1459: Internet Relay Chat Protocol
RFC 2812: Internet Relay Chat: Client Protocol
The Client-To-Client-Protocol
Class DccChat Direct Client Connection protocol type CHAT.
Class DccChatFactory Undocumented
Class DccFileReceive Higher-level coverage for getting a file from DCC SEND.
Class DccFileReceiveBasic Bare protocol to receive a Direct Client Connection SEND stream.
Class DccSendFactory Undocumented
Class DccSendProtocol Protocol for an outgoing Direct Client Connection SEND.
Class IRC Internet Relay Chat server protocol.
Class IRCBadMessage Undocumented
Class IRCBadModes A malformed mode was encountered while attempting to parse a mode string.
Class IRCClient Internet Relay Chat client protocol, with sprinkles.
Class IRCPasswordMismatch Undocumented
Class ServerSupportedFeatures Handle ISUPPORT messages.
Class UnhandledCommand A command dispatcher could not locate an appropriate command handler.
Function assembleFormattedText Assemble formatted text from structured information.
Function ctcpDequote Undocumented
Function ctcpExtract Extract CTCP data from a string.
Function ctcpQuote Undocumented
Function ctcpStringify
Function dccDescribe Given the data chunk from a DCC query, return a descriptive string.
Function dccParseAddress Undocumented
Function fileSize I'll try my damndest to determine the size of this file object.
Function lowDequote Undocumented
Function lowQuote Undocumented
Function parseFormattedText Parse text containing IRC formatting codes into structured information.
Function parseModes Parse an IRC mode string.
Function parsemsg Breaks a message from an IRC server into its prefix, command, and arguments.
Function split Split a string into multiple lines.
Function stripFormatting Remove all formatting codes from text, leaving only the text.
Variable attributes Singleton instance of _CharacterAttributes, used for constructing formatted text information.
Variable CHANNEL_PREFIXES Undocumented
Variable CR Undocumented
Variable ERR_ALREADYREGISTRED Undocumented
Variable ERR_BADCHANMASK Undocumented
Variable ERR_BADCHANNELKEY Undocumented
Variable ERR_BADMASK Undocumented
Variable ERR_BANLISTFULL Undocumented
Variable ERR_BANNEDFROMCHAN Undocumented
Variable ERR_CANNOTSENDTOCHAN Undocumented
Variable ERR_CANTKILLSERVER Undocumented
Variable ERR_CHANNELISFULL Undocumented
Variable ERR_CHANOPRIVSNEEDED Undocumented
Variable ERR_ERRONEUSNICKNAME Undocumented
Variable ERR_FILEERROR Undocumented
Variable ERR_INVITEONLYCHAN Undocumented
Variable ERR_KEYSET Undocumented
Variable ERR_NEEDMOREPARAMS Undocumented
Variable ERR_NICKCOLLISION Undocumented
Variable ERR_NICKNAMEINUSE Undocumented
Variable ERR_NOADMININFO Undocumented
Variable ERR_NOCHANMODES Undocumented
Variable ERR_NOLOGIN Undocumented
Variable ERR_NOMOTD Undocumented
Variable ERR_NONICKNAMEGIVEN Undocumented
Variable ERR_NOOPERHOST Undocumented
Variable ERR_NOORIGIN Undocumented
Variable ERR_NOPERMFORHOST Undocumented
Variable ERR_NOPRIVILEGES Undocumented
Variable ERR_NORECIPIENT Undocumented
Variable ERR_NOSERVICEHOST Undocumented
Variable ERR_NOSUCHCHANNEL Undocumented
Variable ERR_NOSUCHNICK Undocumented
Variable ERR_NOSUCHSERVER Undocumented
Variable ERR_NOSUCHSERVICE Undocumented
Variable ERR_NOTEXTTOSEND Undocumented
Variable ERR_NOTONCHANNEL Undocumented
Variable ERR_NOTOPLEVEL Undocumented
Variable ERR_NOTREGISTERED Undocumented
Variable ERR_PASSWDMISMATCH Undocumented
Variable ERR_RESTRICTED Undocumented
Variable ERR_SUMMONDISABLED Undocumented
Variable ERR_TOOMANYCHANNELS Undocumented
Variable ERR_TOOMANYMATCHES Undocumented
Variable ERR_TOOMANYTARGETS Undocumented
Variable ERR_UMODEUNKNOWNFLAG Undocumented
Variable ERR_UNAVAILRESOURCE Undocumented
Variable ERR_UNIQOPPRIVSNEEDED Undocumented
Variable ERR_UNKNOWNCOMMAND Undocumented
Variable ERR_UNKNOWNMODE Undocumented
Variable ERR_USERNOTINCHANNEL Undocumented
Variable ERR_USERONCHANNEL Undocumented
Variable ERR_USERSDISABLED Undocumented
Variable ERR_USERSDONTMATCH Undocumented
Variable ERR_WASNOSUCHNICK Undocumented
Variable ERR_WILDTOPLEVEL Undocumented
Variable ERR_YOUREBANNEDCREEP Undocumented
Variable ERR_YOUWILLBEBANNED Undocumented
Variable M_QUOTE Undocumented
Variable MAX_COMMAND_LENGTH The maximum length of a command, as defined by RFC 2812 section 2.3.
Variable mDequoteTable Undocumented
Variable mEscape_re Undocumented
Variable mQuoteTable Undocumented
Variable NL Undocumented
Variable NUL Undocumented
Variable numeric_to_symbolic Undocumented
Variable RPL_ADMINEMAIL Undocumented
Variable RPL_ADMINLOC1 Undocumented
Variable RPL_ADMINLOC2 Undocumented
Variable RPL_ADMINME Undocumented
Variable RPL_AWAY Undocumented
Variable RPL_BANLIST Undocumented
Variable RPL_BOUNCE Undocumented
Variable RPL_CHANNELMODEIS Undocumented
Variable RPL_CREATED Undocumented
Variable RPL_ENDOFBANLIST Undocumented
Variable RPL_ENDOFEXCEPTLIST Undocumented
Variable RPL_ENDOFINFO Undocumented
Variable RPL_ENDOFINVITELIST Undocumented
Variable RPL_ENDOFLINKS Undocumented
Variable RPL_ENDOFMOTD Undocumented
Variable RPL_ENDOFNAMES Undocumented
Variable RPL_ENDOFSTATS Undocumented
Variable RPL_ENDOFUSERS Undocumented
Variable RPL_ENDOFWHO Undocumented
Variable RPL_ENDOFWHOIS Undocumented
Variable RPL_ENDOFWHOWAS Undocumented
Variable RPL_EXCEPTLIST Undocumented
Variable RPL_INFO Undocumented
Variable RPL_INVITELIST Undocumented
Variable RPL_INVITING Undocumented
Variable RPL_ISON Undocumented
Variable RPL_ISUPPORT Undocumented
Variable RPL_LINKS Undocumented
Variable RPL_LIST Undocumented
Variable RPL_LISTEND Undocumented
Variable RPL_LISTSTART Undocumented
Variable RPL_LUSERCHANNELS Undocumented
Variable RPL_LUSERCLIENT Undocumented
Variable RPL_LUSERME Undocumented
Variable RPL_LUSEROP Undocumented
Variable RPL_LUSERUNKNOWN Undocumented
Variable RPL_MOTD Undocumented
Variable RPL_MOTDSTART Undocumented
Variable RPL_MYINFO Undocumented
Variable RPL_NAMREPLY Undocumented
Variable RPL_NOTOPIC Undocumented
Variable RPL_NOUSERS Undocumented
Variable RPL_NOWAWAY Undocumented
Variable RPL_REHASHING Undocumented
Variable RPL_SERVLIST Undocumented
Variable RPL_SERVLISTEND Undocumented
Variable RPL_STATSCOMMANDS Undocumented
Variable RPL_STATSLINKINFO Undocumented
Variable RPL_STATSOLINE Undocumented
Variable RPL_STATSUPTIME Undocumented
Variable RPL_SUMMONING Undocumented
Variable RPL_TIME Undocumented
Variable RPL_TOPIC Undocumented
Variable RPL_TRACECLASS Undocumented
Variable RPL_TRACECONNECTING Undocumented
Variable RPL_TRACEEND Undocumented
Variable RPL_TRACEHANDSHAKE Undocumented
Variable RPL_TRACELINK Undocumented
Variable RPL_TRACELOG Undocumented
Variable RPL_TRACENEWTYPE Undocumented
Variable RPL_TRACEOPERATOR Undocumented
Variable RPL_TRACERECONNECT Undocumented
Variable RPL_TRACESERVER Undocumented
Variable RPL_TRACESERVICE Undocumented
Variable RPL_TRACEUNKNOWN Undocumented
Variable RPL_TRACEUSER Undocumented
Variable RPL_TRYAGAIN Undocumented
Variable RPL_UMODEIS Undocumented
Variable RPL_UNAWAY Undocumented
Variable RPL_UNIQOPIS Undocumented
Variable RPL_USERHOST Undocumented
Variable RPL_USERS Undocumented
Variable RPL_USERSSTART Undocumented
Variable RPL_VERSION Undocumented
Variable RPL_WELCOME Undocumented
Variable RPL_WHOISCHANNELS Undocumented
Variable RPL_WHOISIDLE Undocumented
Variable RPL_WHOISOPERATOR Undocumented
Variable RPL_WHOISSERVER Undocumented
Variable RPL_WHOISUSER Undocumented
Variable RPL_WHOREPLY Undocumented
Variable RPL_WHOWASUSER Undocumented
Variable RPL_YOUREOPER Undocumented
Variable RPL_YOURESERVICE Undocumented
Variable RPL_YOURHOST Undocumented
Variable SPC Undocumented
Variable symbolic_to_numeric Undocumented
Variable X_DELIM Undocumented
Variable X_QUOTE Undocumented
Variable xDequoteTable Undocumented
Variable xEscape_re Undocumented
Variable xQuoteTable Undocumented
Class _CharacterAttributes Factory for character attributes, including foreground and background color and non-color attributes such as bold, reverse video and underline.
Class _CommandDispatcherMixin Dispatch commands to handlers based on their name.
Class _FormattingParser A finite-state machine that parses formatted IRC text.
Class _FormattingState Formatting state/attributes of a single character.
Function _foldr Apply a function of two arguments cumulatively to the items of a sequence, from right to left, so as to reduce the sequence to a single value.
Function _intOrDefault Convert a value to an integer if possible.
Variable _BOLD Undocumented
Variable _COLOR Undocumented
Variable _IRC_COLOR_NAMES Undocumented
Variable _IRC_COLORS Undocumented
Variable _OFF Undocumented
Variable _REVERSE_VIDEO Undocumented
Variable _UNDERLINE Undocumented
def assembleFormattedText(formatted): (source)

Assemble formatted text from structured information.

Currently handled formatting includes: bold, reverse, underline, mIRC color codes and the ability to remove all current formatting.

It is worth noting that assembled text will always begin with the control code to disable other attributes for the sake of correctness.

For example:

    from twisted.words.protocols.irc import attributes as A
    assembleFormattedText(
        A.normal[A.bold['Time: '], A.fg.lightRed['Now!']])

Would produce "Time: " in bold formatting, followed by "Now!" with a foreground color of light red and without any additional formatting.

Available attributes are:

  • bold
  • reverseVideo
  • underline

Available colors are:

  1. white
  2. black
  3. blue
  4. green
  5. light red
  6. red
  7. magenta
  8. orange
  9. yellow
  10. light green
  11. cyan
  12. light cyan
  13. light blue
  14. light magenta
  15. gray
  16. light gray
Parameters
formattedStructured text and attributes.
Returns
strString containing mIRC control sequences that mimic those specified by formatted.
See Also
http://www.mirc.co.uk/help/color.txt
Present Since
13.1
def ctcpDequote(s): (source)

Undocumented

def ctcpExtract(message): (source)
Extract CTCP data from a string.
Returns

A dict containing two keys:

  • 'extended': A list of CTCP (tag, data) tuples.
  • 'normal': A list of strings which were not inside a CTCP delimiter.
def ctcpQuote(s): (source)

Undocumented

def ctcpStringify(messages): (source)
Parameters
messages:a list of extended messages. An extended message is a (tag, data) tuple, where 'data' may be None, a string, or a list of strings to be joined with whitespace.Undocumented
Returns
String
def dccDescribe(data): (source)
Given the data chunk from a DCC query, return a descriptive string.
Parameters
data:bytesThe data from a DCC query.
Returns
bytesA descriptive string.
def dccParseAddress(address): (source)

Undocumented

def fileSize(file): (source)
I'll try my damndest to determine the size of this file object.
Parameters
file:io.IOBaseThe file object to determine the size of.
Returns
int or NoneThe size of the file object as an integer if it can be determined, otherwise return None.
def lowDequote(s): (source)

Undocumented

def lowQuote(s): (source)

Undocumented

def parseFormattedText(text): (source)

Parse text containing IRC formatting codes into structured information.

Color codes are mapped from 0 to 15 and wrap around if greater than 15.

Parameters
text:strFormatted text to parse.
Returns
Structured text and attributes.
Present Since
13.1
def parseModes(modes, params, paramModes=('', '')): (source)

Parse an IRC mode string.

The mode string is parsed into two lists of mode changes (added and removed), with each mode change represented as (mode, param) where mode is the mode character, and param is the parameter passed for that mode, or None if no parameter is required.

Parameters
modes:strModes string to parse.
params:listParameters specified along with modes.
paramModes:(str, str)A pair of strings ((add, remove)) that indicate which modes take parameters when added or removed.
Returns
Two lists of mode changes, one for modes added and the other for modes removed respectively, mode changes in each list are represented as (mode, param).
def parsemsg(s): (source)
Breaks a message from an IRC server into its prefix, command, and arguments.
Parameters
s:bytesThe message to break.
Returns
tupleA tuple of (prefix, command, args).
def split(str, length=80): (source)

Split a string into multiple lines.

Whitespace near str[length] will be preferred as a breaking point. "\n" will also be used as a breaking point.

Parameters
str:strThe string to split.
length:intThe maximum length which will be allowed for any string in the result.
Returns
list of str
def stripFormatting(text): (source)
Remove all formatting codes from text, leaving only the text.
Parameters
text:strFormatted text to parse.
Returns
strPlain text without any control sequences.
Present Since
13.1
attributes = (source)
Singleton instance of _CharacterAttributes, used for constructing formatted text information.
CHANNEL_PREFIXES: str = (source)

Undocumented

Undocumented

ERR_ALREADYREGISTRED: str = (source)

Undocumented

ERR_BADCHANMASK: str = (source)

Undocumented

ERR_BADCHANNELKEY: str = (source)

Undocumented

ERR_BADMASK: str = (source)

Undocumented

ERR_BANLISTFULL: str = (source)

Undocumented

ERR_BANNEDFROMCHAN: str = (source)

Undocumented

ERR_CANNOTSENDTOCHAN: str = (source)

Undocumented

ERR_CANTKILLSERVER: str = (source)

Undocumented

ERR_CHANNELISFULL: str = (source)

Undocumented

ERR_CHANOPRIVSNEEDED: str = (source)

Undocumented

ERR_ERRONEUSNICKNAME: str = (source)

Undocumented

ERR_FILEERROR: str = (source)

Undocumented

ERR_INVITEONLYCHAN: str = (source)

Undocumented

ERR_KEYSET: str = (source)

Undocumented

ERR_NEEDMOREPARAMS: str = (source)

Undocumented

ERR_NICKCOLLISION: str = (source)

Undocumented

ERR_NICKNAMEINUSE: str = (source)

Undocumented

ERR_NOADMININFO: str = (source)

Undocumented

ERR_NOCHANMODES: str = (source)

Undocumented

ERR_NOLOGIN: str = (source)

Undocumented

ERR_NOMOTD: str = (source)

Undocumented

ERR_NONICKNAMEGIVEN: str = (source)

Undocumented

ERR_NOOPERHOST: str = (source)

Undocumented

ERR_NOORIGIN: str = (source)

Undocumented

ERR_NOPERMFORHOST: str = (source)

Undocumented

ERR_NOPRIVILEGES: str = (source)

Undocumented

ERR_NORECIPIENT: str = (source)

Undocumented

ERR_NOSERVICEHOST: str = (source)

Undocumented

ERR_NOSUCHCHANNEL: str = (source)

Undocumented

ERR_NOSUCHNICK: str = (source)

Undocumented

ERR_NOSUCHSERVER: str = (source)

Undocumented

ERR_NOSUCHSERVICE: str = (source)

Undocumented

ERR_NOTEXTTOSEND: str = (source)

Undocumented

ERR_NOTONCHANNEL: str = (source)

Undocumented

ERR_NOTOPLEVEL: str = (source)

Undocumented

ERR_NOTREGISTERED: str = (source)

Undocumented

ERR_PASSWDMISMATCH: str = (source)

Undocumented

ERR_RESTRICTED: str = (source)

Undocumented

ERR_SUMMONDISABLED: str = (source)

Undocumented

ERR_TOOMANYCHANNELS: str = (source)

Undocumented

ERR_TOOMANYMATCHES: str = (source)

Undocumented

ERR_TOOMANYTARGETS: str = (source)

Undocumented

ERR_UMODEUNKNOWNFLAG: str = (source)

Undocumented

ERR_UNAVAILRESOURCE: str = (source)

Undocumented

ERR_UNIQOPPRIVSNEEDED: str = (source)

Undocumented

ERR_UNKNOWNCOMMAND: str = (source)

Undocumented

ERR_UNKNOWNMODE: str = (source)

Undocumented

ERR_USERNOTINCHANNEL: str = (source)

Undocumented

ERR_USERONCHANNEL: str = (source)

Undocumented

ERR_USERSDISABLED: str = (source)

Undocumented

ERR_USERSDONTMATCH: str = (source)

Undocumented

ERR_WASNOSUCHNICK: str = (source)

Undocumented

ERR_WILDTOPLEVEL: str = (source)

Undocumented

ERR_YOUREBANNEDCREEP: str = (source)

Undocumented

ERR_YOUWILLBEBANNED: str = (source)

Undocumented

M_QUOTE = (source)

Undocumented

MAX_COMMAND_LENGTH: int = (source)
The maximum length of a command, as defined by RFC 2812 section 2.3.
mDequoteTable: dict = (source)

Undocumented

mEscape_re = (source)

Undocumented

mQuoteTable = (source)

Undocumented

Undocumented

Undocumented

numeric_to_symbolic: dict = (source)

Undocumented

RPL_ADMINEMAIL: str = (source)

Undocumented

RPL_ADMINLOC1: str = (source)

Undocumented

RPL_ADMINLOC2: str = (source)

Undocumented

RPL_ADMINME: str = (source)

Undocumented

RPL_AWAY: str = (source)

Undocumented

RPL_BANLIST: str = (source)

Undocumented

RPL_BOUNCE: str = (source)

Undocumented

RPL_CHANNELMODEIS: str = (source)

Undocumented

RPL_CREATED: str = (source)

Undocumented

RPL_ENDOFBANLIST: str = (source)

Undocumented

RPL_ENDOFEXCEPTLIST: str = (source)

Undocumented

RPL_ENDOFINFO: str = (source)

Undocumented

RPL_ENDOFINVITELIST: str = (source)

Undocumented

RPL_ENDOFLINKS: str = (source)

Undocumented

RPL_ENDOFMOTD: str = (source)

Undocumented

RPL_ENDOFNAMES: str = (source)

Undocumented

RPL_ENDOFSTATS: str = (source)

Undocumented

RPL_ENDOFUSERS: str = (source)

Undocumented

RPL_ENDOFWHO: str = (source)

Undocumented

RPL_ENDOFWHOIS: str = (source)

Undocumented

RPL_ENDOFWHOWAS: str = (source)

Undocumented

RPL_EXCEPTLIST: str = (source)

Undocumented

RPL_INFO: str = (source)

Undocumented

RPL_INVITELIST: str = (source)

Undocumented

RPL_INVITING: str = (source)

Undocumented

RPL_ISON: str = (source)

Undocumented

RPL_ISUPPORT: str = (source)

Undocumented

RPL_LINKS: str = (source)

Undocumented

RPL_LIST: str = (source)

Undocumented

RPL_LISTEND: str = (source)

Undocumented

RPL_LISTSTART: str = (source)

Undocumented

RPL_LUSERCHANNELS: str = (source)

Undocumented

RPL_LUSERCLIENT: str = (source)

Undocumented

RPL_LUSERME: str = (source)

Undocumented

RPL_LUSEROP: str = (source)

Undocumented

RPL_LUSERUNKNOWN: str = (source)

Undocumented

RPL_MOTD: str = (source)

Undocumented

RPL_MOTDSTART: str = (source)

Undocumented

RPL_MYINFO: str = (source)

Undocumented

RPL_NAMREPLY: str = (source)

Undocumented

RPL_NOTOPIC: str = (source)

Undocumented

RPL_NOUSERS: str = (source)

Undocumented

RPL_NOWAWAY: str = (source)

Undocumented

RPL_REHASHING: str = (source)

Undocumented

RPL_SERVLIST: str = (source)

Undocumented

RPL_SERVLISTEND: str = (source)

Undocumented

RPL_STATSCOMMANDS: str = (source)

Undocumented

RPL_STATSLINKINFO: str = (source)

Undocumented

RPL_STATSOLINE: str = (source)

Undocumented

RPL_STATSUPTIME: str = (source)

Undocumented

RPL_SUMMONING: str = (source)

Undocumented

RPL_TIME: str = (source)

Undocumented

RPL_TOPIC: str = (source)

Undocumented

RPL_TRACECLASS: str = (source)

Undocumented

RPL_TRACECONNECTING: str = (source)

Undocumented

RPL_TRACEEND: str = (source)

Undocumented

RPL_TRACEHANDSHAKE: str = (source)

Undocumented

RPL_TRACELINK: str = (source)

Undocumented

RPL_TRACELOG: str = (source)

Undocumented

RPL_TRACENEWTYPE: str = (source)

Undocumented

RPL_TRACEOPERATOR: str = (source)

Undocumented

RPL_TRACERECONNECT: str = (source)

Undocumented

RPL_TRACESERVER: str = (source)

Undocumented

RPL_TRACESERVICE: str = (source)

Undocumented

RPL_TRACEUNKNOWN: str = (source)

Undocumented

RPL_TRACEUSER: str = (source)

Undocumented

RPL_TRYAGAIN: str = (source)

Undocumented

RPL_UMODEIS: str = (source)

Undocumented

RPL_UNAWAY: str = (source)

Undocumented

RPL_UNIQOPIS: str = (source)

Undocumented

RPL_USERHOST: str = (source)

Undocumented

RPL_USERS: str = (source)

Undocumented

RPL_USERSSTART: str = (source)

Undocumented

RPL_VERSION: str = (source)

Undocumented

RPL_WELCOME: str = (source)

Undocumented

RPL_WHOISCHANNELS: str = (source)

Undocumented

RPL_WHOISIDLE: str = (source)

Undocumented

RPL_WHOISOPERATOR: str = (source)

Undocumented

RPL_WHOISSERVER: str = (source)

Undocumented

RPL_WHOISUSER: str = (source)

Undocumented

RPL_WHOREPLY: str = (source)

Undocumented

RPL_WHOWASUSER: str = (source)

Undocumented

RPL_YOUREOPER: str = (source)

Undocumented

RPL_YOURESERVICE: str = (source)

Undocumented

RPL_YOURHOST: str = (source)

Undocumented

Undocumented

symbolic_to_numeric: dict[str, str] = (source)

Undocumented

X_DELIM = (source)

Undocumented

X_QUOTE: str = (source)

Undocumented

xDequoteTable: dict = (source)

Undocumented

xEscape_re = (source)

Undocumented

xQuoteTable = (source)

Undocumented

def _foldr(f, z, xs): (source)
Apply a function of two arguments cumulatively to the items of a sequence, from right to left, so as to reduce the sequence to a single value.
Parameters
f:callable taking 2 argumentsUndocumented
zInitial value.
xsSequence to reduce.
Returns
Single value resulting from reducing xs.
def _intOrDefault(value, default=None): (source)
Convert a value to an integer if possible.
Returns
int or type of defaultAn integer when value can be converted to an integer, otherwise return default
_BOLD: str = (source)

Undocumented

_COLOR: str = (source)

Undocumented

_IRC_COLOR_NAMES = (source)

Undocumented

_IRC_COLORS = (source)

Undocumented

_OFF: str = (source)

Undocumented

_REVERSE_VIDEO: str = (source)

Undocumented

_UNDERLINE: str = (source)

Undocumented