En utgivelse av Nuitka 1.1-prosjektet er tilgjengelig, som utvikler en kompilator for å oversette Python-skript til en C-representasjon, som deretter kan kompileres til en kjørbar fil ved hjelp av libpython for maksimal kompatibilitet med CPython (ved å bruke native CPython-verktøy for å administrere objekter). Gir full kompatibilitet med gjeldende versjoner av Python 2.6, 2.7, 3.3 - 3.10. Sammenlignet med CPython viser kompilerte skript en ytelsesforbedring på 335 % i pystone-tester. Prosjektkoden distribueres under Apache-lisensen.
Blant endringene i den nye versjonen:
- Mulighetene for å spesifisere konfigurasjon i Yaml-format er utvidet.
- Optimaliseringer er gjort knyttet til utelukkelsen av ubrukte komponenter i standardbiblioteket (zoneinfo, concurrent, asyncio, etc.), som gjorde det mulig å redusere størrelsen på de resulterende kjørbare filene.
- Lagt til støtte for alternativ syntaks ("|") i mønstertreff basert på "match"-operatoren introdusert i Python 3.10.
- Kompatibilitet med jinja2.PackageLoader er sikret.
- Implementerte muligheten til å endre størrelsen på __defaults__-attributtet.
- Lagt til støtte for funksjonene importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata og importlib_metadata.metadata.
- Støtte for å inkludere flere binære filer i den kjørbare hovedfilen er lagt til Onefile-kompileringsmodusen.
- De kompilerte modulene implementerer muligheten til å bruke funksjonen importlib.resources.files.
- "--inkluder-pakke-data"-alternativet gjør det mulig å spesifisere filmasker, for eksempel "--inkluder-pakke-data=pakkenavn=*.txt".
- For macOS er støtte for digital signering av kjørbare filer implementert.
- En metode er gitt for plugins for å overstyre funksjoner for den kjørbare.
- Mulighetene til anti-bloat-pluginen er utvidet, som nå kan brukes til å redusere antall pakker ved bruk av rich-, pyrect- og pytorch-bibliotekene. Muligheten til å bruke regulære uttrykk i erstatningsregler er implementert.
- Regressive endringer som følge av betydelige optimaliseringer implementert i den siste utgivelsen er løst.
Kilde: opennet.ru