JPype 1.0 izlaišana, bibliotēka, lai piekļūtu Java klasēm no Python.

Pieejams slāņa izlaišana JPype 1.0, kas ļauj Python lietotnēm nodrošināt pilnu piekļuvi Java valodas bibliotēku klasēm. Izmantojot JPype, Python var izmantot Java specifiskās bibliotēkas, izveidojot hibrīdas lietotnes, kas apvieno gan Java, gan Python kodu. Atšķirībā no Jython, integrācija ar Java tiek panākta nevis, izveidojot Python versiju JVM, bet gan, sadarbojoties abām virtuālajām mašīnām, izmantojot kopīgu atmiņu. Ieteiktais pieejas veids ļauj ne tikai sasniegt labu veiktspēju, bet arī nodrošina piekļuvi visām CPython un Java bibliotēkām. Projekta kods tiek izplatīts ir licencēts saskaņā ar Apache 2.0.

Galvenās izmaiņas:

  • JChar tiek atbalstīts kā atgriežamais tips. Saskaņotības nolūkos JChar ir mantojis no 'str' un īsteno netiešo konversiju uz 'int'. Tāpēc tas iziet pārbaudes līgumos. Taču tas nozīmē, ka tas vairs netiek uzskatīts par skaitļu tipu Python, un tādējādi isinstance(c, int) prasa vērtību False, kas atbilst Java tipu konversijas noteikumiem.
  • Ir ieviests operators Java tipa Type@obj konvertēšanai (@ — tas ir Python operators iekšējām reizēm, ko Java neizmanto).
  • Tika pievienota anotācija Java masīvu izveidei. Type[s1][s2][s3] fiksēta lieluma masīviem, Type[:][:][:] masīviem, kas tiks izveidoti vēlāk.
  • @FunctionalInterface ļauj izveidot Java funkcijas no Python objektiem ar __call__.
  • Tika noņemti novecojušie JIterator, JException izmantošana kā fabriku, get_default_jvm_path un jpype.reflect.
  • Noklusējuma iestatījumā nav notiek Java virkņu konversija uz Python virknēm.
  • Python ir atzinusi '.__int__' kā pret ieteicamo, tāpēc netiešās pārvērtības starp veseliem un peldošiem punktiem radīs TypeError.
  • JException izmantošana ir pasludināta par novecojušu. Lai noķertu visas izņēmumus vai pārbaudītu, vai objekts ir Java izņēmuma tips, jāizmanto java.lang.Throwable.
  • Java izņēmumu kaskādes cēloņi tagad tiek atspoguļoti Python steka kadros.
  • JString izmantošana ir pasludināta par novecojušu. Lai izveidotu Java virkni vai pārbaudītu, vai objekts ir Java virknes tips, izmantojiet java.lang.String.
  • Java klasēs ir atjaunināti repr metodes.
  • java.util.List ievēro līgumus par collections.abc.Sequence un collections.abc.MutableSequence.
  • java.util.Collection izpilda līgumu par collections.abc.Collection.
  • Java klases ir slēgtas un ierakstīs TypeError, ja tās mēģinās paplašināt no Python.
  • Control-C apstrāde notiek uzmanīgi. Iepriekšējās versijas avarēja, kad Java apstrādāja Control-C signālu, jo tās pabeidza Java izsaukuma laikā. Tagad JPype izveidos InterruptedException, kad atgriezīsies no Java. Control-C netiks izmests no lielām Java procedūrām, kā tas ir īstenots pašlaik, jo Java tam nav īpašas līdzekļa.

Tika izveidots labojuma izlaišana 1.0.1, kurā ir veiktas izmaiņas, lai apietu problēmas ar Python 3.8.4 izlaišanu. Python mainīja loģiku attiecībā uz «__setattr__» izmantošanu «object» un «type», novēršot tās izmantošanu, lai mainītu radītās klases. Vēl bija atbildība par kļūdu pārbaudi deleģēta no «__setattr__» metodes, tāpēc dažām pieņemamības pārbaudēm izņēmumu veidiem jābūt attiecīgi atjauninātiem.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster