Kuburitswa kweJPype 1.0, maraibhurari ekuwana makirasi eJava kubva kuPython

Inowanikwa layer release JPype 1.0, iyo inobvumira zvikumbiro zvePython kuti zvive nekuwana zvizere kumaraibhurari ekirasi mumutauro weJava. NeJPype kubva kuPython, unogona kushandisa Java-chaiwo maraibhurari kugadzira mahybrid application anosanganisa Java nePython kodhi. Kusiyana neJython, kubatanidzwa neJava kunowanikwa kwete kuburikidza nekugadzira Python musiyano weJVM, asi kuburikidza nekudyidzana pamwero wemashini ese ari maviri uchishandisa yakagovaniswa ndangariro. Iyo yakarongwa nzira inobvumira kwete chete kuita zvakanaka, asi inopawo mukana kune ese maCPython uye Java maraibhurari. Project code inoparadzirwa ne ine rezinesi pasi peApache 2.0.

Shanduko huru:

  • JChar inotsigirwa semhando yekudzoka. Kuti ienderane, JChar inogara nhaka kubva ku "str" ​​uye inoshandisa kutendeuka kwakazara kuita "int". Nokudaro, inopfuura cheki muzvibvumirano. Asi izvi zvinoreva kuti haichatorwa senhamba yerudzi muPython uye nekudaro isinstance(c, int) inoongorora kuNhema, inofambirana nemitemo yeshanduko yerudzi rweJava.
  • Mushandi akaunzwa kukanda rudzi rweJava, Type@obj (@ iPython opareta yechigadzirwa chemukati; Java haina imwe).
  • Yakawedzerwa notation yekugadzira Java arrays. Type[s1][s2][s3] yezvakagadziriswa saizi arrays, Type[:][:][:] yezvirongwa zvinozogadzirwa gare gare.
  • @FunctionalInterface inokutendera iwe kuti ugadzire Java functors kubva kuPython zvinhu ne __call__.
  • Yakabviswa JIterator yakarambwa, kushandiswa kweJException sefekitari, get_default_jvm_path uye jpype.reflect.
  • Nekutadza, tambo dzeJava hadzishandurwe kuita Python tambo.
  • Python yakasiya "__int__", saka makanda akajeka pakati peakazara uye anoyangarara-mapoinzi marudzi anoburitsa TypeError.
  • Kushandiswa kweJException kwakadzikiswa. Kuti ubate zvese zvakasarudzika, kana kutarisa kuti chinhu imhando yeJava, shandisa java.lang.Throwable.
  • Cascading zvikonzero zvekusarudzika kweJava zvave kuratidzwa muPython stack mafuremu.
  • JString yakabviswa. Kugadzira tambo yeJava, kana kutarisa kuti chinhu ndecherudzi rweJava tambo, shandisa java.lang.String.
  • Repr nzira dzakagadziridzwa mumakirasi eJava.
  • java.util.List inoita zvibvumirano zvekuunganidza.abc.Sequence uye kuunganidza.abc.MutableSequence.
  • java.util.Collection inoita kondirakiti yekuunganidza.abc.Collection.
  • Java makirasi ari ega uye anokanda TypeError kana yawedzerwa kubva kuPython.
  • Bata Kudzora-C nokungwarira. Shanduro dzakapfuura dzinopunzika kana Java ichiita Chiratidzo-C chiratidzo nekuti ivo vanozomisa Java panguva yekufona. JPype ikozvino ichakanda InterruptedException kana uchidzoka kubva kuJava. Kudzora-C hakuzorase maitiro makuru eJava sezvaaitwa parizvino, sezvo Java isina chishandiso chakakosha cheizvi.

Zvadaro, kusunungurwa kwekugadzirisa 1.0.1 kwakagadzirwa, iyo yakawedzera kuchinja kushanda kune zvinetso nePython 3.8.4 kusunungurwa. Python yakashandura pfungwa maererano nekushandiswa kwe "__setattr__" ye "chinhu" uye "mhando", ichidzivirira kuti isashandiswe kugadzirisa makirasi anobva. Kukanganisa kutarisa kwakapihwawo kubva ku "__setattr__" nzira, saka mhando dzekusarudzika mune mamwe macheki anokwana dzinofanira kuvandudzwa saizvozvo.

Source: opennet.ru

Voeg