Ho lokolloa ha JPype 1.0, lilaeborari tsa ho fihlella litlelase tsa Java ho tsoa Python

Fumaneha ho lokolloa ha interlayer JPpype 1.0, e u lumellang hore u hlophise phihlello e felletseng ea lits'ebetso tsa Python ho lilaebraring tsa sehlopha sa Java. Ka JPype e tsoang Python, o ka sebelisa lilaebrari tse ikhethileng ho Java ho theha lits'ebetso tse nyalisitsoeng tse kopanyang khoutu ea Java le Python. Ho fapana le Jython, ho kopanngoa le Java ha ho finyelloe ka ho theha mofuta oa Python bakeng sa JVM, empa ka ho sebelisana boemong ba mechine ka bobeli e sebelisang mohopolo o arolelanoeng. Mokhoa o reriloeng ha o lumelle feela ho fihlela ts'ebetso e ntle, empa o fana ka phihlello ho lilaebrari tsohle tsa CPython le Java. Khoutu ea morero ajoa ke e nang le tumello tlas'a Apache 2.0.

Liphetoho tse kholo:

  • JChar e tšehetsoa e le mofuta oa ho khutlisa. Bakeng sa ho lumellana, JChar e nkiloe ho "str" ​​​​mme e sebelisa phetoho e hlakileng ho "int". Ka hona, e fetisa licheke ho likonteraka. Empa sena se bolela hore ha e sa nkuoa e le mofuta oa lipalo ho Python, ka hona, instance(c, int) e lekola ho False, e tsamaellanang le melao ea phetoho ea mofuta oa Java.
  • Ho se ho tsebisitsoe opereishene ea ho kenya mofuta oa Java Type@obj (@ - ena ke opereishene ea Python bakeng sa sehlahisoa se ka hare, ha e eo ho Java).
  • Kenyelletso ea ho theha li-array tsa Java. Type[s1][s2][s3] bakeng sa lihlopha tsa boholo bo tsitsitseng, Mofuta[:][:][:] bakeng sa lihlopha tse tla etsoa hamorao.
  • @FunctionalInterface e u lumella ho theha li-functions tsa Java ho tsoa ho lintho tsa Python ka __call__.
  • E tlositsoe JIterator e lahliloeng, tšebeliso ea feme ea JException, get_default_jvm_path le jpype.reflect.
  • Ka ho sa feleng, likhoele tsa Java ha li fetoleloe ho likhoele tsa Python.
  • Python e theohile "__int__", kahoo likarolo tse hlakileng pakeng tsa mefuta eohle le mefuta e phaphametseng li tla hlahisa TypeError.
  • Ho fokotsa tšebeliso ea JException. Ho tšoara mekhelo eohle, kapa ho lekola hore ntho ke mofuta oa mokhelo oa Java, java.lang.Throwable e latela.
  • Mabaka a mokhelo a Java a se a bonahala ho liforeimi tsa stack tsa Python.
  • Tšebeliso e fokotsehileng ea JString. Ho theha khoele ea Java, kapa ho hlahloba hore na ntho ke ea mofuta oa khoele ea Java, sebelisa java.lang.String.
  • Mekhoa ea rep e ntlafalitsoe lihlopheng tsa Java.
  • java.util.List e phethahatsa likonteraka tsa pokello.abc.Tatelano le pokello.abc.MutableSequence.
  • java.util.Collection e phethahatsa konteraka ea ho bokella.abc.Pokello.
  • Lihlopha tsa Java li poraefete 'me li tla lahlela TypeError ha li atolosoa ho tloha Python.
  • Tšoara Control-C ka makhethe. Liphetolelo tse fetileng lia senyeha ha Java e sebetsa lets'oao la Control-C, kaha li tla emisa Java nakong ea mohala. JPype joale e tla lahlela InterruptedException ha e khutla ho tsoa Java. Control-C e ke ke ea raha mekhoa e meholo ea Java joalo ka ha e etsa hajoale, kaha Java ha e na setsi se ikhethileng bakeng sa seo.

Ho ile ha thehoa patch ea 1.0.1, e ileng ea eketsa liphetoho ho rarolla mathata ka ho lokolloa ha Python 3.8.4. Python e fetotse mohopolo mabapi le tšebeliso ea "__setattr__" bakeng sa "ntho" le "mofuta", e thibela hore e se ke ea sebelisoa ho fetola lihlopha tse nkiloeng. Hape, ho hlahloba liphoso ho fanoe ka mokhoa oa "__setattr__", kahoo mefuta e sa tšoaneng ea litlhahlobo tse ling e hloka ho ntlafatsoa ka nepo.

Source: opennet.ru

Eketsa ka tlhaloso