Skip to content

Commit 009583f

Browse files
[3.13] gh-84424: Use numeric_changed for UCD.numeric (GH-19457) (GH-144732)
This was causing ucd_3_2_0.numeric() to pick up only decimal changes between Unicode 3.2.0 and the current version. (cherry picked from commit 3e0322f) Co-authored-by: William Meehan <wmeehan@fb.com>
1 parent 9a57c93 commit 009583f

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

Lib/test/test_unicodedata.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,14 @@ def test_numeric(self):
170170

171171
# New in 4.1.0
172172
self.assertEqual(self.db.numeric('\U0001012A', None), None if self.old else 9000)
173+
# Changed in 4.1.0
174+
self.assertEqual(self.db.numeric('\u5793', None), 1e20 if self.old else None)
173175
# New in 5.0.0
174176
self.assertEqual(self.db.numeric('\u07c0', None), None if self.old else 0.0)
175177
# New in 5.1.0
176178
self.assertEqual(self.db.numeric('\ua627', None), None if self.old else 7.0)
179+
# Changed in 5.2.0
180+
self.assertEqual(self.db.numeric('\u09f6'), 3.0 if self.old else 3/16)
177181
# New in 6.0.0
178182
self.assertEqual(self.db.numeric('\u0b72', None), None if self.old else 0.25)
179183
# New in 12.0.0
@@ -569,9 +573,9 @@ def test_east_asian_width_unassigned(self):
569573
class Unicode_3_2_0_FunctionsTest(UnicodeFunctionsTest):
570574
db = unicodedata.ucd_3_2_0
571575
old = True
572-
expectedchecksum = ('76b126d719d52ba11788a627d058163106da7d56'
576+
expectedchecksum = ('4154d8d1232837e255edf3cdcbb5ab184d71f4a4'
573577
if quicktest else
574-
'871389bdd96a709929496da7f9e59718daf61adb')
578+
'b678d38ffbf1f1de092b2af1ed155602909fcd8d')
575579

576580

577581
class UnicodeMiscTest(unittest.TestCase):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix :meth:`!unicodedata.ucd_3_2_0.numeric` for non-decimal values.

Modules/unicodedata.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,9 @@ unicodedata_UCD_numeric_impl(PyObject *self, int chr,
228228
have_old = 1;
229229
rc = -1.0;
230230
}
231-
else if (old->decimal_changed != 0xFF) {
231+
else if (old->numeric_changed != 0.0) {
232232
have_old = 1;
233-
rc = old->decimal_changed;
233+
rc = old->numeric_changed;
234234
}
235235
}
236236

0 commit comments

Comments
 (0)