Serbestberdana JPype 0.7.2, pirtûkxane ji bo gihîştina dersên Java ji Python

Berdeste berdana qatê JPype 0.7.2, ku destûrê dide sepanên Python ku bi zimanê Java-yê bi tevahî xwedan pirtûkxaneyên polê bin. Bi JPype ji Python re, hûn dikarin pirtûkxaneyên Java-taybet bikar bînin da ku serîlêdanên hybrid ên ku koda Java û Python li hev dikin biafirînin. Berevajî Jython, entegrasyona bi Java-yê re ne bi afirandina guhertoyek Python-ê ji bo JVM-ê, lê bi pêwendiya di asta her du makîneyên virtual de ku bîranîna hevpar bikar tînin, pêk tê. Nêzîkatiya pêşniyar ne tenê dihêle ku meriv performansa baş bi dest bixe, lê di heman demê de gihîştina hemî pirtûkxaneyên CPython û Java jî peyda dike. Koda projeyê belav kirin ji hêla lîsansa di bin Apache 2.0.

Guhertinên sereke:

  • Îstîsnayên ku di C++ û koda Java-yê de têne avêtin naha gava ku îstîsnayek di koda Python de çêdibe stûnek îstîsnayê peyda dike. Ji ber vê yekê, ji bo ku hûn agahdariya li ser stûna îstisnayê bistînin, êdî hewce ne ku hûn gazî stacktrace ().
  • Leza vegera bangê sê qat bûye.
  • Bi girîngî (bi fermanên mezinbûnê) leza veguheztinê di hundurê de zêde kir
    tamponên numyayî yên rêzikên piralî. Pêşniyarên piralî kopiyên tenê-xwendewarî yên ku di hundurê JVM-ê de bi sêwirana C-ya hevgirtî hatine afirandin derbas dikin.

  • Hemî hundurên eşkerekirî bi pêkanînên CPython ve hatine guhertin, û sembolên __javaclass__, __javavalue__ û __javaproxy__
    jêbirin. Slotek Java ya taybetî li hemî celebên CPython-ê yên ku ji celebên çîna jpype mîras digirin hate zêdekirin. Hemî tabloyên taybet hatine guheztin CPython. Cûreyên Java divê êdî ji metaclass JClass, ku hêlînên tîpan bikar tîne, mîras bistînin. Miksînên ji bo dersên bingehîn ên Python nayên destûr kirin. Cureyên Object, Proxy, Exception, Number û Array in û rasterast ji pêkanînên hundurîn ên CPython mîras in.

  • Rêvekirina şopandin û îstîsnayê çêtir kirin.
  • Parçeyên array naha wekî dîtinên ku piştgirîya nivîsandina vegerandina orîjînalê dikin, wek rêzek numpy têne hilberandin. Ji bo perçekirina rêzê, piştgirî ji bo danîn û kişandina nirxan di gavan de (perçe (destpêk, rawestandin, gav)) tê peyda kirin.
  • Array niha "__reversed__" piştgirî dikin.
  • Rêzikên Java naha piştgirîya API-ya Memoryview-ê dikin û ji bo derbaskirina naverokên tamponê ve girêdayîbûna numpy radikin.
  • Numpy êdî ne girêdayîbûnek (zêde) ye û veguheztina bîranînê li numpy bêyî berhevkirina bi piştgirîya numpy heye.
  • JInterface wekî çînek meta hatî çêkirin. Ji bo kontrolkirina navberan mînakek (cls, JInterface) bikar bînin.
  • TLD-yên winda "mil", "net" û "edu" li îthalata xwerû zêde kirin.
  • Di dema destpêkirinê de ji bo UnsupportedClassVersion peyamên xeletiyê çêtir kirin.
  • java.util.Map niha eger hêman neyê dîtin Kêşeya Klavyeyê derdixe. Nirxên ku betal in hîn jî wekî ku tê hêvî kirin tune. Heke hûn dixwazin bişkojkên vala wekî Tune binirxînin get() bikar bînin.
  • java.util.Collection hat rakirin ji ber ku bi awayekî ecêb di navbera remove(Object) û jêbirin(int) de li ser Lîsteyan zêde bar dike. Rêbaza Java-yê jêbirin() bikar bînin da ku bigihîjin tevgera Java-ya xwemalî, lê ji bo kontrolkirina barkirinê bi tundî avêtina tîpan tê pêşniyar kirin.
  • java.lang.IndexOutOfBoundsException niha dikare bi karanîna çîna îstîsna IndexError were girtin dema ku meriv xwe bigihîne hêmanên java.util.List.

Source: opennet.ru

Add a comment