Tukunga o JPype 0.7.2, whare pukapuka mo te uru ki nga karaehe Java mai i te Python

Wātea tuku interlayer JPype 0.7.2, ka taea e koe te whakarite i te uru katoa o nga tono Python ki nga whare pukapuka karaehe Java. Ma te JPype mai i te Python, ka taea e koe te whakamahi i nga whare pukapuka Java-motuhake ki te hanga tono ranu e whakakotahi ana i te waehere Java me te Python. Kaore i rite ki a Jython, ko te whakauru ki a Java ka tutuki ehara i te mea i hangaia he momo Python mo te JVM, engari ma te taunekeneke i te taumata o nga miihini mariko e rua ma te whakamahi i te mahara tiritahi. Ko te huarahi e whakaarohia ana e kore e taea anake te whakatutuki i nga mahi pai, engari ka uru atu ki nga whare pukapuka CPython me Java katoa. Waehere kaupapa tohaina e kua raihanatia i raro i te Apache 2.0.

Nga huringa matua:

  • Ko nga okotahi ka maka ki roto i te C++ me te waehere Java inaianei ka whakarato i te taapae tuunga ka puta he tuunga ki te waehere Python. No reira, ki te whiwhi korero mo te taapae tuunga, kaore koe e hiahia ki te waea atu ki te stacktrace().
  • Kua takitoruhia te tere whakahoki waea.
  • Tino nui (na nga ota o te nui) i piki ake te tere tuku ki roto
    pūreirei numpy o huānga ahu maha. Ka tukuna e nga mea taketake maha nga kape panui-anake i hangaia i roto i te JVM me te tahora C tata.

  • Ko nga mea o roto katoa kua kitea kua whakakapia ki nga whakatinanatanga CPython, me nga tohu __javaclass__, __javavalue__ me __javaproxy__
    kua mukua. Kua taapirihia he mokamoka Java kua whakatapua ki nga momo CPython katoa ka riro mai i nga momo akomanga jpype. Kua nukuhia nga ripanga motuhake katoa ki CPython. Ko nga momo Java me tuku mai i te JClass metaclass, e whakamahi ana i nga momo mokamoka. Ko nga ranunga mo nga akomanga turanga Python kaore e whakaaetia. Ko nga momo ko te Ahanoa, Takawaenga, Okotahi, Tau me te Huanga ka tuku tika mai i nga whakatinanatanga o roto o CPython.

  • Kua pai ake te tirotiro me te whakahaere motuhake.
  • Ka tukatukahia nga poro huānga hei tirohanga e tautoko ana i te tuhi ki te taketake, penei i te huranga numpy. Mo te tapahi huānga, ka whakaratohia he tautoko mo te whakarite me te tango i nga uara i roto i nga hikoinga (te tapahi (tīmatanga, mutu, taahiraa)).
  • Ka tautokohia e nga huānga "__reversed__".
  • Ka tautokohia e nga raupapa Java inaianei te API maharahara me te tango i te ti'aturi ki runga i te numpy ki te tuku i nga ihirangi buffer.
  • Kua kore a Numpy i te whakawhirinaki (atu) me te whakawhiti mahara ki te numpy e waatea ana me te kore e whakahiato me te tautoko numpy.
  • I hangaia a JInterface hei akomanga meta. Whakamahia isinstance(cls, JInterface) ki te tirotiro mo nga atanga.
  • Kua taapirihia nga TLD ngaro "mil", "net" me "edu" ki nga kawemai taunoa.
  • Kua pai ake nga karere hapa mo UnsupportedClassVersion i te wa e whakaoho ana.
  • Ka tukuna e java.util.Map he KeyError ki te kore e kitea te huānga. Ko nga uara e kore e hoki mai Karekau i runga i te tumanako. Whakamahia te tiki() ki te hiahia koe ki te mahi i nga taviri putua hei Kore.
  • I tangohia te java.util.Collection i te mea he nui te taumaha i waenga i te tango(Anoa) me te tango(int) i runga i nga Rarangi. Whakamahia te tikanga tango Java() ki te uru atu ki te whanonga Java taketake, engari ko te maka momo e tino taunakitia ana mo te mana taumaha.
  • java.lang.IndexOutOfBoundsException Ka taea te hopu inaianei ma te whakamahi i te karaehe rereke IndexError ina uru ana ki nga huānga java.util.List.

Source: opennet.ru

Tāpiri i te kōrero