Skip to content

Commit 4387eb4

Browse files
committed
Intrinsify unicodedata.category
1 parent 96cf20f commit 4387eb4

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_unicode.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_isnumeric
6969
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_isprintable
7070
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_isspace
71+
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_isspace_invariant
7172
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_issue18183
7273
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_issue28598_strsubclass_rhs
7374
*graalpython.lib-python.3.test.test_unicode.UnicodeTest.test_issue8271

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/UnicodeDataModuleBuiltins.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,21 @@ protected ArgumentClinicProvider getArgumentClinic() {
280280
return UnicodeDataModuleBuiltinsClinicProviders.BidirectionalNodeClinicProviderGen.INSTANCE;
281281
}
282282
}
283+
284+
// unicodedata.category(char)
285+
@Builtin(name = "category", minNumOfPositionalArgs = 1, numOfPositionalOnlyArgs = 1, parameterNames = {"chr"})
286+
@ArgumentClinic(name = "chr", conversion = ArgumentClinic.ClinicConversion.CodePoint, defaultValue = "-1")
287+
@GenerateNodeFactory
288+
public abstract static class CategoryNode extends PythonUnaryClinicBuiltinNode {
289+
@Specialization
290+
@TruffleBoundary
291+
static String category(int chr) {
292+
return UCharacter.getPropertyValueName(UProperty.GENERAL_CATEGORY, UCharacter.getType(chr), UProperty.NameChoice.SHORT);
293+
}
294+
295+
@Override
296+
protected ArgumentClinicProvider getArgumentClinic() {
297+
return UnicodeDataModuleBuiltinsClinicProviders.CategoryNodeClinicProviderGen.INSTANCE;
298+
}
299+
}
283300
}

graalpython/lib-graalpython/unicodedata.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,3 @@ def __get_c_unicodedata():
5757
@__graalpython__.builtin
5858
def lookup(name):
5959
return __get_c_unicodedata().lookup(name)
60-
61-
62-
@__graalpython__.builtin
63-
def category(char):
64-
return __get_c_unicodedata().category(char)

0 commit comments

Comments
 (0)