Kutulutsidwa kwa JPype 0.7.2, laibulale yopezera makalasi a Java kuchokera ku Python

Ipezeka kumasulidwa kosanjikiza JPype 0.7.2, zomwe zimalola mapulogalamu a Python kukhala ndi mwayi wofikira ku malaibulale am'kalasi muchilankhulo cha Java. Ndi JPype yochokera ku Python, mutha kugwiritsa ntchito malaibulale apadera a Java kuti mupange mapulogalamu osakanizidwa omwe amaphatikiza ma code a Java ndi Python. Mosiyana ndi Jython, kuphatikiza ndi Java kumatheka osati popanga mtundu wa Python wa JVM, koma polumikizana pamlingo wa makina onse awiri omwe amagwiritsa ntchito kukumbukira kwawo. Njira yomwe ikuperekedwa imalola osati kungochita bwino, komanso imapereka mwayi wopezeka ku malaibulale onse a CPython ndi Java. Project kodi wogawidwa ndi zololedwa pansi pa Apache 2.0.

Zosintha zazikulu:

  • Kupatulapo komwe kuponyedwa mu C ++ ndi Java code tsopano kumapereka mwayi wapadera pakachitika zosiyana ndi Python code. Chifukwa chake, kuti mudziwe zambiri za stack, simukufunikanso kuyimba stacktrace().
  • Kuthamanga kwa kuyimbanso kwachulukitsidwa katatu.
  • Mofunikira (mwa kulamula kwakukulu) kuchuluka kwa liwiro la kufalikira mu
    numpy buffers of multidimensional arrays. Ma multidimensional primitives amadutsa makope owerengera okha opangidwa mkati mwa JVM okhala ndi mawonekedwe a C.

  • Zonse zomwe zavumbulutsidwa zasinthidwa ndi CPython kukhazikitsa, ndi zizindikiro __javaclass__, __javavalue__ ndi __javaproxy__
    zachotsedwa. Malo odzipatulira a Java awonjezedwa ku mitundu yonse ya CPython yomwe imachokera ku mitundu ya jpype class. Matebulo onse achinsinsi asunthidwa ku CPython. Mitundu ya Java iyenera tsopano kukhala yochokera ku JClass metaclass, yomwe imagwiritsa ntchito mipata yamtundu. Zosakaniza zamakalasi oyambira a Python saloledwa. Mitunduyi ndi Object, Proxy, Exception, Number ndi Array ndipo imalandira kuchokera kuzinthu zamkati za CPython.

  • Kutsata kwabwinoko komanso kachitidwe kosiyana.
  • Magawo angapo tsopano asinthidwa ngati mawonedwe omwe amathandizira kulemba kubwereranso koyambirira, monga gulu la numpy. Pakudula magawo osiyanasiyana, chithandizo chimaperekedwa pakukhazikitsa ndi kubwezeretsanso masitepe (kagawo (kuyambira, kuyimitsa, sitepe)).
  • Ma Arrays tsopano amathandizira "__reversed__".
  • Ma Java arrays tsopano amathandizira memoryview API ndikuchotsa kudalira numpy kuti adutse zomwe zili mkati.
  • Numpy salinso kudalira (zowonjezera) ndipo kusamutsidwa kukumbukira ku numpy kumapezeka popanda kuphatikiza ndi chithandizo cha numpy.
  • JInterface idapangidwa ngati kalasi ya meta. Gwiritsani ntchito isinstance(cls, JInterface) kuti muwone zolumikizirana.
  • Onjezani ma TLD osowa "mil", "net" ndi "edu" pazolowera kunja.
  • Mauthenga olakwika a UnsupportedClassVersion poyambira.
  • java.util.Map tsopano ikuponya KeyError ngati chinthucho sichipezeka. Makhalidwe omwe ali opanda pake amabwererabe Palibe monga momwe amayembekezera. Gwiritsani ntchito get() ngati mukufuna kuchitira makiyi opanda kanthu ngati Palibe.
  • Yachotsedwa java.util.Collection popeza imadzaza modabwitsa pakati kuchotsa(Object) ndi kuchotsa(int) pa Lists. Gwiritsani ntchito njira ya Java remove() kuti mupeze machitidwe a Java, koma mtundu wa casting ukulimbikitsidwa kwambiri pakuwongolera mochulukira.
  • java.lang.IndexOutOfBoundsException tsopano ikhoza kugwidwa pogwiritsa ntchito gulu la IndexError exception class polowa java.util.List elements.

Source: opennet.ru

Kuwonjezera ndemanga