Útgáfa af JPype 1.0, bókasöfnum til að fá aðgang að Java flokkum frá Python

Laus losun millilaga JPype 1.0, sem gerir þér kleift að skipuleggja fullan aðgang Python forrita að Java bekkjabókasöfnum. Með JPype frá Python geturðu notað Java-sérstök bókasöfn til að búa til blendingaforrit sem sameina Java og Python kóða. Ólíkt Jython næst samþætting við Java ekki með því að búa til Python afbrigði fyrir JVM, heldur með samskiptum á stigi beggja sýndarvélanna sem nota sameiginlegt minni. Fyrirhuguð nálgun gerir ekki aðeins kleift að ná góðum árangri heldur veitir hún einnig aðgang að öllum CPython og Java bókasöfnum. Verkefnakóði dreift af leyfi samkvæmt Apache 2.0.

Helstu breytingar:

  • JChar er stutt sem skilategund. Fyrir samhæfni er JChar dregið af „str“ og útfærir óbeina umbreytingu í „int“. Þess vegna stenst það athuganir í samningum. En þetta þýðir að það er ekki lengur talið vera töluleg tegund í Python, og því er isinstance(c, int) metið á False, sem er í samræmi við tegundabreytingarreglur Java.
  • Búið er að kynna rekstraraðila til að varpa Java gerðinni Type@obj (@ - þetta er Python rekstraraðili fyrir innri vöruna, hún er ekki til í Java).
  • Bætt við ritgerð til að búa til Java fylki. Tegund[s1][s2][s3] fyrir fylki af föstum stærðum, Tegund[:][:][:] fyrir fylki sem á að búa til síðar.
  • @FunctionalInterface gerir þér kleift að búa til Java virka úr Python hlutum með __call__.
  • Fjarlægði úreltan JIterator, JException verksmiðjunotkun, get_default_jvm_path og jpype.reflect.
  • Sjálfgefið er að Java strengjum er ekki breytt í Python strengi.
  • Python hefur úrelt „__int__“, þannig að óbein útsending á milli heiltalna og fljótandi punktategunda mun framleiða TypeError.
  • Úrelt notkun JException. Til að ná öllum undantekningum, eða til að athuga hvort hlutur sé Java undantekningartegund, fylgir java.lang.Throwable.
  • Cascading Java undantekningar orsakir endurspeglast nú í Python stafla ramma.
  • Úrelt notkun JString. Til að búa til Java streng, eða athuga hvort hlutur sé af gerðinni Java strengur, notaðu java.lang.String.
  • Repr aðferðir hafa verið uppfærðar í Java flokkum.
  • java.util.List uppfyllir samninga um collections.abc.Sequence og collections.abc.MutableSequence.
  • java.util.Collection uppfyllir samninginn um fyrir collections.abc.Collection.
  • Java flokkar eru einkatímar og munu henda TypeError þegar þeir eru framlengdir frá Python.
  • Meðhöndla Control-C snyrtilega. Fyrri útgáfur hrynja þegar Java meðhöndlar Control-C merki, þar sem þær munu loka Java meðan á símtalinu stendur. JPype mun nú kasta InterruptedException þegar það kemur aftur frá Java. Control-C mun ekki reka út stórar Java rútínur eins og það gerir núna, þar sem Java hefur ekki sérstaka aðstöðu fyrir það.

Plástraútgáfa af 1.0.1 var síðan mynduð, sem bætti við breytingum til að vinna í kringum vandamál með útgáfu Python 3.8.4. Python breytti rökfræðinni varðandi notkun „__setattr__“ fyrir „hlut“ og „gerð“ og kom í veg fyrir að það væri notað til að breyta afleiddum flokkum. Einnig hefur villueftirlit verið úthlutað frá "__setattr__" aðferðinni, þannig að undantekningartegundirnar í sumum geðheilsukönnunum þarf að uppfæra í samræmi við það.

Heimild: opennet.ru

Bæta við athugasemd