[pypy-commit] pypy py3k: Issue1262 in-progress: add isprintable() to the unicode database.
amauryfa
noreply at buildbot.pypy.org
Mon Sep 24 23:46:54 CEST 2012
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r57527:52aadd8779b4
Date: 2012-09-23 10:59 +0200
http://bitbucket.org/pypy/pypy/changeset/52aadd8779b4/
Log: Issue1262 in-progress: add isprintable() to the unicode database.
Patch by arielby.
diff --git a/pypy/module/unicodedata/generate_unicodedb.py b/pypy/module/unicodedata/generate_unicodedb.py
--- a/pypy/module/unicodedata/generate_unicodedb.py
+++ b/pypy/module/unicodedata/generate_unicodedb.py
@@ -282,6 +282,8 @@
IS_MIRRORED = 512
IS_XID_START = 1024
IS_XID_CONTINUE = 2048
+ IS_PRINTABLE = 4096 # PEP 3138
+
# Create the records
db_records = {}
for code in range(len(table)):
@@ -307,6 +309,8 @@
flags |= IS_LOWER
if char.mirrored:
flags |= IS_MIRRORED
+ if code == ord(" ") or char.category[0] not in ("C", "Z"):
+ flags |= IS_PRINTABLE
if "XID_Start" in char.properties:
flags |= IS_XID_START
if "XID_Continue" in char.properties:
@@ -366,6 +370,7 @@
print >> outfile, 'def iscased(code): return _get_record(code)[3] & %d != 0'% (IS_UPPER | IS_TITLE | IS_LOWER)
print >> outfile, 'def isxidstart(code): return _get_record(code)[3] & %d != 0'% (IS_XID_START)
print >> outfile, 'def isxidcontinue(code): return _get_record(code)[3] & %d != 0'% (IS_XID_CONTINUE)
+ print >> outfile, 'def isprintable(code): return _get_record(code)[3] & %d != 0'% IS_PRINTABLE
print >> outfile, 'def mirrored(code): return _get_record(code)[3] & %d != 0'% IS_MIRRORED
print >> outfile, 'def combining(code): return _get_record(code)[4]'
diff --git a/pypy/module/unicodedata/test/test_unicodedata.py b/pypy/module/unicodedata/test/test_unicodedata.py
--- a/pypy/module/unicodedata/test/test_unicodedata.py
+++ b/pypy/module/unicodedata/test/test_unicodedata.py
@@ -136,6 +136,16 @@
for chr in self.nocharlist:
raises(KeyError, unicodedb_5_2_0.name, ord(chr))
+ def test_isprintable(self):
+ assert unicodedb_5_2_0.isprintable(ord(' '))
+ assert unicodedb_5_2_0.isprintable(ord('a'))
+ assert not unicodedb_5_2_0.isprintable(127)
+ assert unicodedb_5_2_0.isprintable(0x00010346) # GOTHIC LETTER FAIHU
+ assert unicodedb_5_2_0.isprintable(0xfffd) # REPLACEMENT CHARACTER
+ assert unicodedb_5_2_0.isprintable(0xfffd) # REPLACEMENT CHARACTER
+ assert not unicodedb_5_2_0.isprintable(0xd800) # SURROGATE
+ assert not unicodedb_5_2_0.isprintable(0xE0020) # TAG SPACE
+
def test_compare_functions(self):
import unicodedata # CPython implementation
diff --git a/pypy/module/unicodedata/unicodedb_5_2_0.py b/pypy/module/unicodedata/unicodedb_5_2_0.py
--- a/pypy/module/unicodedata/unicodedb_5_2_0.py
+++ b/pypy/module/unicodedata/unicodedb_5_2_0.py
@@ -134530,236 +134530,236 @@
('Cn', '', 'W', 0, 0),
('Co', 'L', 'A', 0, 0),
('Cs', 'L', 'N', 0, 0),
-('Ll', 'L', 'A', 3106, 0),
-('Ll', 'L', 'F', 3106, 0),
-('Ll', 'L', 'N', 3106, 0),
-('Ll', 'L', 'Na', 3106, 0),
-('Lm', 'AL', 'N', 3074, 0),
-('Lm', 'L', 'A', 3074, 0),
-('Lm', 'L', 'H', 2050, 0),
-('Lm', 'L', 'H', 3074, 0),
-('Lm', 'L', 'N', 2, 0),
-('Lm', 'L', 'N', 3074, 0),
-('Lm', 'L', 'W', 3074, 0),
-('Lm', 'ON', 'A', 3074, 0),
-('Lm', 'ON', 'N', 2, 0),
-('Lm', 'ON', 'N', 3074, 0),
-('Lm', 'R', 'N', 3074, 0),
-('Lo', 'AL', 'N', 2, 0),
-('Lo', 'AL', 'N', 3074, 0),
-('Lo', 'L', 'H', 3074, 0),
-('Lo', 'L', 'N', 2050, 0),
-('Lo', 'L', 'N', 3074, 0),
-('Lo', 'L', 'W', 2, 0),
-('Lo', 'L', 'W', 66, 0),
-('Lo', 'L', 'W', 3074, 0),
-('Lo', 'L', 'W', 3138, 0),
-('Lo', 'R', 'N', 3074, 0),
-('Lt', 'L', 'N', 3090, 0),
-('Lu', 'L', 'A', 3082, 0),
-('Lu', 'L', 'F', 3082, 0),
-('Lu', 'L', 'N', 3082, 0),
-('Lu', 'L', 'Na', 3082, 0),
-('Mc', 'L', 'N', 2048, 0),
-('Mc', 'L', 'N', 2048, 9),
-('Mc', 'L', 'N', 2048, 216),
-('Mc', 'L', 'N', 2048, 226),
-('Me', 'NSM', 'N', 0, 0),
-('Mn', 'L', 'N', 2048, 0),
-('Mn', 'NSM', 'A', 2048, 0),
-('Mn', 'NSM', 'A', 2048, 1),
-('Mn', 'NSM', 'A', 2048, 202),
-('Mn', 'NSM', 'A', 2048, 216),
-('Mn', 'NSM', 'A', 2048, 220),
-('Mn', 'NSM', 'A', 2048, 230),
-('Mn', 'NSM', 'A', 2048, 232),
-('Mn', 'NSM', 'A', 2048, 233),
-('Mn', 'NSM', 'A', 2048, 234),
-('Mn', 'NSM', 'A', 2048, 240),
-('Mn', 'NSM', 'N', 2048, 0),
-('Mn', 'NSM', 'N', 2048, 1),
-('Mn', 'NSM', 'N', 2048, 7),
-('Mn', 'NSM', 'N', 2048, 9),
-('Mn', 'NSM', 'N', 2048, 10),
-('Mn', 'NSM', 'N', 2048, 11),
-('Mn', 'NSM', 'N', 2048, 12),
-('Mn', 'NSM', 'N', 2048, 13),
-('Mn', 'NSM', 'N', 2048, 14),
-('Mn', 'NSM', 'N', 2048, 15),
-('Mn', 'NSM', 'N', 2048, 16),
-('Mn', 'NSM', 'N', 2048, 17),
-('Mn', 'NSM', 'N', 2048, 18),
-('Mn', 'NSM', 'N', 2048, 19),
-('Mn', 'NSM', 'N', 2048, 20),
-('Mn', 'NSM', 'N', 2048, 21),
-('Mn', 'NSM', 'N', 2048, 22),
-('Mn', 'NSM', 'N', 2048, 23),
-('Mn', 'NSM', 'N', 2048, 24),
-('Mn', 'NSM', 'N', 2048, 25),
-('Mn', 'NSM', 'N', 2048, 26),
-('Mn', 'NSM', 'N', 2048, 27),
-('Mn', 'NSM', 'N', 2048, 28),
-('Mn', 'NSM', 'N', 2048, 29),
-('Mn', 'NSM', 'N', 2048, 30),
-('Mn', 'NSM', 'N', 2048, 31),
-('Mn', 'NSM', 'N', 2048, 32),
-('Mn', 'NSM', 'N', 2048, 33),
-('Mn', 'NSM', 'N', 2048, 34),
-('Mn', 'NSM', 'N', 2048, 35),
-('Mn', 'NSM', 'N', 2048, 36),
-('Mn', 'NSM', 'N', 2048, 84),
-('Mn', 'NSM', 'N', 2048, 91),
-('Mn', 'NSM', 'N', 2048, 103),
-('Mn', 'NSM', 'N', 2048, 107),
-('Mn', 'NSM', 'N', 2048, 118),
-('Mn', 'NSM', 'N', 2048, 122),
-('Mn', 'NSM', 'N', 2048, 129),
-('Mn', 'NSM', 'N', 2048, 130),
-('Mn', 'NSM', 'N', 2048, 132),
-('Mn', 'NSM', 'N', 2048, 202),
-('Mn', 'NSM', 'N', 2048, 214),
-('Mn', 'NSM', 'N', 2048, 216),
-('Mn', 'NSM', 'N', 2048, 220),
-('Mn', 'NSM', 'N', 2048, 222),
-('Mn', 'NSM', 'N', 2048, 228),
-('Mn', 'NSM', 'N', 2048, 230),
-('Mn', 'NSM', 'N', 2048, 234),
-('Mn', 'NSM', 'W', 2048, 8),
-('Mn', 'NSM', 'W', 2048, 218),
-('Mn', 'NSM', 'W', 2048, 222),
-('Mn', 'NSM', 'W', 2048, 224),
-('Mn', 'NSM', 'W', 2048, 228),
-('Mn', 'NSM', 'W', 2048, 232),
-('Nd', 'AN', 'N', 2496, 0),
-('Nd', 'EN', 'F', 2496, 0),
-('Nd', 'EN', 'N', 2496, 0),
-('Nd', 'EN', 'Na', 2496, 0),
-('Nd', 'L', 'N', 2496, 0),
-('Nd', 'R', 'N', 2496, 0),
-('Nl', 'L', 'A', 3136, 0),
-('Nl', 'L', 'N', 3072, 0),
-('Nl', 'L', 'N', 3136, 0),
-('Nl', 'L', 'W', 3136, 0),
-('Nl', 'ON', 'N', 3136, 0),
-('No', 'AN', 'N', 64, 0),
-('No', 'AN', 'N', 192, 0),
-('No', 'EN', 'A', 64, 0),
-('No', 'EN', 'A', 192, 0),
-('No', 'EN', 'N', 192, 0),
-('No', 'L', 'N', 64, 0),
-('No', 'L', 'N', 2240, 0),
-('No', 'L', 'W', 64, 0),
-('No', 'ON', 'A', 64, 0),
-('No', 'ON', 'A', 192, 0),
-('No', 'ON', 'N', 64, 0),
-('No', 'ON', 'N', 192, 0),
-('No', 'ON', 'W', 64, 0),
-('No', 'R', 'N', 64, 0),
-('No', 'R', 'N', 192, 0),
-('Pc', 'ON', 'F', 2048, 0),
-('Pc', 'ON', 'N', 2048, 0),
-('Pc', 'ON', 'Na', 2048, 0),
-('Pc', 'ON', 'W', 2048, 0),
-('Pd', 'ES', 'F', 0, 0),
-('Pd', 'ES', 'Na', 0, 0),
-('Pd', 'ES', 'W', 0, 0),
-('Pd', 'ON', 'A', 0, 0),
-('Pd', 'ON', 'N', 0, 0),
-('Pd', 'ON', 'W', 0, 0),
-('Pd', 'R', 'N', 0, 0),
-('Pe', 'ON', 'F', 512, 0),
-('Pe', 'ON', 'H', 512, 0),
-('Pe', 'ON', 'N', 0, 0),
-('Pe', 'ON', 'N', 512, 0),
-('Pe', 'ON', 'Na', 512, 0),
-('Pe', 'ON', 'W', 0, 0),
-('Pe', 'ON', 'W', 512, 0),
-('Pf', 'ON', 'A', 0, 0),
-('Pf', 'ON', 'N', 512, 0),
-('Pi', 'ON', 'A', 0, 0),
-('Pi', 'ON', 'N', 0, 0),
-('Pi', 'ON', 'N', 512, 0),
-('Po', 'AL', 'N', 0, 0),
-('Po', 'AN', 'N', 0, 0),
-('Po', 'CS', 'F', 0, 0),
-('Po', 'CS', 'N', 0, 0),
-('Po', 'CS', 'Na', 0, 0),
-('Po', 'CS', 'W', 0, 0),
-('Po', 'ET', 'A', 0, 0),
-('Po', 'ET', 'F', 0, 0),
-('Po', 'ET', 'N', 0, 0),
-('Po', 'ET', 'Na', 0, 0),
-('Po', 'ET', 'W', 0, 0),
-('Po', 'L', 'N', 0, 0),
-('Po', 'ON', 'A', 0, 0),
-('Po', 'ON', 'A', 2048, 0),
-('Po', 'ON', 'F', 0, 0),
-('Po', 'ON', 'H', 0, 0),
-('Po', 'ON', 'N', 0, 0),
-('Po', 'ON', 'N', 2048, 0),
-('Po', 'ON', 'Na', 0, 0),
-('Po', 'ON', 'W', 0, 0),
-('Po', 'R', 'N', 0, 0),
-('Ps', 'ON', 'F', 512, 0),
-('Ps', 'ON', 'H', 512, 0),
-('Ps', 'ON', 'N', 0, 0),
-('Ps', 'ON', 'N', 512, 0),
-('Ps', 'ON', 'Na', 512, 0),
-('Ps', 'ON', 'W', 0, 0),
-('Ps', 'ON', 'W', 512, 0),
-('Sc', 'AL', 'N', 0, 0),
-('Sc', 'ET', 'A', 0, 0),
-('Sc', 'ET', 'F', 0, 0),
-('Sc', 'ET', 'H', 0, 0),
-('Sc', 'ET', 'N', 0, 0),
-('Sc', 'ET', 'Na', 0, 0),
-('Sc', 'ET', 'W', 0, 0),
-('Sk', 'L', 'N', 0, 0),
-('Sk', 'ON', 'A', 0, 0),
-('Sk', 'ON', 'F', 0, 0),
-('Sk', 'ON', 'N', 0, 0),
-('Sk', 'ON', 'Na', 0, 0),
-('Sk', 'ON', 'W', 0, 0),
-('Sm', 'AL', 'N', 0, 0),
-('Sm', 'CS', 'N', 0, 0),
-('Sm', 'ES', 'F', 0, 0),
-('Sm', 'ES', 'N', 0, 0),
-('Sm', 'ES', 'Na', 0, 0),
-('Sm', 'ES', 'W', 0, 0),
-('Sm', 'ET', 'A', 0, 0),
-('Sm', 'ET', 'N', 0, 0),
-('Sm', 'L', 'N', 0, 0),
-('Sm', 'ON', 'A', 0, 0),
-('Sm', 'ON', 'A', 512, 0),
-('Sm', 'ON', 'F', 0, 0),
-('Sm', 'ON', 'F', 512, 0),
-('Sm', 'ON', 'H', 0, 0),
-('Sm', 'ON', 'N', 0, 0),
-('Sm', 'ON', 'N', 512, 0),
-('Sm', 'ON', 'Na', 0, 0),
-('Sm', 'ON', 'Na', 512, 0),
-('Sm', 'ON', 'W', 0, 0),
-('Sm', 'ON', 'W', 512, 0),
-('So', 'AL', 'N', 0, 0),
-('So', 'ET', 'A', 0, 0),
-('So', 'ET', 'N', 0, 0),
-('So', 'ET', 'N', 3072, 0),
-('So', 'L', 'A', 0, 0),
-('So', 'L', 'N', 0, 0),
-('So', 'L', 'W', 0, 0),
-('So', 'ON', 'A', 0, 0),
-('So', 'ON', 'F', 0, 0),
-('So', 'ON', 'H', 0, 0),
-('So', 'ON', 'N', 0, 0),
-('So', 'ON', 'N', 3072, 0),
-('So', 'ON', 'Na', 0, 0),
-('So', 'ON', 'W', 0, 0),
+('Ll', 'L', 'A', 7202, 0),
+('Ll', 'L', 'F', 7202, 0),
+('Ll', 'L', 'N', 7202, 0),
+('Ll', 'L', 'Na', 7202, 0),
+('Lm', 'AL', 'N', 7170, 0),
+('Lm', 'L', 'A', 7170, 0),
+('Lm', 'L', 'H', 6146, 0),
+('Lm', 'L', 'H', 7170, 0),
+('Lm', 'L', 'N', 4098, 0),
+('Lm', 'L', 'N', 7170, 0),
+('Lm', 'L', 'W', 7170, 0),
+('Lm', 'ON', 'A', 7170, 0),
+('Lm', 'ON', 'N', 4098, 0),
+('Lm', 'ON', 'N', 7170, 0),
+('Lm', 'R', 'N', 7170, 0),
+('Lo', 'AL', 'N', 4098, 0),
+('Lo', 'AL', 'N', 7170, 0),
+('Lo', 'L', 'H', 7170, 0),
+('Lo', 'L', 'N', 6146, 0),
+('Lo', 'L', 'N', 7170, 0),
+('Lo', 'L', 'W', 4098, 0),
+('Lo', 'L', 'W', 4162, 0),
+('Lo', 'L', 'W', 7170, 0),
+('Lo', 'L', 'W', 7234, 0),
+('Lo', 'R', 'N', 7170, 0),
+('Lt', 'L', 'N', 7186, 0),
+('Lu', 'L', 'A', 7178, 0),
+('Lu', 'L', 'F', 7178, 0),
+('Lu', 'L', 'N', 7178, 0),
+('Lu', 'L', 'Na', 7178, 0),
+('Mc', 'L', 'N', 6144, 0),
+('Mc', 'L', 'N', 6144, 9),
+('Mc', 'L', 'N', 6144, 216),
+('Mc', 'L', 'N', 6144, 226),
+('Me', 'NSM', 'N', 4096, 0),
+('Mn', 'L', 'N', 6144, 0),
+('Mn', 'NSM', 'A', 6144, 0),
+('Mn', 'NSM', 'A', 6144, 1),
+('Mn', 'NSM', 'A', 6144, 202),
+('Mn', 'NSM', 'A', 6144, 216),
+('Mn', 'NSM', 'A', 6144, 220),
+('Mn', 'NSM', 'A', 6144, 230),
+('Mn', 'NSM', 'A', 6144, 232),
+('Mn', 'NSM', 'A', 6144, 233),
+('Mn', 'NSM', 'A', 6144, 234),
+('Mn', 'NSM', 'A', 6144, 240),
+('Mn', 'NSM', 'N', 6144, 0),
+('Mn', 'NSM', 'N', 6144, 1),
+('Mn', 'NSM', 'N', 6144, 7),
+('Mn', 'NSM', 'N', 6144, 9),
+('Mn', 'NSM', 'N', 6144, 10),
+('Mn', 'NSM', 'N', 6144, 11),
+('Mn', 'NSM', 'N', 6144, 12),
+('Mn', 'NSM', 'N', 6144, 13),
+('Mn', 'NSM', 'N', 6144, 14),
+('Mn', 'NSM', 'N', 6144, 15),
+('Mn', 'NSM', 'N', 6144, 16),
+('Mn', 'NSM', 'N', 6144, 17),
+('Mn', 'NSM', 'N', 6144, 18),
+('Mn', 'NSM', 'N', 6144, 19),
+('Mn', 'NSM', 'N', 6144, 20),
+('Mn', 'NSM', 'N', 6144, 21),
+('Mn', 'NSM', 'N', 6144, 22),
+('Mn', 'NSM', 'N', 6144, 23),
+('Mn', 'NSM', 'N', 6144, 24),
+('Mn', 'NSM', 'N', 6144, 25),
+('Mn', 'NSM', 'N', 6144, 26),
+('Mn', 'NSM', 'N', 6144, 27),
+('Mn', 'NSM', 'N', 6144, 28),
+('Mn', 'NSM', 'N', 6144, 29),
+('Mn', 'NSM', 'N', 6144, 30),
+('Mn', 'NSM', 'N', 6144, 31),
+('Mn', 'NSM', 'N', 6144, 32),
+('Mn', 'NSM', 'N', 6144, 33),
+('Mn', 'NSM', 'N', 6144, 34),
+('Mn', 'NSM', 'N', 6144, 35),
+('Mn', 'NSM', 'N', 6144, 36),
+('Mn', 'NSM', 'N', 6144, 84),
+('Mn', 'NSM', 'N', 6144, 91),
+('Mn', 'NSM', 'N', 6144, 103),
+('Mn', 'NSM', 'N', 6144, 107),
+('Mn', 'NSM', 'N', 6144, 118),
+('Mn', 'NSM', 'N', 6144, 122),
+('Mn', 'NSM', 'N', 6144, 129),
+('Mn', 'NSM', 'N', 6144, 130),
+('Mn', 'NSM', 'N', 6144, 132),
+('Mn', 'NSM', 'N', 6144, 202),
+('Mn', 'NSM', 'N', 6144, 214),
+('Mn', 'NSM', 'N', 6144, 216),
+('Mn', 'NSM', 'N', 6144, 220),
+('Mn', 'NSM', 'N', 6144, 222),
+('Mn', 'NSM', 'N', 6144, 228),
+('Mn', 'NSM', 'N', 6144, 230),
+('Mn', 'NSM', 'N', 6144, 234),
+('Mn', 'NSM', 'W', 6144, 8),
+('Mn', 'NSM', 'W', 6144, 218),
+('Mn', 'NSM', 'W', 6144, 222),
+('Mn', 'NSM', 'W', 6144, 224),
+('Mn', 'NSM', 'W', 6144, 228),
+('Mn', 'NSM', 'W', 6144, 232),
+('Nd', 'AN', 'N', 6592, 0),
+('Nd', 'EN', 'F', 6592, 0),
+('Nd', 'EN', 'N', 6592, 0),
+('Nd', 'EN', 'Na', 6592, 0),
+('Nd', 'L', 'N', 6592, 0),
+('Nd', 'R', 'N', 6592, 0),
+('Nl', 'L', 'A', 7232, 0),
+('Nl', 'L', 'N', 7168, 0),
+('Nl', 'L', 'N', 7232, 0),
+('Nl', 'L', 'W', 7232, 0),
+('Nl', 'ON', 'N', 7232, 0),
+('No', 'AN', 'N', 4160, 0),
+('No', 'AN', 'N', 4288, 0),
+('No', 'EN', 'A', 4160, 0),
+('No', 'EN', 'A', 4288, 0),
+('No', 'EN', 'N', 4288, 0),
+('No', 'L', 'N', 4160, 0),
+('No', 'L', 'N', 6336, 0),
+('No', 'L', 'W', 4160, 0),
+('No', 'ON', 'A', 4160, 0),
+('No', 'ON', 'A', 4288, 0),
+('No', 'ON', 'N', 4160, 0),
+('No', 'ON', 'N', 4288, 0),
+('No', 'ON', 'W', 4160, 0),
+('No', 'R', 'N', 4160, 0),
+('No', 'R', 'N', 4288, 0),
+('Pc', 'ON', 'F', 6144, 0),
+('Pc', 'ON', 'N', 6144, 0),
+('Pc', 'ON', 'Na', 6144, 0),
+('Pc', 'ON', 'W', 6144, 0),
+('Pd', 'ES', 'F', 4096, 0),
+('Pd', 'ES', 'Na', 4096, 0),
+('Pd', 'ES', 'W', 4096, 0),
+('Pd', 'ON', 'A', 4096, 0),
+('Pd', 'ON', 'N', 4096, 0),
+('Pd', 'ON', 'W', 4096, 0),
+('Pd', 'R', 'N', 4096, 0),
+('Pe', 'ON', 'F', 4608, 0),
+('Pe', 'ON', 'H', 4608, 0),
+('Pe', 'ON', 'N', 4096, 0),
+('Pe', 'ON', 'N', 4608, 0),
+('Pe', 'ON', 'Na', 4608, 0),
+('Pe', 'ON', 'W', 4096, 0),
+('Pe', 'ON', 'W', 4608, 0),
+('Pf', 'ON', 'A', 4096, 0),
+('Pf', 'ON', 'N', 4608, 0),
+('Pi', 'ON', 'A', 4096, 0),
+('Pi', 'ON', 'N', 4096, 0),
+('Pi', 'ON', 'N', 4608, 0),
+('Po', 'AL', 'N', 4096, 0),
+('Po', 'AN', 'N', 4096, 0),
+('Po', 'CS', 'F', 4096, 0),
+('Po', 'CS', 'N', 4096, 0),
+('Po', 'CS', 'Na', 4096, 0),
+('Po', 'CS', 'W', 4096, 0),
+('Po', 'ET', 'A', 4096, 0),
+('Po', 'ET', 'F', 4096, 0),
+('Po', 'ET', 'N', 4096, 0),
+('Po', 'ET', 'Na', 4096, 0),
+('Po', 'ET', 'W', 4096, 0),
+('Po', 'L', 'N', 4096, 0),
+('Po', 'ON', 'A', 4096, 0),
+('Po', 'ON', 'A', 6144, 0),
+('Po', 'ON', 'F', 4096, 0),
+('Po', 'ON', 'H', 4096, 0),
+('Po', 'ON', 'N', 4096, 0),
+('Po', 'ON', 'N', 6144, 0),
+('Po', 'ON', 'Na', 4096, 0),
+('Po', 'ON', 'W', 4096, 0),
+('Po', 'R', 'N', 4096, 0),
+('Ps', 'ON', 'F', 4608, 0),
+('Ps', 'ON', 'H', 4608, 0),
+('Ps', 'ON', 'N', 4096, 0),
+('Ps', 'ON', 'N', 4608, 0),
+('Ps', 'ON', 'Na', 4608, 0),
+('Ps', 'ON', 'W', 4096, 0),
+('Ps', 'ON', 'W', 4608, 0),
+('Sc', 'AL', 'N', 4096, 0),
+('Sc', 'ET', 'A', 4096, 0),
+('Sc', 'ET', 'F', 4096, 0),
+('Sc', 'ET', 'H', 4096, 0),
+('Sc', 'ET', 'N', 4096, 0),
+('Sc', 'ET', 'Na', 4096, 0),
+('Sc', 'ET', 'W', 4096, 0),
+('Sk', 'L', 'N', 4096, 0),
+('Sk', 'ON', 'A', 4096, 0),
+('Sk', 'ON', 'F', 4096, 0),
+('Sk', 'ON', 'N', 4096, 0),
+('Sk', 'ON', 'Na', 4096, 0),
+('Sk', 'ON', 'W', 4096, 0),
+('Sm', 'AL', 'N', 4096, 0),
+('Sm', 'CS', 'N', 4096, 0),
+('Sm', 'ES', 'F', 4096, 0),
+('Sm', 'ES', 'N', 4096, 0),
+('Sm', 'ES', 'Na', 4096, 0),
+('Sm', 'ES', 'W', 4096, 0),
+('Sm', 'ET', 'A', 4096, 0),
+('Sm', 'ET', 'N', 4096, 0),
+('Sm', 'L', 'N', 4096, 0),
+('Sm', 'ON', 'A', 4096, 0),
+('Sm', 'ON', 'A', 4608, 0),
+('Sm', 'ON', 'F', 4096, 0),
+('Sm', 'ON', 'F', 4608, 0),
+('Sm', 'ON', 'H', 4096, 0),
+('Sm', 'ON', 'N', 4096, 0),
+('Sm', 'ON', 'N', 4608, 0),
+('Sm', 'ON', 'Na', 4096, 0),
+('Sm', 'ON', 'Na', 4608, 0),
+('Sm', 'ON', 'W', 4096, 0),
+('Sm', 'ON', 'W', 4608, 0),
+('So', 'AL', 'N', 4096, 0),
+('So', 'ET', 'A', 4096, 0),
+('So', 'ET', 'N', 4096, 0),
+('So', 'ET', 'N', 7168, 0),
+('So', 'L', 'A', 4096, 0),
+('So', 'L', 'N', 4096, 0),
+('So', 'L', 'W', 4096, 0),
+('So', 'ON', 'A', 4096, 0),
+('So', 'ON', 'F', 4096, 0),
+('So', 'ON', 'H', 4096, 0),
+('So', 'ON', 'N', 4096, 0),
+('So', 'ON', 'N', 7168, 0),
+('So', 'ON', 'Na', 4096, 0),
+('So', 'ON', 'W', 4096, 0),
('Zl', 'WS', 'N', 5, 0),
('Zp', 'B', 'N', 5, 0),
('Zs', 'CS', 'N', 1, 0),
('Zs', 'WS', 'F', 1, 0),
('Zs', 'WS', 'N', 1, 0),
-('Zs', 'WS', 'Na', 1, 0),
+('Zs', 'WS', 'Na', 4097, 0),
]
_db_pgtbl = (
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123455565575555'
@@ -135417,6 +135417,7 @@
def iscased(code): return _get_record(code)[3] & 56 != 0
def isxidstart(code): return _get_record(code)[3] & 1024 != 0
def isxidcontinue(code): return _get_record(code)[3] & 2048 != 0
+def isprintable(code): return _get_record(code)[3] & 4096 != 0
def mirrored(code): return _get_record(code)[3] & 512 != 0
def combining(code): return _get_record(code)[4]
_decimal = {
More information about the pypy-commit
mailing list