Rilis JPype 1.0, perpustakaan kanggo ngakses kelas Java saka Python

Kasedhiya release lapisan jpg 1.0, 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:

  • JChar didhukung minangka jinis bali. Kanggo kompatibilitas, JChar entuk warisan saka "str" ​​​​lan nindakake konversi implisit dadi "int". Mulane, iku liwat mriksa ing kontrak. Nanging iki tegese iku ora dianggep maneh jinis numerik ing Python lan mulane isinstance (c, int) ngevaluasi kanggo Palsu, kang konsisten karo aturan konversi jinis Jawa.
  • Operator wis dikenalaké kanggo cast jinis Jawa, Type@obj (@ iku operator Python kanggo produk njero; Jawa ora duwe).
  • Notasi ditambahake kanggo nggawe array Java. Ketik [s1][s2][s3] kanggo larik ukuran tetep, Ketik [:][:][:] kanggo larik sing bakal digawe mengko.
  • @FunctionalInterface ngidini sampeyan nggawe functors Java saka obyek Python karo __call__.
  • Mbusak JIterator, nggunakake JException minangka pabrik, get_default_jvm_path lan jpype.reflect.
  • Kanthi gawan, strings Jawa ora diowahi kanggo strings Python.
  • Python wis nolak "__int__", dadi cast implisit antarane integer lan tipe floating-point bakal ngasilake TypeError.
  • Panggunaan JException wis ora digunakake. Kanggo nyekel kabeh pangecualian, utawa priksa manawa obyek minangka jinis pangecualian Jawa, gunakake java.lang.Throwable.
  • Penyebab cascading saka pangecualian Jawa saiki dibayangke ing pigura tumpukan Python.
  • JString wis ora digunakake. Kanggo nggawe senar Jawa, utawa kanggo mriksa obyek iku jinis senar Jawa, gunakake java.lang.String.
  • Cara Repr wis dianyari ing kelas Jawa.
  • java.util.List nglakokaké kontrak kanggo collections.abc.Sequence lan collections.abc.MutableSequence.
  • java.util.Collection nglakokaké kontrak kanggo collections.abc.Collection.
  • Kelas Java pribadi lan bakal mbuwang TypeError nalika ditambahi saka Python.
  • Nangani Control-C kanthi ati-ati. Versi sadurungé kacilakan nalika Jawa ngolah sinyal Control-C amarga bakal mungkasi Jawa sajrone nelpon. JPype saiki bakal mbuwang InterruptedException nalika bali saka Jawa. Control-C ora bakal uncalan metu tata cara Jawa gedhe minangka saiki dipun ginakaken, wiwit Jawa ora duwe alat khusus kanggo iki.

Sabanjure, rilis mbenakake 1.0.1 digawe, sing nambahake owah-owahan kanggo ngatasi masalah karo release Python 3.8.4. Python wis ngganti logika babagan nggunakake "__setattr__" kanggo "obyek" lan "jinis", nyegah saka digunakake kanggo ngowahi kelas asalé. Priksa kesalahan uga wis didelegasikan saka cara "__setattr__", mula jinis pangecualian ing sawetara pamriksa kecukupan kudu dianyari.

Source: opennet.ru

Add a comment