<p dir="ltr">Just to clarify a couple of things...<br></p>
<p dir="ltr">On 19 May 2016 17:51, "Phil Thompson" <<a href="mailto:phil@riverbankcomputing.com">phil@riverbankcomputing.com</a>> wrote:<br>
><br>
> On 19 May 2016, at 5:24 pm, Stephen Kelly <<a href="mailto:steveire@gmail.com">steveire@gmail.com</a>> wrote:<br>
> ><br>
> > On Thu, May 19, 2016 at 5:47 PM, Phil Thompson<br>
> > <<a href="mailto:phil@riverbankcomputing.com">phil@riverbankcomputing.com</a>> wrote:<br>
> >> On 18 May 2016, at 10:50 pm, Stephen Kelly <<a href="mailto:steveire@gmail.com">steveire@gmail.com</a>> wrote:<br>
> >>><br>
> >>><br>
> >>> In case you missed it, myself and Shaheed have been making progress on<br>
> >>> generating bindings for KDE Frameworks 5 using clang:<br>
> >>><br>
> >>> <a href="https://steveire.wordpress.com/2016/05/18/generating-python-bindings-with-clang/">https://steveire.wordpress.com/2016/05/18/generating-python-bindings-with-clang/</a><br>
> >><br>
> >> In case you weren't aware PyQt .sip files are also derived from Clang (specifically CastXML).<br>
> ><br>
> > Oh, I didn't know that. Is the tool you use FOSS/usable for KDE etc?<br>
><br>
> <a href="https://www.riverbankcomputing.com/hg/metasip/">https://www.riverbankcomputing.com/hg/metasip/</a><br>
><br>
> I describe MetaSIP as a personal productivity tool and a work in progress. Unsurprisingly it fits the way I work - it may not fit how anybody else works.<br>
><br>
> From what I understand you want to be able to generate bindings automatically from the C++ .h files.</p>
<p dir="ltr">Yes and no. The idea is to use Clang to do the grunt work much as it sounds like you are doing but then automate the post processing by:</p>
<p dir="ltr">1. Using a simple rule engine to fix some code directly. The rule part is used to identify applicable places in the code and then 2 or 3 lines of python code is often enough to do the edit (or discard).</p>
<p dir="ltr">2. Using the rule engine to insert manual code fragments at the Method, Type and Module levels. This manual code can be stored text or function generated. The function driven part lends itself to avoiding duplication of text.</p>
<p dir="ltr">3. Extending the function part of 2 to do automatic generation of %MappedType logic for commonly templated cases such as QList and QMap etc.</p>
<p dir="ltr">Seen that way it is more about easing the maintenance of the binding than anything else.</p>
<p dir="ltr">Thanks, Shaheed<br><br></p>
<p dir="ltr">I have never tried to be that ambitious. MetaSIP is a GUI tool that provides a lot of automated assistance to what is basically a manual process. Personally I think the only way to ensure quality in bindings (both in terms of Pythonic behaviour and bugs) is to check each argument of each function call. The key to it being manageable is to make sure you do that check once and once only.<br>
><br>
> Phil<br>
> _______________________________________________<br>
> PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a><br>
> <a href="https://www.riverbankcomputing.com/mailman/listinfo/pyqt">https://www.riverbankcomputing.com/mailman/listinfo/pyqt</a></p>