Release av JPype 1.0, bibliotek för Ätkomst av Java-klasser frÄn Python

TillgÀngliga lagerslÀpp JPype 1.0, som tillÄter Python-applikationer att ge full Ätkomst till Java-klassbibliotek. Med JPype kan du anvÀnda Java-specifika bibliotek frÄn Python, skapa hybridapplikationer som blandar Java och Python-kod. Till skillnad frÄn Jython uppnÄs integrering med Java inte genom att skapa en Python-variant för JVM, utan genom att interagera pÄ nivÄn för bÄda virtuella maskinerna med delat minne. Det föreslagna tillvÀgagÄngssÀttet möjliggör inte bara bra prestanda, utan ger ocksÄ tillgÄng till alla CPython- och Java-bibliotek. Projektkod levererad av licensierad under Apache 2.0.

HuvudÀndringar:

  • JChar stöds som en returtyp. För kompatibilitet Ă€rver JChar frĂ„n "str" ​​och implementerar en implicit konvertering till "int". DĂ€rför klarar den kontraktskontroller. Detta innebĂ€r dock att den inte lĂ€ngre betraktas som en numerisk typ i Python, och dĂ€rför utvĂ€rderas isinstance(c, int) till False, vilket överensstĂ€mmer med Javas regler för typkonvertering.
  • En operator för att casta en Java-typ, Type@obj, har introducerats (@ Ă€r Pythons operator för innerprodukt, vilken inte finns i Java).
  • Lade till notation för att skapa Java-arrayer. Skriv[s1][s2][s3] för arrayer med fast storlek, skriv[:][:][:] för arrayer som skapas senare.
  • @FunctionalInterface lĂ„ter dig skapa Java-funktionorer frĂ„n Python-objekt med __call__.
  • Tog bort den förĂ„ldrade JIteratorn, anvĂ€ndningen av JException som en fabrik, get_default_jvm_path och jpype.reflect.
  • Som standard konverteras inte Java-strĂ€ngar till Python-strĂ€ngar.
  • Python har förĂ„ldrat "__int__", sĂ„ implicita omvandlingar mellan heltals- och flyttalstyper kommer att producera ett TypeError.
  • AnvĂ€ndningen av JException har förĂ„ldrats. För att fĂ„nga alla undantag eller kontrollera att ett objekt Ă€r av Java-undantagstyp, anvĂ€nd java.lang.Throwable.
  • Kaskadorsakar till Java-undantag Ă„terspeglas nu i Python-stackframes.
  • AnvĂ€ndningen av JString har förĂ„ldrats. För att skapa en Java-strĂ€ng eller kontrollera att ett objekt Ă€r av typen Java-strĂ€ng, anvĂ€nd java.lang.String.
  • Repr-metoder har uppdaterats i Java-klasser.
  • java.util.List uppfyller kontrakten för collections.abc.Sequence och collections.abc.MutableSequence.
  • java.util.Collection uppfyller kontraktet för collections.abc.Collection.
  • Java-klasser Ă€r privata och kommer att utlösa ett TypeError nĂ€r de utökas frĂ„n Python.
  • Control-C-hanteringen Ă€r nu korrekt. Tidigare versioner kraschade nĂ€r Java hanterade Control-C-signalen, eftersom de avslutade Java under anropet. Nu kommer JPype att kasta en InterruptedException nĂ€r den Ă„tervĂ€nder frĂ„n Java. Control-C kommer inte att kastas frĂ„n stora Java-procedurer, som det Ă€r implementerat för nĂ€rvarande, eftersom Java inte har en speciell mekanism för detta.

NÀsta utgÄva, 1.0.1, var en fix, som inkluderade Àndringar för att ÄtgÀrda problem med Python 3.8.4. Python Àndrade logiken för att anvÀnda "__setattr__" för "object" och "type", vilket förhindrade att det anvÀndes för att modifiera hÀrledda klasser. Felkontroll delegerades ocksÄ frÄn metoden "__setattr__", sÄ undantagstyper i vissa sanity-kontroller behövde uppdateras i enlighet dÀrmed.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster