shiboken6-genpyi with C++ class mapped to primitive type (dict)
Unsolved
Qt for Python
-
Running shiboken6-genpyi against a Shiboken generated module wrapping a C++ library fails as follows:
[giacomo@taeyang site-packages]$ shiboken6-genpyi PyCumbia.so shibokensupport/signature/parser.py:271: RuntimeWarning: pyside_type_init:_resolve_value UNRECOGNIZED: 'CuData' OFFENDING LINE: 'PyCumbia.CuActivity(self,token:CuData)' shibokensupport/signature/parser.py:271: RuntimeWarning: pyside_type_init:_resolve_value UNRECOGNIZED: 'CuData' OFFENDING LINE: 'PyCumbia.CuActivity.getToken(self)->CuData' shibokensupport/signature/parser.py:271: RuntimeWarning: pyside_type_init:_resolve_value UNRECOGNIZED: 'CuData' OFFENDING LINE: 'PyCumbia.CuActivity.matches(self,token:CuData)->bool' shibokensupport/signature/parser.py:271: RuntimeWarning: pyside_type_init:_resolve_value UNRECOGNIZED: 'CuData' OFFENDING LINE: 'PyCumbia.CuActivity.publishProgress(self,step:int,total:int,data:CuData)' shibokensupport/signature/parser.py:271: RuntimeWarning: pyside_type_init:_resolve_value UNRECOGNIZED: 'CuData' OFFENDING LINE: '2:PyCumbia.CuActivity.publishResult(self,data:CuData)' shibokensupport/signature/parser.py:271: RuntimeWarning: pyside_type_init:_resolve_value UNRECOGNIZED: 'CuData' OFFENDING LINE: '0:PyCumbia.CuActivity.publishResult(self,datalist:std.vector[CuData])' shibokensupport/signature/parser.py:386: RuntimeWarning: pyside_type_init:_resolve_type UNRECOGNIZED: 'typing.List[CuData]' OFFENDING LINE: '0:PyCumbia.CuActivity.publishResult(self,datalist:std.vector[CuData])' Traceback (most recent call last): File "shibokensupport/signature/loader.py", line 40, in create_signature File "shibokensupport/signature/layout.py", line 394, in create_signature File "shibokensupport/signature/layout.py", line 287, in create_signature_union File "shibokensupport/signature/layout.py", line 212, in sort_by_inheritance File "shibokensupport/signature/layout.py", line 194, in get_ordering_key AttributeError: 'str' object has no attribute 'mro' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "<string>", line 1, in <module> import shiboken6;from shibokensupport.signature.lib.pyi_generator import main;main() ~~~~^^ File "shibokensupport/signature/lib/pyi_generator.py", line 395, in main File "shibokensupport/signature/lib/pyi_generator.py", line 318, in generate_pyi File "shibokensupport/signature/lib/enum_sig.py", line 119, in module File "shibokensupport/signature/lib/enum_sig.py", line 216, in klass File "shibokensupport/signature/lib/enum_sig.py", line 216, in <genexpr> SystemError: <built-in function get_signature> returned a result with an exception set
CuData has been mapped into a Python dict
<primitive-type name="CuData" target-lang-api-name="PyDict"> <include file-name="cudata.h" location="global"/> <conversion-rule> <native-to-target file="glue/cumbia.cpp" snippet="return-cudata"/> <target-to-native> <add-conversion type="PyDict" check="PyDict_CheckExact(%in)" file="glue/cumbia.cpp" snippet="cudata-conversion-pydict"/> </target-to-native> </conversion-rule> </primitive-type>
I don't know how to deal with this so that genpyi understands that CuData is python dict.
Thanks for any suggestion
-
OK. it seems that I found the modify-argument "pyi-type" is working.
With regards -
Hi,
Glad you found out and thanks for sharing !
Would you mind posting the fixed version ? That might be useful to someone in the future.
1/3