Topazdocs
Интеграция

Бэкенд Python

Возможности создаваемого кода Python, его сборка и граница со средой выполнения.

Python — создаваемая цель поставки, а не встроенный синтаксис и не вторая модель выполнения Topaz. Сначала средство проверки разбирает и проверяет всю программу Topaz; затем бэкенд записывает код Python и поставляемый вспомогательный модуль для выполнения принятой программы.

Контракт и компоненты

Сборка пакета создаёт program.py и topaz_py_rt.py. Для запуска нужен Python 3.11 или новее, но не требуются компилятор Topaz или исходный пакет. Права пакета на работу с файловой системой, аргументы, стандартные потоки ввода, вывода и ошибок, а также код завершения остаются явными границами созданного продукта.

Рабочий процесс

Храните прикладную логику и публичный API модулей в проверяемом Topaz. Сначала запустите эталонное выполнение и тесты пакета, затем соберите цель Python и проверьте созданный продукт с теми же входными данными и наблюдаемыми результатами. Поставляйте оба файла вместе; внешний запускатель или сервис Python считается отдельным кодом среды выполнения.

topaz check --root . --locked
topaz test --root . --locked
topaz build --target python --root . --locked --out-dir python-out
python3 python-out/program.py

Границы и ограничения

Импорты, декораторы, исключения, генераторы, аннотации и API пакетов Python не являются синтаксисом Topaz. Созданный исходный код — артефакт поставки, а не стабильная точка ручного расширения. Компилятор отклоняет форму, если выбранный бэкенд не может сохранить её проверенное поведение. Успешная генерация не открывает произвольные библиотеки или исключения Python для файлов .tpz.

Связанные разделы