JPype 0.7.2:n julkaisu, kirjastot Java-luokkien käyttämiseen Pythonista

Saatavilla kerroksen vapauttaminen JPype 0.7.2, jonka avulla Python-sovelluksilla on täysi pääsy Java-kielisten luokkakirjastoihin. Pythonin JPypen avulla voit käyttää Java-spesifisiä kirjastoja luodaksesi hybridisovelluksia, jotka yhdistävät Java- ja Python-koodin. Toisin kuin Jython, integraatio Javaan ei tapahdu luomalla Python-variantti JVM:lle, vaan vuorovaikutuksella molempien virtuaalikoneiden tasolla jaetun muistin avulla. Ehdotettu lähestymistapa ei mahdollista vain hyvän suorituskyvyn saavuttamista, vaan tarjoaa myös pääsyn kaikkiin CPython- ja Java-kirjastoihin. Projektin koodi jakelija lisensoitu Apache 2.0:lla.

Suurimmat muutokset:

  • C++- ja Java-koodissa heitettävät poikkeukset tarjoavat nyt poikkeuspinon, kun Python-koodissa tapahtuu poikkeus. Tämä tarkoittaa, että sinun ei enää tarvitse kutsua stacktrace()-funktiota poikkeuspinon tietojen saamiseksi.
  • Puheluiden paluunopeus on kolminkertaistunut.
  • Tiedonsiirtonopeus on kasvanut merkittävästi (suuruusluokkaa)
    NumPy-moniulotteisen taulukon puskurit. Moniulotteisille primitiiveille välitetään vain luku -tilassa olevia kopioita, jotka on luotu JVM:n sisällä yhtenäisellä C-asettelulla.
  • Kaikki paljastuneet sisäiset komponentit on korvattu CPython-toteutuksilla, ja symbolit __javaclass__, __javavalue__ ja __javaproxy__
    Poistettu. Kaikkiin jpype-luokkatyypeistä periytyviin CPython-tyyppeihin on lisätty oma Java-paikka. Kaikki yksityiset taulukot on siirretty CPythoniin. Java-tyyppien on nyt periydyttävä JClass-metaluokasta, joka käyttää tyyppipaikkoja. Pythonin perusluokkien miksinejä ei sallita. Object-, Proxy-, Exception-, Number- ja Array-tyypit perivät suoraan CPythonin sisäisistä toteutuksista.
  • Parannettu jäljitys ja poikkeusten käsittely.
  • Taulukkoviipaleita käsitellään nyt esityksinä, jotka tukevat alkuperäiseen kirjoittamista takaisin, kuten NumPy-taulukko. Taulukkoviipaleet tukevat nyt arvojen asettamista ja hakemista lisäyksin (slice(start, stop, step)).
  • Taulukot tukevat nyt "__reversed__".
  • Java-taulukot tukevat nyt memoryview-rajapintaa ja poistavat numpy-riippuvuuden puskurisisällön välittämisessä.
  • Numpy ei ole enää ylimääräinen riippuvuus, ja muistinsiirto numpyyn on saatavilla ilman kääntämistä numpy-tuella.
  • JInterface on toteutettu metaluokkana. Käytä isinstance(cls, JInterface)-funktiota rajapintojen tarkistamiseen.
  • Puuttuvat ylätason verkkotunnukset "mil", "net" ja "edu" on lisätty oletusarvoisiin tuonteihin.
  • Parannettu UnsupportedClassVersion-virheilmoituksia käynnistyksen aikana.
  • java.util.Map heittää nyt KeyError-virheen, jos elementtiä ei löydy. Null-arvot palauttavat edelleen odotetusti None-arvon. Käytä get()-funktiota, jos haluat käsitellä tyhjiä avaimia None-arvona.
  • Poistettu java.util.Collection, koska se ylikuormittuu oudosti remove(Object):n ja remove(int):n välillä listoissa. Käytä Javan remove()-metodia päästäksesi käsiksi natiiviin Javan toimintaan, mutta luokan casting-metodia suositellaan vahvasti ylikuormituksen hallitsemiseksi.
  • java.lang.IndexOutOfBoundsException voidaan nyt havaita IndexError-poikkeusten luokalla, kun käytetään java.util.List-listan elementtejä.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster