From 4ee40af86e483ca67f8536e5fc27f7aaf5641ead Mon Sep 17 00:00:00 2001 From: mihostet <michi.hostettler@cern.ch> Date: Mon, 5 Dec 2022 20:01:26 +0100 Subject: [PATCH] expose implicit conversion from bytes/bytearray to byte[] --- stubgenj/_stubgenj.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/stubgenj/_stubgenj.py b/stubgenj/_stubgenj.py index e23e0d3..b55a134 100644 --- a/stubgenj/_stubgenj.py +++ b/stubgenj/_stubgenj.py @@ -697,7 +697,13 @@ def pythonType(javaType: Any, typeVars: Optional[List[TypeVarStr]] = None, isArg # Java arrays returned by JPype are of type "JArray", but JArray is not generic. To conserve the type information # of the elements, we map them to typing.List for the time being. elif isinstance(javaType, GenericArrayType) or javaType.isArray(): - return TypeStr('typing.List', [pythonType(javaArrayComponentType(javaType), typeVars)]) + elementType = javaArrayComponentType(javaType) + listType = TypeStr('typing.List', [pythonType(elementType, typeVars)]) + if isArgument and str(elementType) == 'byte': + # hack: JPype supports converting bytes/bytearray to byte[] but this is not advertised in hints... + return TypeStr('typing.Union', [listType, TypeStr('bytes'), TypeStr('bytearray')]) + else: + return listType else: return translateTypeName(str(javaType.getName()), implicitConversions=isArgument) -- GitLab