blob: 04b2a260af09468f89ea7f8e85bec4162206acaf [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001:mod:`curses.ascii` --- Utilities for ASCII characters
2======================================================
3
4.. module:: curses.ascii
5 :synopsis: Constants and set-membership functions for ASCII characters.
Terry Jan Reedyfa089b92016-06-11 15:02:54 -04006
Georg Brandl116aa622007-08-15 14:28:22 +00007.. moduleauthor:: Eric S. Raymond <esr@thyrsus.com>
8.. sectionauthor:: Eric S. Raymond <esr@thyrsus.com>
9
Terry Jan Reedyfa089b92016-06-11 15:02:54 -040010--------------
Georg Brandl116aa622007-08-15 14:28:22 +000011
Georg Brandl116aa622007-08-15 14:28:22 +000012The :mod:`curses.ascii` module supplies name constants for ASCII characters and
13functions to test membership in various ASCII character classes. The constants
14supplied are names for control characters as follows:
15
16+--------------+----------------------------------------------+
17| Name | Meaning |
18+==============+==============================================+
19| :const:`NUL` | |
20+--------------+----------------------------------------------+
21| :const:`SOH` | Start of heading, console interrupt |
22+--------------+----------------------------------------------+
23| :const:`STX` | Start of text |
24+--------------+----------------------------------------------+
25| :const:`ETX` | End of text |
26+--------------+----------------------------------------------+
27| :const:`EOT` | End of transmission |
28+--------------+----------------------------------------------+
29| :const:`ENQ` | Enquiry, goes with :const:`ACK` flow control |
30+--------------+----------------------------------------------+
31| :const:`ACK` | Acknowledgement |
32+--------------+----------------------------------------------+
33| :const:`BEL` | Bell |
34+--------------+----------------------------------------------+
35| :const:`BS` | Backspace |
36+--------------+----------------------------------------------+
37| :const:`TAB` | Tab |
38+--------------+----------------------------------------------+
39| :const:`HT` | Alias for :const:`TAB`: "Horizontal tab" |
40+--------------+----------------------------------------------+
41| :const:`LF` | Line feed |
42+--------------+----------------------------------------------+
43| :const:`NL` | Alias for :const:`LF`: "New line" |
44+--------------+----------------------------------------------+
45| :const:`VT` | Vertical tab |
46+--------------+----------------------------------------------+
47| :const:`FF` | Form feed |
48+--------------+----------------------------------------------+
49| :const:`CR` | Carriage return |
50+--------------+----------------------------------------------+
51| :const:`SO` | Shift-out, begin alternate character set |
52+--------------+----------------------------------------------+
53| :const:`SI` | Shift-in, resume default character set |
54+--------------+----------------------------------------------+
55| :const:`DLE` | Data-link escape |
56+--------------+----------------------------------------------+
57| :const:`DC1` | XON, for flow control |
58+--------------+----------------------------------------------+
59| :const:`DC2` | Device control 2, block-mode flow control |
60+--------------+----------------------------------------------+
61| :const:`DC3` | XOFF, for flow control |
62+--------------+----------------------------------------------+
63| :const:`DC4` | Device control 4 |
64+--------------+----------------------------------------------+
65| :const:`NAK` | Negative acknowledgement |
66+--------------+----------------------------------------------+
67| :const:`SYN` | Synchronous idle |
68+--------------+----------------------------------------------+
69| :const:`ETB` | End transmission block |
70+--------------+----------------------------------------------+
71| :const:`CAN` | Cancel |
72+--------------+----------------------------------------------+
73| :const:`EM` | End of medium |
74+--------------+----------------------------------------------+
75| :const:`SUB` | Substitute |
76+--------------+----------------------------------------------+
77| :const:`ESC` | Escape |
78+--------------+----------------------------------------------+
79| :const:`FS` | File separator |
80+--------------+----------------------------------------------+
81| :const:`GS` | Group separator |
82+--------------+----------------------------------------------+
83| :const:`RS` | Record separator, block-mode terminator |
84+--------------+----------------------------------------------+
85| :const:`US` | Unit separator |
86+--------------+----------------------------------------------+
87| :const:`SP` | Space |
88+--------------+----------------------------------------------+
89| :const:`DEL` | Delete |
90+--------------+----------------------------------------------+
91
92Note that many of these have little practical significance in modern usage. The
93mnemonics derive from teleprinter conventions that predate digital computers.
94
95The module supplies the following functions, patterned on those in the standard
96C library:
97
98
99.. function:: isalnum(c)
100
101 Checks for an ASCII alphanumeric character; it is equivalent to ``isalpha(c) or
102 isdigit(c)``.
103
104
105.. function:: isalpha(c)
106
107 Checks for an ASCII alphabetic character; it is equivalent to ``isupper(c) or
108 islower(c)``.
109
110
111.. function:: isascii(c)
112
113 Checks for a character value that fits in the 7-bit ASCII set.
114
115
116.. function:: isblank(c)
117
Serhiy Storchaka514f9732016-06-18 22:08:11 +0300118 Checks for an ASCII whitespace character; space or horizontal tab.
Georg Brandl116aa622007-08-15 14:28:22 +0000119
120
121.. function:: iscntrl(c)
122
Serhiy Storchaka514f9732016-06-18 22:08:11 +0300123 Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f).
Georg Brandl116aa622007-08-15 14:28:22 +0000124
125
126.. function:: isdigit(c)
127
128 Checks for an ASCII decimal digit, ``'0'`` through ``'9'``. This is equivalent
129 to ``c in string.digits``.
130
131
132.. function:: isgraph(c)
133
134 Checks for ASCII any printable character except space.
135
136
137.. function:: islower(c)
138
139 Checks for an ASCII lower-case character.
140
141
142.. function:: isprint(c)
143
144 Checks for any ASCII printable character including space.
145
146
147.. function:: ispunct(c)
148
149 Checks for any printable ASCII character which is not a space or an alphanumeric
150 character.
151
152
153.. function:: isspace(c)
154
155 Checks for ASCII white-space characters; space, line feed, carriage return, form
156 feed, horizontal tab, vertical tab.
157
158
159.. function:: isupper(c)
160
161 Checks for an ASCII uppercase letter.
162
163
164.. function:: isxdigit(c)
165
166 Checks for an ASCII hexadecimal digit. This is equivalent to ``c in
167 string.hexdigits``.
168
169
170.. function:: isctrl(c)
171
172 Checks for an ASCII control character (ordinal values 0 to 31).
173
174
175.. function:: ismeta(c)
176
177 Checks for a non-ASCII character (ordinal values 0x80 and above).
178
Serhiy Storchaka300dd552017-10-04 22:44:13 +0300179These functions accept either integers or single-character strings; when the argument is a
Georg Brandl116aa622007-08-15 14:28:22 +0000180string, it is first converted using the built-in function :func:`ord`.
181
Serhiy Storchaka300dd552017-10-04 22:44:13 +0300182Note that all these functions check ordinal bit values derived from the
Georg Brandl116aa622007-08-15 14:28:22 +0000183character of the string you pass in; they do not actually know anything about
Serhiy Storchaka300dd552017-10-04 22:44:13 +0300184the host machine's character encoding.
Georg Brandl116aa622007-08-15 14:28:22 +0000185
186The following two functions take either a single-character string or integer
187byte value; they return a value of the same type.
188
189
190.. function:: ascii(c)
191
192 Return the ASCII value corresponding to the low 7 bits of *c*.
193
194
195.. function:: ctrl(c)
196
197 Return the control character corresponding to the given character (the character
198 bit value is bitwise-anded with 0x1f).
199
200
201.. function:: alt(c)
202
203 Return the 8-bit character corresponding to the given ASCII character (the
204 character bit value is bitwise-ored with 0x80).
205
206The following function takes either a single-character string or integer value;
207it returns a string.
208
209
210.. function:: unctrl(c)
211
212 Return a string representation of the ASCII character *c*. If *c* is printable,
213 this string is the character itself. If the character is a control character
Serhiy Storchakac7b1a0b2016-11-26 13:43:28 +0200214 (0x00--0x1f) the string consists of a caret (``'^'``) followed by the
Georg Brandl116aa622007-08-15 14:28:22 +0000215 corresponding uppercase letter. If the character is an ASCII delete (0x7f) the
216 string is ``'^?'``. If the character has its meta bit (0x80) set, the meta bit
217 is stripped, the preceding rules applied, and ``'!'`` prepended to the result.
218
219
220.. data:: controlnames
221
222 A 33-element string array that contains the ASCII mnemonics for the thirty-two
223 ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the mnemonic
224 ``SP`` for the space character.
225