Rilaxx ta' JPype 1.0, libreriji għall-aċċess għall-klassijiet Java minn Python

Disponibbli rilaxx saff JPype 1.0, li jippermettilek torganizza aċċess sħiħ tal-applikazzjonijiet Python għal libreriji tal-klassi Java. B'JPype minn Python, tista' tuża libreriji speċifiċi għal Java biex toħloq applikazzjonijiet ibridi li jgħaqqdu l-kodiċi Java u Python. B'differenza minn Jython, l-integrazzjoni ma 'Java tinkiseb mhux permezz tal-ħolqien ta' varjant Python għall-JVM, iżda permezz ta 'interazzjoni fil-livell taż-żewġ magni virtwali li jużaw memorja kondiviża. L-approċċ propost jippermetti mhux biss li jinkiseb prestazzjoni tajba, iżda jipprovdi wkoll aċċess għal-libreriji kollha CPython u Java. Kodiċi tal-proġett imqassma minn liċenzjat taħt Apache 2.0.

Bidliet ewlenin:

  • JChar huwa appoġġjat bħala tip ta 'ritorn. Għall-kompatibilità, JChar jiret minn "str" ​​​​u jimplimenta konverżjoni impliċita għal "int". Għalhekk, jgħaddi kontrolli fil-kuntratti. Iżda dan ifisser li m'għadux meqjus bħala tip numeriku f'Python u għalhekk isinstance(c, int) tevalwa għal Falza, li hija konsistenti mar-regoli ta 'konverżjoni tat-tip Java.
  • Ġie introdott operatur biex jitfa’ tip Java, Type@obj (@ huwa operatur Python għal prodott intern; Java m’għandux wieħed).
  • Miżjud notazzjoni għall-ħolqien ta 'arrays Java. Tip[s1][s2][s3] għal arrays ta' daqs fiss, Tip[:][:][:] għal arrays li se jinħolqu aktar tard.
  • @FunctionalInterface jippermettilek toħloq funtors Java minn oġġetti Python b'__call__.
  • Tneħħa JIterator deprecated, użu ta' JException bħala fabbrika, get_default_jvm_path u jpype.reflect.
  • B'mod awtomatiku, strings Java mhumiex konvertiti għal strings Python.
  • Python deprecated "__int__", għalhekk casts impliċiti bejn integer u floating-point tipi se jipproduċu TypeError.
  • L-użu ta' JException ġie deprecato. Biex taqbad l-eċċezzjonijiet kollha, jew tivverifika li oġġett huwa tip ta' eċċezzjoni Java, uża java.lang.Throwable.
  • Kawżi kaskati ta 'eċċezzjonijiet Java issa huma riflessi f'frejms tal-munzell Python.
  • JString ġie deprecated. Biex toħloq string Java, jew biex tivverifika li oġġett huwa tat-tip Java string, uża java.lang.String.
  • Il-metodi Repr ġew aġġornati fil-klassijiet Java.
  • java.util.List tesegwixxi kuntratti għal collections.abc.Sequence u collections.abc.MutableSequence.
  • java.util.Collection jesegwixxi l-kuntratt għal collections.abc.Collection.
  • Il-klassijiet Java huma privati ​​u se jarmu TypeError meta estiżi minn Python.
  • Immaniġġja l-Kontroll-C bir-reqqa. Verżjonijiet preċedenti jiġġarrfu meta Java tipproċessa sinjal Control-C minħabba li se jtemmu Java waqt is-sejħa. JPype issa se tarmi InterruptedException meta jirritorna minn Java. Control-C mhux se jarmi proċeduri Java kbar kif implimentati bħalissa, peress li Java m'għandux għodda speċjali għal dan.

Sussegwentement, inħoloq rilaxx korrettiv 1.0.1, li żied bidliet biex jaħdem madwar problemi bir-rilaxx Python 3.8.4. Python biddel il-loġika fir-rigward tal-użu ta' "__setattr__" għal "oġġett" u "tip", u waqqafha milli tintuża biex timmodifika klassijiet derivati. Il-verifika tal-iżbalji ġiet iddelegata wkoll mill-metodu "__setattr__", għalhekk it-tipi ta' eċċezzjoni f'xi kontrolli tal-adegwatezza għandhom jiġu aġġornati kif xieraq.

Sors: opennet.ru

Żid kumment