Rilansimi i JPype 0.7.2, bibliotekës për qasje në klasat Java nga Python

I disponueshëm lëshimi i shtresës JPype 0.7.2, e cila mundëson qasje të plotë të aplikacioneve Python në bibliotekat e klasave në gjuhën Java. Me ndihmën e JPype, nga Python mund të përdoren biblioteka specifike për Java, duke krijuar aplikacione hibride që kombinojnë kodin në Java dhe Python. Ndryshe nga Jython, integimi me Java arrihet jo përmes krijimit të një varianti Python për JVM, por përmes ndërveprimit në nivelin e të dyja makinerive virtuale, duke përdorur memorie të ndarë. Qasja e propozuar lejon jo vetëm arritjen e performancës së lartë, por gjithashtu ofron qasje në të gjitha bibliotekat CPython dhe Java. Kodi i projektit shpërndahet nën licencën Apache 2.0.

Ndryshimet kryesore:

  • Ishujt e hedhura nĂ« kodin C++ dhe Java tani ofrojnĂ« njĂ« stek pĂ«rjashtimesh kur ndodh njĂ« pĂ«rjashtim nĂ« kodin Python. Pra, pĂ«r tĂ« marrĂ« informacionin mbi stek-in e pĂ«rjashtimeve, nuk Ă«shtĂ« mĂ« e nevojshme tĂ« thĂ«rrisni stacktrace().
  • ShpejtĂ«sia e kthimit Ă«shtĂ« rritur tre herĂ« gjatĂ« thirrjeve.
  • ShpejtĂ«sia e transferimit Ă«shtĂ« rritur ndjeshĂ«m (nĂ« rend tĂ« magnitudave) nĂ«
    buffers e shumëdimensionaleve numpy. Primitive shumëdimensionale transferojnë kopje vetëm për të lexuar, të krijuara brenda JVM me një shtrirje të vazhdueshme C.
  • TĂ« gjitha komponentet e brendshme tĂ« ekspozuara janĂ« zĂ«vendĂ«suar me realizime nga CPython, dhe simbolet __javaclass__, __javavalue__ dhe __javaproxy__
    janë hequr. Të gjitha llojet CPython, të trashëguara nga llojet e klasës jpype, janë shtuar me një slot të dedikuar Java. Të gjitha tabelat private janë transferuar në CPython. Të gjitha llojet Java tani duhet të trashëgojnë nga metaklasa JClass, e cila përdor slote të llojeve. Mëngesat për klasat bazë Python nuk lejohet. Llojet Object, Proxy, Exception, Number dhe Array trashëgohen drejtpërdrejt nga realizimet e brendshme CPython.
  • ËshtĂ« pĂ«rmirĂ«suar gjurmimi dhe trajtimi i pĂ«rjashtimeve.
  • Shtresat e array-ve tani pĂ«rpunohen si pamje qĂ« mbĂ«shtesin shkrimin pas nĂ« origjinal, siç Ă«shtĂ« array numpy. PĂ«r shtresat e array-ve Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r vendosjen dhe marrjen e vlerĂ«s me hap (slice(start, stop, step)).
  • NĂ« array Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r «__reversed__».
  • NĂ« array-t Java Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r API memoryview dhe Ă«shtĂ« hequr varĂ«sia nga numpy pĂ«r transferimin e pĂ«rmbajtjes sĂ« buffer-it.
  • Numpy tani nuk Ă«shtĂ« njĂ« varĂ«si (extra) dhe transferimi i memories nĂ« numpy Ă«shtĂ« i disponueshĂ«m pa mbĂ«shtetje pĂ«r ndĂ«rtimin me numpy.
  • JInterface Ă«shtĂ« dizajnuar si njĂ« metaklasĂ«. PĂ«rdorni isinstance(cls, JInterface) pĂ«r tĂ« kontrolluar pĂ«r interfesat.
  • TĂ« gjithĂ« importet e paracaktuara janĂ« shtuar me TLD tĂ« munguar «mil», «net» dhe «edu».
  • GjatĂ« nisjes, janĂ« pĂ«rmirĂ«suar mesazhet e gabimeve pĂ«r UnsupportedClassVersion.
  • java.util.Map tani jep KeyError nĂ«se elementi nuk gjendet. Vlerat qĂ« janĂ« null, ende kthejnĂ« None ashtu siç pritej. PĂ«rdorni get() nĂ«se duhen trajtuar çelĂ«sat bosh si None.
  • java.util.Collection Ă«shtĂ« hequr, pasi Ă«shtĂ« ngatĂ«rruar me mbivendosjen midis remove(Object) dhe remove(int) nĂ« List. PĂ«rdorni metodĂ«n Java remove() pĂ«r akses nĂ« sjelljen origjinale Java, por konvertimi i tipit rekomandohet fort pĂ«r tĂ« menaxhuar mbivendosjen.
  • java.lang.IndexOutOfBoundsException tani mund tĂ« kapet me ndihmĂ«n e klasĂ«s pĂ«r pĂ«rjashtime IndexError kur aksesoni elementet java.util.List.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster