Source code for telnetlib3.telopt

# Exported from the telnetlib module, which is marked for deprecation in version
# 3.11 and removal in 3.13
LINEMODE = b'"'
NAWS = b"\x1f"
NEW_ENVIRON = b"'"
BINARY = b"\x00"
SGA = b"\x03"
ECHO = b"\x01"
STATUS = b"\x05"
TTYPE = b"\x18"
TSPEED = b" "
LFLOW = b"!"
XDISPLOC = b"#"
IAC = b"\xff"
DONT = b"\xfe"
DO = b"\xfd"
WONT = b"\xfc"
WILL = b"\xfb"
SE = b"\xf0"
NOP = b"\xf1"
TM = b"\x06"
DM = b"\xf2"
BRK = b"\xf3"
IP = b"\xf4"
AO = b"\xf5"
AYT = b"\xf6"
EC = b"\xf7"
EL = b"\xf8"
EOR = b"\x19"
GA = b"\xf9"
SB = b"\xfa"
LOGOUT = b"\x12"
CHARSET = b"*"
SNDLOC = b"\x17"
theNULL = b"\x00"
ENCRYPT = b"&"
AUTHENTICATION = b"%"
TN3270E = b"("
XAUTH = b")"
RSP = b"+"
COM_PORT_OPTION = b","
SUPPRESS_LOCAL_ECHO = b"-"
TLS = b"."
KERMIT = b"/"
SEND_URL = b"0"
FORWARD_X = b"1"
PRAGMA_LOGON = b"\x8a"
SSPI_LOGON = b"\x8b"
PRAGMA_HEARTBEAT = b"\x8c"
EXOPL = b"\xff"
X3PAD = b"\x1e"
VT3270REGIME = b"\x1d"
TTYLOC = b"\x1c"
SUPDUPOUTPUT = b"\x16"
SUPDUP = b"\x15"
DET = b"\x14"
BM = b"\x13"
XASCII = b"\x11"
RCP = b"\x02"
NAMS = b"\x04"
RCTE = b"\x07"
NAOL = b"\x08"
NAOP = b"\t"
NAOCRD = b"\n"
NAOHTS = b"\x0b"
NAOHTD = b"\x0c"
NAOFFD = b"\r"
NAOVTS = b"\x0e"
NAOVTD = b"\x0f"
NAOLFD = b"\x10"

__all__ = (
    "ABORT",
    "ACCEPTED",
    "AO",
    "AUTHENTICATION",
    "AYT",
    "BINARY",
    "BM",
    "BRK",
    "CHARSET",
    "CMD_EOR",
    "COM_PORT_OPTION",
    "DET",
    "DM",
    "DO",
    "DONT",
    "EC",
    "ECHO",
    "EL",
    "ENCRYPT",
    "EOF",
    "EOR",
    "ESC",
    "EXOPL",
    "FORWARD_X",
    "GA",
    "IAC",
    "INFO",
    "IP",
    "IS",
    "KERMIT",
    "LFLOW",
    "LFLOW_OFF",
    "LFLOW_ON",
    "LFLOW_RESTART_ANY",
    "LFLOW_RESTART_XON",
    "LINEMODE",
    "LOGOUT",
    "MCCP2_COMPRESS",
    "MCCP_COMPRESS",
    "GMCP",
    "NAMS",
    "NAOCRD",
    "NAOFFD",
    "NAOHTD",
    "NAOHTS",
    "NAOL",
    "NAOLFD",
    "NAOP",
    "NAOVTD",
    "NAOVTS",
    "NAWS",
    "NEW_ENVIRON",
    "NOP",
    "PRAGMA_HEARTBEAT",
    "PRAGMA_LOGON",
    "RCP",
    "RCTE",
    "REJECTED",
    "REQUEST",
    "RSP",
    "SB",
    "SE",
    "SEND",
    "SEND_URL",
    "SGA",
    "SNDLOC",
    "SSPI_LOGON",
    "STATUS",
    "SUPDUP",
    "SUPDUPOUTPUT",
    "SUPPRESS_LOCAL_ECHO",
    "SUSP",
    "TLS",
    "TM",
    "TN3270E",
    "TSPEED",
    "TTABLE_ACK",
    "TTABLE_IS",
    "TTABLE_NAK",
    "TTABLE_REJECTED",
    "TTYLOC",
    "TTYPE",
    "USERVAR",
    "VALUE",
    "VAR",
    "VT3270REGIME",
    "WILL",
    "WONT",
    "X3PAD",
    "XASCII",
    "XAUTH",
    "XDISPLOC",
    "theNULL",
    "name_command",
    "name_commands",
)

(EOF, SUSP, ABORT, CMD_EOR) = (bytes([const]) for const in range(236, 240))
(IS, SEND, INFO) = (bytes([const]) for const in range(3))
(VAR, VALUE, ESC, USERVAR) = (bytes([const]) for const in range(4))
(LFLOW_OFF, LFLOW_ON, LFLOW_RESTART_ANY, LFLOW_RESTART_XON) = (
    bytes([const]) for const in range(4)
)
(REQUEST, ACCEPTED, REJECTED, TTABLE_IS, TTABLE_REJECTED, TTABLE_ACK, TTABLE_NAK) = (
    bytes([const]) for const in range(1, 8)
)
(MCCP_COMPRESS, MCCP2_COMPRESS) = (bytes([85]), bytes([86]))
GMCP = bytes([201])

#: List of globals that may match an iac command option bytes
_DEBUG_OPTS = dict(
    [
        (value, key)
        for key, value in globals().items()
        if key
        in (
            "LINEMODE",
            "LMODE_FORWARDMASK",
            "NAWS",
            "NEW_ENVIRON",
            "ENCRYPT",
            "AUTHENTICATION",
            "BINARY",
            "SGA",
            "ECHO",
            "STATUS",
            "TTYPE",
            "TSPEED",
            "LFLOW",
            "XDISPLOC",
            "IAC",
            "DONT",
            "DO",
            "WONT",
            "WILL",
            "SE",
            "NOP",
            "DM",
            "TM",
            "BRK",
            "IP",
            "ABORT",
            "AO",
            "AYT",
            "EC",
            "EL",
            "EOR",
            "GA",
            "SB",
            "EOF",
            "SUSP",
            "ABORT",
            "CMD_EOR",
            "LOGOUT",
            "CHARSET",
            "SNDLOC",
            "MCCP_COMPRESS",
            "MCCP2_COMPRESS",
            "GMCP",
            "ENCRYPT",
            "AUTHENTICATION",
            "TN3270E",
            "XAUTH",
            "RSP",
            "COM_PORT_OPTION",
            "SUPPRESS_LOCAL_ECHO",
            "TLS",
            "KERMIT",
            "SEND_URL",
            "FORWARD_X",
            "PRAGMA_LOGON",
            "SSPI_LOGON",
            "PRAGMA_HEARTBEAT",
            "EXOPL",
            "X3PAD",
            "VT3270REGIME",
            "TTYLOC",
            "SUPDUPOUTPUT",
            "SUPDUP",
            "DET",
            "BM",
            "XASCII",
            "RCP",
            "NAMS",
            "RCTE",
            "NAOL",
            "NAOP",
            "NAOCRD",
            "NAOHTS",
            "NAOHTD",
            "NAOFFD",
            "NAOVTS",
            "NAOVTD",
            "NAOLFD",
        )
    ]
)


[docs]def name_command(byte): """Return string description for (maybe) telnet command byte.""" return _DEBUG_OPTS.get(byte, repr(byte))
[docs]def name_commands(cmds, sep=" "): """Return string description for array of (maybe) telnet command bytes.""" return sep.join([name_command(bytes([byte])) for byte in cmds])