1 """Constants and membership tests for ASCII characters""" 2 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 39 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" 46 ] 47 48 def _ctoi(c): 49 if type(c) == type(""): 50 return ord(c) 51 else: 52 return c 53 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 70 71 def ascii(c): 72 if type(c) == type(""): 73 return chr(_ctoi(c) & 0x7f) 74 else: 75 return _ctoi(c) & 0x7f 76 77 def ctrl(c): 78 if type(c) == type(""): 79 return chr(_ctoi(c) & 0x1f) 80 else: 81 return _ctoi(c) & 0x1f 82 83 def alt(c): 84 if type(c) == type(""): 85 return chr(_ctoi(c) | 0x80) 86 else: 87 return _ctoi(c) | 0x80 88 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 100