JPype 0.7.2 väljaanne, raamatukogu Java klassidele pääsemiseks Pythonis

Saadaval vahekihtide väljalaskmine JPype 0.7.2, mis võimaldab Python rakenduste täisühendust Java keele klasside teekidega. JPype abil saab Pythonis kasutada Java spetsiifilisi teeke, luues hübriidrakendusi, mis ühendavad Java ja Python koodi. Erinevalt Jython'ist saavutatakse Java integreerimine mitte JVM jaoks Python variandi loomise kaudu, vaid mõlema virtuaalmasina vahelise koostöö kaudu, kasutades jagatud mälu. Pakutud lähenemine võimaldab saavutada head jõudlust ja pakub juurdepääsu kõikidele CPython ja Java teekidele. Projekti kood levitatakse lisensiga Apache 2.0.

Peamised muudatused:

  • C++ ja Java koodis visatud erandid pakuvad nüüd erandi tekkimisel Pythonis erandi jälje. Seega ei pea erandi jälje saamiseks nüüd enam stacktrace() kutsuma.
  • Kutsu tagasiandmise kiirus on kolmandiku võrra suurenenud.
  • Edastamise kiirus on oluliselt (korrutistega) suurenemiseks
    numpy mitmemõõtmeliste massiivide puutuda. Mitmemõõtmelised primitiivid edastavad ainult lugemiseks mõeldud koopiaid, mis on loodud JVM-is pideva C paigutusega.
  • Kõik sisemised komponendid on asendatud CPython'i rakendustega ning muutujad __javaclass__, __javavalue__ ja __javaproxy__
    on eemaldatud. Kõigile CPython'i klassidest pärinevatele tüüpidele on lisatud eriline Java pesa. Kõik privaatset tabelid on edasiviidud CPython'i. Java tüübid peavad nüüd pärima meta-klassi JClass, mis kasutab tüüpi pesasid. Python'i põhiklasside segamisi ei lubata. Tüübid Object, Proxy, Exception, Number ja Array pärinevad otse CPython'i sisemistest rakendustest.
  • Vigade jälgimist ja töötlemist on parandatud.
  • Massiivide lõikeid töödeldakse nüüd kui vaateid, mis toetavad algse massiivi tagasi kirjutamist, nagu numpy massiiv. Lõikudele on tagatud toe säästmine ja võrdsed väärtused, kasutades samasugust (slice(start, stop, step)).
  • Massiivides on rakendatud toetust „__reversed__“.
  • Java massiivides on tagatud API memoryview tugi ja eemaldatud sõltuvus numpy-st massiivi sisu edastamiseks.
  • Numpy ei ole enam sõltuvus (extra) ja mälu edastamine numpy-s on saadaval ilma numpy toetava kompileerimiseta.
  • JInterface on vormistatud meta-klassi kujul. Kasutage isinstance(cls, JInterface) liideste kontrollimiseks.
  • Vaikimisi importides on lisatud puuduolevad TLD-d "mil", "net" ja "edu".
  • Käivitamisel on parandatud vigade teated UnsupportedClassVersion kohta.
  • java.util.Map tagastab nüüd KeyErrori, kui elementi ei leita. Nullväärtused tagastavad endiselt None, nagu oodata. Kasutage get(), kui tühjad võtmed tuleb töödelda kui None.
  • java.util.Collection on eemaldatud, kuna sel on kummaline ülekoormus remove(Object) ja remove(int) Loendis. Kasutage Java meetodit remove() algse Java käitumise saamiseks, kuid tüübi tõlgendamine on rangelt soovitatav ülekoormuse haldamiseks.
  • java.lang.IndexOutOfBoundsException nüüd saab kinni püüda IndexError erandikliassi abil, kui juurdepääsete java.util.List elementidele.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster