| /* | |
| Testcase to test %pythonprepend and %pythonappend %pythoncode %pythonbegin | |
| */ | |
| %module python_append | |
| %pythoncode %{ | |
| mypath = os.path.dirname("/a/b/c/d.txt") | |
| funcpath = None | |
| staticfuncpath = None | |
| def grabpath(): | |
| return funcpath | |
| def grabstaticpath(): | |
| return staticfuncpath | |
| def clearstaticpath(): | |
| global staticfuncpath | |
| staticfuncpath = None | |
| %} | |
| %pythonappend Test::funk %{ | |
| funcpath = os.path.dirname(funcpath) | |
| %} | |
| %pythonprepend Test::funk %{ | |
| global funcpath | |
| funcpath = mypath | |
| %} | |
| %pythonappend Test::static_func %{ | |
| staticfuncpath = os.path.basename(staticfuncpath) | |
| pass | |
| %} | |
| %pythonprepend Test::static_func { | |
| global staticfuncpath | |
| staticfuncpath = mypath | |
| pass | |
| } | |
| %pythonbegin %{ | |
| import os.path | |
| %} | |
| %inline %{ | |
| class Test { | |
| public: | |
| static void static_func() {} | |
| void funk() {} | |
| }; | |
| %} | |
| // Github issue #1674 | |
| %extend ForSlots { | |
| %pythoncode %{ | |
| __slots__ = ["this"] | |
| %} | |
| } | |
| // While __slots__ does not contain 'ValidVariable' in the list, it is still possible | |
| // to set 'ValidVariable'. A little odd, but the whole attribute setting is bypassed | |
| // for setting C/C++ member variables. | |
| // Not sure how to test the equivalent for -builtin. | |
| %inline %{ | |
| struct ForSlots { | |
| int ValidVariable; | |
| ForSlots() : ValidVariable(99) {} | |
| }; | |
| %} | |
| %inline %{ | |
| #ifdef SWIGPYTHON_BUILTIN | |
| bool is_python_builtin() { return true; } | |
| #else | |
| bool is_python_builtin() { return false; } | |
| #endif | |
| %} | |