[PyQt] If directive for declaring a function for different SIP versions

Phil Thompson phil at riverbankcomputing.com
Wed Jun 26 22:27:31 BST 2013


On Wed, 26 Jun 2013 16:16:41 -0400, Forest Yang <yzine0511 at gmail.com>
wrote:
> Hi,
> 
>  I have one function to wrap, and want it to work with both sip 4.10 and
> 4.13,
> There is a KeywordArgs on it. It seems from 4.10 to 4.13 there are some
> changes
> from /KeywordArgs/ to /KeywordArgs="Optional"/.

But the old form should still work - it was deprecated, not removed.

> I hope I can use %if, like the following:
> 
> %if (- SIP_4_13)
> void foo(...) /KeywordArgs/;
> %End
> %if (SIP_4_13_2 -)
> void foo(..) /KeywordArgs="Optional"/;
> %End
> %MethodCode
> .....
> %End.
> 
> 
> But sip complains about the syntax error at line "%MethodCode". I am
using
> sip_4_13_2.

You have to duplicate the %MethodCode in each of the %If blocks.

Phil


More information about the PyQt mailing list