/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/python/python_annotations_c_runme.py
35 строк
1 KB
William S Fulton
[Python] Check annotations in .pyi stubs with -builtin and -fastproxy
05 авг 2026, 01:41
05 авг 2026, 01:41
7a137da
Код
Авторство
О чём код?
from swig_test_utils import swig_annotations_in_stub, swig_get_annotations from python_annotations_c import * # Annotations are only added to the runtime objects for the default proxy classes, # but with -pyi they are always available in the generated .pyi stub file annotations_supported = swig_annotations_in_stub() or not(is_python_builtin() or is_python_fastproxy()) def get_annotations(obj): return swig_get_annotations(obj, "python_annotations_c", is_python_fastproxy()) if annotations_supported: anno = get_annotations(MakeShort) if anno != {'x': 'int', 'return': 'Space::Template< short >'}: raise RuntimeError("annotations mismatch: {}".format(anno)) anno = get_annotations(global_ints) if anno != {'ri': 'int &', 't': 'TemplateShort', 'return': 'int *'}: raise RuntimeError("annotations mismatch: {}".format(anno)) ts = MakeShort(10) anno = get_annotations(MakeShort) if anno != {'x': 'int', 'return': 'Space::Template< short >'}: raise RuntimeError("annotations mismatch: {}".format(anno)) anno = get_annotations(ts.mymethod) if anno != {'arg2': 'int', 'tt': 'TemplateShort', 'return': 'void'}: raise RuntimeError("annotations mismatch: {}".format(anno)) # No annotations anno = get_annotations(no_annotations) if anno != {}: raise RuntimeError("annotations mismatch: {}".format(anno))