Projekt pakub uut inline-integratsiooni meetodit C-keeles kirjutatud koodi Python-skriptidesse. C-keeles kirjutatud funktsioonid määratakse otse samas failis Python-koodiga, kasutades dekoratoori «@inlinec». Kokkuvõttes skripti täidab Python interpreter 'spython' ja analüüsib seda Pythonis pakutava mehhanismi abil. , mis võimaldab lisada parseri skripti muutmiseks enne selle tõlgendamist interpreteeritud (tavaliselt kasutatakse moodulit codecs tekstide sujuvaks dekodeerimiseks, kuid see võimaldab ka igasugust sisu transformeerimist skriptis).
Parser lisatakse moodulina («from inlinec import inlinec»), mis teostab esmase töötlemise ja reaalajas tõlgib @inlinec annotatsioonide abil eristatud C-funktsioonide määratlused ctypes-katteks ning asendab C-funktsiooni sisu nende katete väljakutsumisega. Pärast seda transformeerimist saab Python interpreter juba korrektselt muudetud algtekstiga skripti, kus C-funktsioonid kutsutakse esile . Samuti rakendatakse sarnast meetodit projektis , mis võimaldab HTML-i ja Pythoni koodi samas failis segada.
# coding: inlinec
from inlinec import inlinec
@inlinec
def test():
#include<stdio.h>
void test() {
printf("Hello, world");
}
Arendamine on alles katsetamisfaasis, kus on tõdetud, et sellised puudujäägid, nagu funktsiooni argumentide puhul viidatud näidikute (välja arvatud stringide) toetamata jätmine, on vajalik käivitada
"gcc -E" koodi eelprotsessorina, vahepealsete *.so, *.o ja *.c failide salvestamine praeguses kataloogis, muudetud variandi vahemälutamise puudumine ja liigsete analüüsietappide läbiviimine (suured viivitused iga käivituse puhul).
Allikas: opennet.ru
