[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