Minor documentation change - hyperlink tidied up.
[python.git] / Lib / curses / ascii.py
blob800fd8b4b71fad4e0fa361bc73dc07e57494f06c
1 """Constants and membership tests for ASCII characters"""
3 NUL = 0x00 # ^@
4 SOH = 0x01 # ^A
5 STX = 0x02 # ^B
6 ETX = 0x03 # ^C
7 EOT = 0x04 # ^D
8 ENQ = 0x05 # ^E
9 ACK = 0x06 # ^F
10 BEL = 0x07 # ^G
11 BS = 0x08 # ^H
12 TAB = 0x09 # ^I
13 HT = 0x09 # ^I
14 LF = 0x0a # ^J
15 NL = 0x0a # ^J
16 VT = 0x0b # ^K
17 FF = 0x0c # ^L
18 CR = 0x0d # ^M
19 SO = 0x0e # ^N
20 SI = 0x0f # ^O
21 DLE = 0x10 # ^P
22 DC1 = 0x11 # ^Q
23 DC2 = 0x12 # ^R
24 DC3 = 0x13 # ^S
25 DC4 = 0x14 # ^T
26 NAK = 0x15 # ^U
27 SYN = 0x16 # ^V
28 ETB = 0x17 # ^W
29 CAN = 0x18 # ^X
30 EM = 0x19 # ^Y
31 SUB = 0x1a # ^Z
32 ESC = 0x1b # ^[
33 FS = 0x1c # ^\
34 GS = 0x1d # ^]
35 RS = 0x1e # ^^
36 US = 0x1f # ^_
37 SP = 0x20 # space
38 DEL = 0x7f # delete
40 controlnames = [
41 "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
42 "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI",
43 "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
44 "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US",
45 "SP"
48 def _ctoi(c):
49 if type(c) == type(""):
50 return ord(c)
51 else:
52 return c
54 def isalnum(c): return isalpha(c) or isdigit(c)
55 def isalpha(c): return isupper(c) or islower(c)
56 def isascii(c): return _ctoi(c) <= 127 # ?
57 def isblank(c): return _ctoi(c) in (8,32)
58 def iscntrl(c): return _ctoi(c) <= 31
59 def isdigit(c): return _ctoi(c) >= 48 and _ctoi(c) <= 57
60 def isgraph(c): return _ctoi(c) >= 33 and _ctoi(c) <= 126
61 def islower(c): return _ctoi(c) >= 97 and _ctoi(c) <= 122
62 def isprint(c): return _ctoi(c) >= 32 and _ctoi(c) <= 126
63 def ispunct(c): return _ctoi(c) != 32 and not isalnum(c)
64 def isspace(c): return _ctoi(c) in (9, 10, 11, 12, 13, 32)
65 def isupper(c): return _ctoi(c) >= 65 and _ctoi(c) <= 90
66 def isxdigit(c): return isdigit(c) or \
67 (_ctoi(c) >= 65 and _ctoi(c) <= 70) or (_ctoi(c) >= 97 and _ctoi(c) <= 102)
68 def isctrl(c): return _ctoi(c) < 32
69 def ismeta(c): return _ctoi(c) > 127
71 def ascii(c):
72 if type(c) == type(""):
73 return chr(_ctoi(c) & 0x7f)
74 else:
75 return _ctoi(c) & 0x7f
77 def ctrl(c):
78 if type(c) == type(""):
79 return chr(_ctoi(c) & 0x1f)
80 else:
81 return _ctoi(c) & 0x1f
83 def alt(c):
84 if type(c) == type(""):
85 return chr(_ctoi(c) | 0x80)
86 else:
87 return _ctoi(c) | 0x80
89 def unctrl(c):
90 bits = _ctoi(c)
91 if bits == 0x7f:
92 rep = "^?"
93 elif isprint(bits & 0x7f):
94 rep = chr(bits & 0x7f)
95 else:
96 rep = "^" + chr(((bits & 0x7f) | 0x20) + 0x20)
97 if bits & 0x80:
98 return "!" + rep
99 return rep