A JPype 0.7.2 kiadása, amely lehetővé teszi a Java-osztályok elérését Pythonból

Elérhető rétegkiadás JPype 0.7.2, amely teljes hozzáférést biztosít a Python-alkalmazások számára a Java nyelvű osztálykönyvtárakhoz. A JPype segítségével a Pythonból használhatók a Java-specifikus könyvtárak, hibrid alkalmazások létrehozva, amelyek kombinálják a Java és a Python kódot. A Jythontól eltérően a Java integráció nem a JVM-hez készült Python verzió létrehozásával érhető el, hanem a két virtuális gép közötti interakció révén, megosztott memóriát használva. Ez a megközelítés nemcsak jó teljesítményt nyújt, hanem hozzáférést biztosít az összes CPython és Java könyvtárhoz is. A projekt kódja terjesztésre kerül Apache 2.0 licenc alatt.

Főbb változások:

  • A C++ és Java kódban dobott kivételek mostantól rendelkezésre bocsátják a kivételi verem információt, ha kivétel lép fel a Python kódban. Így mostantól nem szükséges a stacktrace() hívása a kivételi verem információ megszerzéséhez.
  • A hívások visszatérési sebessége háromszorosára nőtt.
  • Jelentősen (rendkívüli mértékben) megnövelték a gyorsaságot a
    numpy többszörös tömbjeinek átvitelében. A többszörös primitívek csak olvasható másolatokat adnak át, amelyek a JVM-en belül készülnek, folyamatos C elrendezéssel.
  • Minden kiadott belső komponens CPython implementációkra lett cserélve, és az __javaclass__, __javavalue__ és __javaproxy__
    szimbólumok eltávolításra kerültek. Minden CPython-ból származó osztály típushoz egy dedikált Java-helyet adtak hozzá. Minden privát tábla átkerült a CPythonba. A Java-típusoknak most a JClass metaklasztól kell származniuk, amely típus helyeket használ. A Python alapú osztályok keverékei nem engedélyezettek. Az Object, Proxy, Exception, Number és Array típusok közvetlenül a CPython belső implementációiból származnak.
  • Javították a nyomkövetést és a kivételek kezelését.
  • A tömbszeletek most már nézetek formájában kezeltek, amelyek támogatják az eredetihez való visszaírást, például numpy tömböket. A tömbszeletekhez biztosították a lépésenkénti értékbeállítás és -lekérés támogatását (slice(start, stop, step)).
  • A tömbök támogatják a «__reversed__» funkciót.
  • A Java-tömbök támogatják a memoryview API-t, és eltávolították a numpy függőséget a puffer tartalmának átadásához.
  • A Numpy most már nem függőség (extra), és a memória átadása a numpy számára elérhető anélkül, hogy a numpy-t támogató fordításra lenne szükség.
  • A JInterface meta-osztályként van formálva. Használja az isinstance(cls, JInterface) kifejezést az interfészek ellenőrzésére.
  • Az alapértelmezett importokhoz hozzáadták a kihagyott TLD-ket: „mil”, „net” és „edu”.
  • A rendszerindítás során javították a UnsupportedClassVersion-ra vonatkozó hibajelzéseket.
  • A java.util.Map most KeyError-t ad vissza, ha egy elem nem található. A null értékek továbbra is None-t adnak vissza, ahogyan várható. Használja a get() metódust, ha a üres kulcsokat None-ként kell kezelni.
  • A java.util.Collection eltávolításra került, mivel furcsa módon terhelődik a remove(Object) és remove(int) között Listákon. Használja a Java remove() metódusát az eredeti Java viselkedés eléréséhez, de a típusátalakítás szigorúan ajánlott a terhelés kezeléséhez.
  • A java.lang.IndexOutOfBoundsException mostantól elkapható az IndexError osztály segítségével a java.util.List elemeinek elérési kísérletekor.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster