|
13 | 13 |
|
14 | 14 | # update when constants are added or removed |
15 | 15 |
|
16 | | -MAGIC = 20230612 |
| 16 | +MAGIC = 20260628 |
17 | 17 |
|
18 | 18 | from _sre import MAXREPEAT, MAXGROUPS # noqa: F401 |
19 | 19 |
|
@@ -150,6 +150,35 @@ def _makecodes(*names): |
150 | 150 | 'CATEGORY_UNI_SPACE', 'CATEGORY_UNI_NOT_SPACE', |
151 | 151 | 'CATEGORY_UNI_WORD', 'CATEGORY_UNI_NOT_WORD', |
152 | 152 | 'CATEGORY_UNI_LINEBREAK', 'CATEGORY_UNI_NOT_LINEBREAK', |
| 153 | + |
| 154 | + # Unicode property categories. These are not affected by the ASCII, |
| 155 | + # LOCALE or UNICODE flags. |
| 156 | + 'CATEGORY_ALPHA', 'CATEGORY_NOT_ALPHA', |
| 157 | + 'CATEGORY_LOWER', 'CATEGORY_NOT_LOWER', |
| 158 | + 'CATEGORY_UPPER', 'CATEGORY_NOT_UPPER', |
| 159 | + 'CATEGORY_NUMERIC', 'CATEGORY_NOT_NUMERIC', |
| 160 | + 'CATEGORY_PRINTABLE', 'CATEGORY_NOT_PRINTABLE', |
| 161 | + 'CATEGORY_ALNUM', 'CATEGORY_NOT_ALNUM', |
| 162 | + 'CATEGORY_XID_START', 'CATEGORY_NOT_XID_START', |
| 163 | + 'CATEGORY_XID_CONTINUE', 'CATEGORY_NOT_XID_CONTINUE', |
| 164 | + 'CATEGORY_TITLE', 'CATEGORY_NOT_TITLE', |
| 165 | + 'CATEGORY_CASED', 'CATEGORY_NOT_CASED', |
| 166 | + 'CATEGORY_CASE_IGNORABLE', 'CATEGORY_NOT_CASE_IGNORABLE', |
| 167 | + # Compound categories: Lu = uppercase letter, N = number. |
| 168 | + 'CATEGORY_LU', 'CATEGORY_NOT_LU', |
| 169 | + 'CATEGORY_N', 'CATEGORY_NOT_N', |
| 170 | + 'CATEGORY_LM', 'CATEGORY_NOT_LM', |
| 171 | + 'CATEGORY_NL', 'CATEGORY_NOT_NL', |
| 172 | + 'CATEGORY_NO', 'CATEGORY_NOT_NO', |
| 173 | + 'CATEGORY_CF', 'CATEGORY_NOT_CF', |
| 174 | + 'CATEGORY_Z', 'CATEGORY_NOT_Z', |
| 175 | + 'CATEGORY_ZS', 'CATEGORY_NOT_ZS', |
| 176 | + 'CATEGORY_C', 'CATEGORY_NOT_C', |
| 177 | + 'CATEGORY_CN', 'CATEGORY_NOT_CN', |
| 178 | + 'CATEGORY_ASSIGNED', 'CATEGORY_NOT_ASSIGNED', |
| 179 | + 'CATEGORY_BLANK', 'CATEGORY_NOT_BLANK', |
| 180 | + 'CATEGORY_GRAPH', 'CATEGORY_NOT_GRAPH', |
| 181 | + 'CATEGORY_PRINT', 'CATEGORY_NOT_PRINT', |
153 | 182 | ) |
154 | 183 |
|
155 | 184 |
|
@@ -206,6 +235,39 @@ def _makecodes(*names): |
206 | 235 | CATEGORY_NOT_LINEBREAK: CATEGORY_UNI_NOT_LINEBREAK |
207 | 236 | } |
208 | 237 |
|
| 238 | +# The Unicode property categories are the same regardless of the flags. |
| 239 | +CH_PROPERTY = ( |
| 240 | + CATEGORY_ALPHA, CATEGORY_NOT_ALPHA, |
| 241 | + CATEGORY_LOWER, CATEGORY_NOT_LOWER, |
| 242 | + CATEGORY_UPPER, CATEGORY_NOT_UPPER, |
| 243 | + CATEGORY_NUMERIC, CATEGORY_NOT_NUMERIC, |
| 244 | + CATEGORY_PRINTABLE, CATEGORY_NOT_PRINTABLE, |
| 245 | + CATEGORY_ALNUM, CATEGORY_NOT_ALNUM, |
| 246 | + CATEGORY_XID_START, CATEGORY_NOT_XID_START, |
| 247 | + CATEGORY_XID_CONTINUE, CATEGORY_NOT_XID_CONTINUE, |
| 248 | + CATEGORY_TITLE, CATEGORY_NOT_TITLE, |
| 249 | + CATEGORY_CASED, CATEGORY_NOT_CASED, |
| 250 | + CATEGORY_CASE_IGNORABLE, CATEGORY_NOT_CASE_IGNORABLE, |
| 251 | + CATEGORY_LU, CATEGORY_NOT_LU, |
| 252 | + CATEGORY_N, CATEGORY_NOT_N, |
| 253 | + CATEGORY_LM, CATEGORY_NOT_LM, |
| 254 | + CATEGORY_NL, CATEGORY_NOT_NL, |
| 255 | + CATEGORY_NO, CATEGORY_NOT_NO, |
| 256 | + CATEGORY_CF, CATEGORY_NOT_CF, |
| 257 | + CATEGORY_Z, CATEGORY_NOT_Z, |
| 258 | + CATEGORY_ZS, CATEGORY_NOT_ZS, |
| 259 | + CATEGORY_C, CATEGORY_NOT_C, |
| 260 | + CATEGORY_CN, CATEGORY_NOT_CN, |
| 261 | + CATEGORY_ASSIGNED, CATEGORY_NOT_ASSIGNED, |
| 262 | + CATEGORY_BLANK, CATEGORY_NOT_BLANK, |
| 263 | + CATEGORY_GRAPH, CATEGORY_NOT_GRAPH, |
| 264 | + CATEGORY_PRINT, CATEGORY_NOT_PRINT, |
| 265 | +) |
| 266 | +for _cat in CH_PROPERTY: |
| 267 | + CH_LOCALE[_cat] = _cat |
| 268 | + CH_UNICODE[_cat] = _cat |
| 269 | +del _cat |
| 270 | + |
209 | 271 | CH_NEGATE = dict(zip(CHCODES[::2] + CHCODES[1::2], CHCODES[1::2] + CHCODES[::2])) |
210 | 272 |
|
211 | 273 | # flags |
|
0 commit comments