Inlinec - ett nytt sätt att använda C-kod i Python-skript

projekt inlinec En ny metod för inline-integrering av C-kod i Python-skript har föreslagits. C-funktioner definieras direkt i samma Python-kodfil, markerad av "@inlinec"-dekoratören. Sammanfattningsskriptet körs som det är av Python-tolken och tolkas med hjälp av mekanismen som tillhandahålls i Python codecs, vilket gör det möjligt att ansluta en parser för att transformera skriptet innan det analyseras av tolken (som regel används codecs-modulen för transparent textomkodning, men den tillåter dig också att godtyckligt omvandla innehållet i skriptet).

Parsern är ansluten som en modul ("från inlinec import inlinec"), som utför den initiala bearbetningen och direkt översätter definitionerna av C-funktioner som markerats med @inlinec-kommentarer till ctypes-bindningar och ersätter C-funktionens kropp med en uppmaning till dessa bindningar. Efter en sådan transformation får Python-tolken den korrekt konverterade källtexten till skriptet, där C-funktionerna anropas med hjälp av ctyper. En liknande metod används också i projektet Pyxl4, som låter dig blanda HTML- och Python-kod i en fil.

# kodning: inlinec
från inlinec import inlinec

@inlinec
def test():
#omfatta
void test() {
printf("Hej världen");
}

Utvecklingen presenteras än så länge som en experimentell prototyp, som innehåller sådana brister som bristen på stöd för att skicka pekare (förutom strängar) till funktionen, behovet av att köra
"gcc -E" för kodförbearbetning, spara mellanliggande *.so-, *.o- och *.c-filer i den aktuella katalogen, inte cachelagra den konverterade versionen och utföra onödiga parsningssteg (långa fördröjningar varje gång den körs).

Källa: opennet.ru

Lägg en kommentar