/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/python_annotations_variable_c.i
48 строк
1 KB
Nerixyz
Python: Annotate types of constants
26 мар 2026, 21:57
26 мар 2026, 21:57
13fb1c1
Код
Авторство
О чём код?
%module python_annotations_variable_c // Tests Python variable annotations, containing C/C++ types, in C++ member variables wrappers. // Member variables are wrapped using Python properties. // This is in a separate test to python_annotations_c.i (which tests function annotations) so that runtime testing // of variable annotations can be done which requires Python 3.6 and later. A syntax error occurs in earlier // versions of Python when importing code containing variable annotations. %feature("python:annotations", "c"); %feature("python:annotations:novar") member_variable_not_annotated; %feature("python:annotations:novar") A_CONSTANT_NOVAR; %inline %{ namespace Space { template<class T> struct Template { int member_variable; int member_variable_not_annotated; }; struct StructWithVar{ int member_variable; }; struct StructWithVarNotAnnotated { int member_variable_not_annotated; }; short global_variable; } %} %template(TemplateShort) Space::Template<short>; %inline %{ #ifdef SWIGPYTHON_BUILTIN int is_python_builtin() { return 1; } #else int is_python_builtin() { return 0; } #endif #if defined SWIGPYTHON_FASTPROXY int is_python_fastproxy() { return 1; } #else int is_python_fastproxy() { return 0; } #endif %} %constant int A_CONSTANT_INT = 42; %constant int A_CONSTANT_NOVAR = 42; %constant short A_CONSTANT_SHORT = 42;