Ukukhishwa kwe-JPype 0.7.2, umtapo wolwazi wokufinyelela amakilasi e-Java ku-Python

Iyatholakala ukukhululwa kwesendlalelo I-JPype 0.7.2, okuvumela izinhlelo zokusebenza zePython ukuthi zibe nokufinyelela okugcwele emitapweni yolwazi yekilasi ngolimi lwe-Java. Nge-JPype evela ku-Python, ungasebenzisa imitapo yolwazi eqondene ne-Java ukuze udale izinhlelo zokusebenza eziyingxube ezihlanganisa ikhodi ye-Java ne-Python. Ngokungafani ne-Jython, ukuhlanganiswa ne-Java akufinyelelwa ngokwakha okuhlukile kwe-Python ye-JVM, kodwa ngokusebenzisana ezingeni layo yomibili imishini ebonakalayo esebenzisa inkumbulo eyabiwe. Indlela ehlongozwayo ayivumeli kuphela ukufeza ukusebenza kahle, kodwa futhi inikeza ukufinyelela kuyo yonke imitapo yolwazi ye-CPython ne-Java. Ikhodi yephrojekthi isatshalaliswa ngu ilayisensi ngaphansi kwe-Apache 2.0.

Izinguquko eziyinhloko:

  • Okuhlukile okuphonswe ku-C++ kanye nekhodi ye-Java manje kunikeza isitaki sokuhlukile uma okuhlukile kwenzeka kukhodi ye-Python. Ngakho, ukuze uthole ulwazi mayelana nesitaki esihlukile, awusadingi ukushayela i-stacktrace().
  • Isivinini sokubuyisela ucingo siphindwe kathathu.
  • Ngokuphawulekayo (ngama-oda wobukhulu) kwenyusa isivinini sokudlulisela ngaphakathi
    amabhafa ama-numpy we-multidimensional arrays. Amakhophi afundayo kuphela adlula ama-multidimensional adalwe ngaphakathi kwe-JVM ngesakhiwo esingu-C esihambisanayo.

  • Konke okungaphakathi okuveziwe kuthathelwe indawo ukusetshenziswa kwe-CPython, kanye nezimpawu __javaclass__, __javavalue__ kanye __javaproxy__
    kususiwe. I-slot ye-Java ezinikele yengezwe kuzo zonke izinhlobo ze-CPython ezithola ifa elivela ezinhlotsheni zamakilasi e-jpype. Wonke amatafula ayimfihlo ahanjiswe ku-CPython. Izinhlobo ze-Java manje kufanele zizuze ifa le-JClass metaclass, esebenzisa izikhala zohlobo. Imiksi yamakilasi esisekelo sePython ayivunyelwe. Izinhlobo ze-Object, Ummeleli, Okuhlukile, Inombolo ne-Array futhi zizuza ngokuqondile ekusetshenzisweni kwangaphakathi kwe-CPython.

  • Ukulandelela okuthuthukisiwe nokuphatha okuhlukile.
  • Izingcezu ze-array manje sezicutshungulwa njengokubukwa okusekela ukubhala kubuyele kokwangempela, njenge-numpy array. Ekusikeni kwamalungu afanayo, ukusekelwa kunikezwa ukusetha nokubuyisa amanani ngezinyathelo (ucezu(ukuqala, misa, isinyathelo)).
  • Izinhlu manje zisekela okuthi "__reversed__".
  • Ama-Java arrays manje asekela i-memoryview API futhi asuse ukuncika ku-numpy ukuze kudlule okuqukethwe kubhafa.
  • I-Numpy ayiseyona into encikayo (okwengeziwe) futhi ukudluliswa kwememori ku-numpy kuyatholakala ngaphandle kokuhlanganiswa nokusekelwa okungu-numpy.
  • I-JInterface yakhelwe njengekilasi le-meta. Sebenzisa i-isinstance(cls, JInterface) ukuze uhlole izixhumanisi.
  • Kwengezwe ama-TLD angekho "mil", "net" kanye ne-"edu" ekungenisweni okuzenzakalelayo.
  • Imilayezo yephutha ethuthukisiwe ye-UnsupportedClassVersion ngesikhathi sokuqalisa.
  • I-java.util.Map manje iphonsa Iphutha elingukhiye uma isici singatholakali. Amanani angasebenzi asabuya Awekho njengoba kulindelekile. Sebenzisa get() uma ufuna ukuphatha okhiye abangenalutho njengoLutho.
  • Kukhishwe i-java.util.Collection njengoba igcwala ngokumangalisayo phakathi kokukhipha(Into) kanye nokukhipha(int) Ezinhlwini. Sebenzisa indlela ye-Java remove() ukuze ufinyelele ukuziphatha kwe-Java yomdabu, kodwa ukusakaza kohlobo kunconywa kakhulu ekulawuleni ukugcwala kakhulu.
  • I-java.lang.IndexOutOfBoundsException manje ingabanjwa kusetshenziswa isigaba se-IndexError ngaphandle uma ufinyelela izici ze-java.util.List.

Source: opennet.ru

Engeza amazwana