Ang pag-update sa JPype 1.0.2, mga librarya alang sa pag-access sa mga klase sa Java gikan sa Python

Magamit bag-ong pagpagawas sa interlayer JPype 1.0.2, nga nagtugot sa mga aplikasyon sa Python nga adunay hingpit nga pag-access sa mga librarya sa klase sa pinulongang Java. Uban sa JPype gikan sa Python, mahimo nimong gamiton ang mga librarya nga espesipiko sa Java aron makahimo og hybrid nga mga aplikasyon nga naghiusa sa Java ug Python code. Dili sama sa Jython, ang integrasyon sa Java makab-ot dili pinaagi sa paghimo ug Python nga variant para sa JVM, kondili pinaagi sa interaksyon sa lebel sa duha ka virtual machine gamit ang shared memory. Ang gisugyot nga pamaagi nagtugot dili lamang sa pagkab-ot sa maayo nga performance, apan naghatag usab og access sa tanang CPython ug Java nga mga librarya. Kodigo sa proyekto giapod-apod sa lisensyado ubos sa Apache 2.0.

Panguna nga mga pagbag-o:

  • Ang usa ka cache gidugang sa mga tawag sa pamaagi aron malikayan ang resolusyon sa sobra nga gibug-aton, nga makapamenos pag-ayo sa epekto sa pasundayag sa resolusyon sa pamaagi, labi na kung ang parehas nga overload gitawag sa daghang mga higayon, sama sa panahon sa pagpatuman sa loop.
  • Gikan sa 4 hangtod 100 ka beses, depende sa tipo sa datos, ang pagbalhin sa mga lista, tuple ug buffer sa mga arrays sa Java primitives gipadali. Ang pagkakabig naggamit sa na-optimize nga pagproseso sa mga in-memory buffer, imbes sa Sequence API. Kung makit-an ang usa ka Python buffer, ang una nga elemento ra ang susihon alang sa pagkakabig, tungod kay kini nga mga buffer managsama.
  • Pagproseso sa mga operasyon sa pagsira (gipatuman sa JPype 1.0.0, apan gilaktawan sa dihang nangandam sa changelog). Ang JPype karon nagtawag sa JVM shutdown routine, nga misulay sa paggawas nga maayo. Nagdala kini sa daghang mga pagbag-o sa pamatasan. Ang dili-background nga mga hilo (proxy nga mga tawag) mahimo na karon nga magpadayon nga bukas ang JVM hangtod nga kini mahuman. Ang mga proxy nga tawag magproseso sa pagsira hangtod makompleto ang tawag, apan makadawat usa ka mensahe sa pag-abort. Ang mga file karon gisirhan sa husto ug gi-flush sa disk kung ang mga thread nagdumala sa eksepsiyon sama sa gipaabut. Ang mga kaw-it sa pagpanglimpyo sa kapanguhaan ug mga finalizer gipatuman. Kung ang mga hilo gipatungha, ang mga kaw-it sa AtExit gitawag. Pinaagi sa daemon, ang awtomatikong pagdugtong sa thread gipatuman kung gigamit ang JVM gikan sa Python. Ang buggy code nga dili makadumala sa hustong paagi sa paglimpyo sa hilo lagmit magbitay kung ang pagsira gipatuman. Ang dugang nga dokumentasyon makita sa manwal sa paggamit.
  • Ang wrapper alang sa Throwable nakadawat og wrapper alang sa Object imbes sa gipaabot nga resulta, nga misangpot sa katingad-an nga mga pagkakabig gikan sa mga klase sa Python.
  • Giayo ang typo sa import system nga miresulta sa sayop nga 'Β»jnameΒ» not found'.
  • Siguruha nga ang "^C" gipasiugda sa husto sa KeyboardInterrupt.
  • Naayo ang problema sa mga simbolo sukad sa Python 3.5.3. Ang PySlice_Unpack gipaila sa sunod nga pagpagawas sa patch (3.5.4) ug dili na unta gamiton.
  • Giayo ang bug sa numpy.linalg.inv nga misangpot sa pagkahagsa. Ang isyu nasubay sa komunikasyon sa thread tali sa JVM ug pipila ka numpy flavors. Ang gisugyot nga solusyon mao ang pagtawag sa numpy.linalg.inv sa dili pa magsugod ang JVM.

Source: opennet.ru

Idugang sa usa ka comment