From fc15ac737fe198a0f815afd527648aed7055b9ac Mon Sep 17 00:00:00 2001 From: vbaggiol <vbaggiol@cern.ch> Date: Mon, 5 Dec 2022 17:37:58 +0100 Subject: [PATCH] generate stubs for java methods that are reserved python keywords --- stubgenj/_stubgenj.py | 2 +- .../test-data/unit/mangled_python_keywords.test | 15 +++++++++++++++ stubgenj/tests/test_stubtest.py | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test diff --git a/stubgenj/_stubgenj.py b/stubgenj/_stubgenj.py index dde8912..e23e0d3 100644 --- a/stubgenj/_stubgenj.py +++ b/stubgenj/_stubgenj.py @@ -1129,7 +1129,7 @@ def generateJavaClassStub(package: jpype.JPackage, jOverloads = jClass.class_.getMethods() for attr, value in items: if isinstance(value, jpype.JMethod): - matchingOverloads = [o for o in jOverloads if str(o.getName()) == attr and not o.isSynthetic()] + matchingOverloads = [o for o in jOverloads if pysafe(str(o.getName())) == attr and not o.isSynthetic()] generateJavaMethodStub(packageName, attr, matchingOverloads, javadoc.methods, classesDone=classesDone, classesUsed=classesUsed, classTypeVars=usableTypeVars, output=methodsOutput, importsOutput=importsOutput) diff --git a/stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test b/stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test new file mode 100644 index 0000000..1f33c74 --- /dev/null +++ b/stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test @@ -0,0 +1,15 @@ +[case testBitArrayStubIsValid] +from java.util import BitSet + +[case testMangledMethodsAreGenerated] +from java.util import BitSet +BitSet(1).and_(BitSet(2)) +BitSet(1).or_(BitSet(2)) + +[case testNoUnmangledMethodsAreGenerated_and] +from java.util import BitSet +BitSet(1).and(BitSet(2)) # E: invalid syntax + +[case testNoUnmangledMethodsAreGenerated_or] +BitSet(1).or(BitSet(2)) # E: invalid syntax + diff --git a/stubgenj/tests/test_stubtest.py b/stubgenj/tests/test_stubtest.py index bcd5ac9..420cde0 100644 --- a/stubgenj/tests/test_stubtest.py +++ b/stubgenj/tests/test_stubtest.py @@ -58,5 +58,6 @@ class StubTestSuite(mypy.test.testcheck.TypeCheckSuite): 'forward_declaration.test', 'hashmap.test', 'jpype_jpackage.test', + 'mangled_python_keywords.test', 'varargs.test', ] -- GitLab