Rilis JPype 0.7.2, perpustakaan kanggo ngakses kelas Java saka Python

Kasedhiya release lapisan jpg 0.7.2, sing ngidini aplikasi Python duwe akses lengkap menyang perpustakaan kelas ing basa Jawa. Kanthi JPype saka Python, sampeyan bisa nggunakake perpustakaan khusus Jawa kanggo nggawe aplikasi hibrida sing nggabungake kode Java lan Python. Boten kados Jython, integrasi karo Jawa digayuh ora liwat nggawe varian Python kanggo JVM, nanging liwat interaksi ing tingkat loro mesin virtual nggunakake memori sambungan. Pendekatan sing diusulake ngidini ora mung entuk kinerja sing apik, nanging uga menehi akses menyang kabeh perpustakaan CPython lan Java. Kode proyek disebarake dening dilisensi ing Apache 2.0.

Owah-owahan utama:

  • Pangecualian sing dibuwang ing C ++ lan kode Java saiki nyedhiyakake tumpukan pangecualian nalika ana pangecualian ing kode Python. Mangkono, kanggo njupuk informasi bab tumpukan pangecualian, sampeyan ora perlu maneh nelpon stacktrace ().
  • Kacepetan bali telpon wis tikel kaping telu.
  • Ngartekno (kanthi pesenan saka gedhene) tambah kacepetan transmisi ing
    buffer numpy saka array multidimensi. Primitif multidimensi ngliwati salinan mung diwaca sing digawe ing JVM kanthi tata letak C sing cedhak.

  • Kabeh internal sing kapapar wis diganti karo implementasine CPython, lan simbol __javaclass__, __javavalue__ lan __javaproxy__
    dibusak. A slot Jawa darmabakti wis ditambahake kanggo kabeh jinis CPython sing oleh warisan saka jinis kelas jpype. Kabeh tabel pribadi wis dipindhah menyang CPython. Jinis Jawa saiki kudu oleh warisan saka metaclass JClass, sing nggunakake slot jinis. Mixins kanggo kelas basa Python ora diijini. Jinis kasebut yaiku Object, Proxy, Exception, Number lan Array lan warisan langsung saka implementasi internal CPython.

  • Ngapikake nelusuri lan pangecualian penanganan.
  • Irisan array saiki diproses minangka tampilan sing ndhukung nulis maneh menyang asline, kayata array numpy. Kanggo ngiris larik, dhukungan diwenehake kanggo nyetel lan njupuk nilai ing langkah-langkah (irisan (miwiti, mandheg, langkah)).
  • Arrays saiki ndhukung "__reversed__".
  • Array Java saiki ndhukung API memoryview lan mbusak ketergantungan ing numpy kanggo ngliwati isi buffer.
  • Numpy ora ana maneh ketergantungan (ekstra) lan transfer memori menyang numpy kasedhiya tanpa ngumpulake dhukungan numpy.
  • JInterface dirancang minangka kelas meta. Gunakake isinstance(cls, JInterface) kanggo mriksa antarmuka.
  • Nambahake TLD sing ilang "mil", "net" lan "edu" menyang impor standar.
  • Pesen kesalahan sing luwih apik kanggo UnsupportedClassVersion nalika wiwitan.
  • java.util.Map saiki mbuwang KeyError yen unsur ora ketemu. Nilai sing null isih bali Ora ana kaya sing dikarepake. Gunakake get () yen sampeyan pengin nambani tombol kosong minangka Ora Ana.
  • Dibusak java.util.Collection minangka strangely overloads antarane mbusak (Obyek) lan mbusak (int) ing Lists. Gunakake cara mbusak Java () kanggo ngakses prilaku asli Jawa, nanging jinis casting dianjurake banget kanggo kontrol kakehan.
  • java.lang.IndexOutOfBoundsException saiki bisa kejiret nggunakake kelas pangecualian IndexError nalika ngakses unsur java.util.List.

Source: opennet.ru

Add a comment