Ngaleupaskeun JPype 0.7.2, perpustakaan pikeun ngakses kelas Java ti Python

Aya release lapisan jpg 0.7.2, anu ngamungkinkeun aplikasi Python gaduh aksés pinuh ka perpustakaan kelas dina basa Java. Kalayan JPype ti Python, anjeun tiasa nganggo perpustakaan khusus Java pikeun nyiptakeun aplikasi hibrid anu ngagabungkeun kode Java sareng Python. Teu kawas Jython, integrasi jeung Java kahontal teu ngaliwatan nyieun varian Python pikeun JVM, tapi ngaliwatan interaksi dina tingkat duanana mesin virtual ngagunakeun memori dibagikeun. Pendekatan anu diusulkeun ngamungkinkeun henteu ngan ukur pikeun ngahontal prestasi anu saé, tapi ogé nyayogikeun aksés ka sadaya perpustakaan CPython sareng Java. Kodeu proyék disebarkeun ku dilisensikeun dina Apache 2.0.

Parobahan utama:

  • Iwal dialungkeun dina C ++ jeung kode Java ayeuna nyadiakeun hiji tumpukan iwal lamun iwal lumangsung dina kode Python. Ku kituna, pikeun ménta inpo ngeunaan tumpukan iwal, Anjeun teu kedah deui nelepon stacktrace ().
  • Laju mulang telepon geus tilu kali.
  • Nyata (ku urutan gedena) ngaronjat speed transmisi di
    panyangga numpy tina arrays multidimensional. Primitif multidimensional ngalangkungan salinan ngan ukur dibaca di jero JVM kalayan perenah C anu caket.

  • Sadaya internal anu kakeunaan parantos diganti ku palaksanaan CPython, sareng simbol __javaclass__, __javavalue__ sareng __javaproxy__
    dipupus. A slot Java dedicated geus ditambahkeun kana sagala jenis CPython nu inherit ti tipe kelas jpype. Kabéh tabel swasta geus dipindahkeun ka CPython. Jenis Java ayeuna kudu inherit ti metaclass JClass, nu ngagunakeun slot tipe. Mixins pikeun kelas basa Python teu diwenangkeun. Jenisna nyaéta Obyék, Proksi, Pangecualian, Jumlah sareng Array sareng diwariskeun langsung tina palaksanaan internal CPython.

  • Ningkatkeun tracing sareng penanganan iwal.
  • Irisan Array ayeuna diolah salaku pandangan anu ngadukung tulisan deui kana aslina, sapertos array numpy. Pikeun nyiksikan Asép Sunandar Sunarya, dukungan disayogikeun pikeun netepkeun sareng nyandak nilai dina léngkah-léngkah (slice (mimiti, eureun, léngkah)).
  • Arrays ayeuna ngarojong "__reversed__".
  • Asép Sunandar Sunarya Java ayeuna ngadukung memoriview API sareng ngahapus kagumantungan kana numpy pikeun ngalangkungan eusi panyangga.
  • Numpy henteu deui gumantungna (tambahan) sareng transfer mémori ka numpy sayogi tanpa kompilasi kalayan dukungan numpy.
  • JInterface dirancang salaku kelas meta. Anggo isinstance (cls, JInterface) pikeun mariksa antarmuka.
  • Nambahkeun TLD anu leungit "mil", "net" sareng "edu" pikeun impor standar.
  • Pesen kasalahan ningkat pikeun UnsupportedClassVersion nalika ngamimitian.
  • java.util.Map ayeuna throws a KeyError lamun unsur teu kapanggih. Nilai nu nol masih mulang Euweuh saperti nu diharapkeun. Anggo get () upami anjeun hoyong ngubaran konci kosong sapertos Euweuh.
  • Dipiceun java.util.Collection sabab ahéngna overloads antara dipiceun (Objék) jeung cabut (int) dina Daptar. Anggo metodeu Java ngahapus () pikeun ngaksés paripolah Java asli, tapi jinis casting disarankeun pisan pikeun kontrol overload.
  • java.lang.IndexOutOfBoundsException ayeuna tiasa ditangkep nganggo kelas pengecualian IndexError nalika ngaksés elemen java.util.List.

sumber: opennet.ru

Tambahkeun komentar