Sgaoileadh JPype 1.0, leabharlannan airson faighinn gu clasaichean Java bho Python

Ri fhaighinn sgaoileadh còmhdach JPipe 1.0, a leigeas le tagraidhean Python làn chothrom fhaighinn air leabharlannan clas sa chànan Java. Le JPype bho Python, faodaidh tu leabharlannan sònraichte Java a chleachdadh gus tagraidhean tar-chinealach a chruthachadh a bhios a ’cothlamadh còd Java agus Python. Eu-coltach ri Jython, tha amalachadh le Java air a choileanadh chan ann tro bhith a’ cruthachadh tionndadh Python airson an JVM, ach tro eadar-obrachadh aig ìre an dà inneal brìgheil a’ cleachdadh cuimhne co-roinnte. Tha an dòigh-obrach a thathar a’ moladh a’ ceadachadh chan ann a-mhàin deagh choileanadh a choileanadh, ach tha e cuideachd a’ toirt cothrom air a h-uile leabharlann CPython agus Java. Còd a ' phròiseact air a sgaoileadh le le cead fo Apache 2.0.

Atharraichean mòra:

  • Tha taic ri JChar mar sheòrsa tilleadh. Airson co-fhreagarrachd, tha JChar a 'sealbhachadh bho "str" ​​​​agus a' cur an gnìomh tionndadh inntinneach gu "int". Mar sin, bidh e a’ dol seachad air sgrùdaidhean ann an cùmhnantan. Ach tha seo a’ ciallachadh nach eilear ga mheas mar sheòrsa àireamhach ann am Python agus mar sin tha instance (c, int) a’ measadh gu meallta, a tha co-chòrdail ri riaghailtean tionndaidh seòrsa Java.
  • Chaidh gnìomhaiche a thoirt a-steach gus seòrsa Java a thilgeil, Type@obj (tha @ na ghnìomhaiche Python airson toradh a-staigh; chan eil fear aig Java).
  • Comharradh air a chur ris airson cruthachadh arrays Java. Seòrsa [s1] [s2] [s3] airson arrays meud stèidhichte, Seòrsa [:][:][:] airson arrays a thèid a chruthachadh nas fhaide air adhart.
  • Leigidh @FunctionalInterface leat luchd-gnìomh Java a chruthachadh bho nithean Python le __call__.
  • Thoir air falbh JIterator gun mholadh, cleachdadh JException mar fhactaraidh, get_default_jvm_path agus jpype.reflect.
  • Gu gnàthach, chan eil sreangan Java air an tionndadh gu sreathan Python.
  • Tha Python air “__int__” a leigeil sìos, agus mar sin bheir casgan so-thuigsinn eadar seòrsaichean integer agus puing-fleòdraidh a TypeError.
  • Cha deach cleachdadh JException a mholadh. Gus a h-uile eisgeachd a ghlacadh, no dèanamh cinnteach gur e seòrsa eisgeachd Java a th’ ann an nì, cleachd java.lang.Throwable.
  • Tha adhbharan cascadaidh eisgeachdan Java a-nis rim faicinn ann am frèaman stac Python.
  • Cha deach JString a mholadh. Gus sreang Java a chruthachadh, no gus dèanamh cinnteach gu bheil nì den t-seòrsa sreang Java, cleachd java.lang.String.
  • Chaidh dòighean ath-riochdachaidh ùrachadh ann an clasaichean Java.
  • bidh java.util.List a’ coileanadh chùmhnantan airson cruinneachaidhean.abc.Seicheamh agus cruinneachaidhean.abc.MutableSequence.
  • Bidh java.util.Collection a’ coileanadh a’ chùmhnant airson cruinneachaidhean.abc.Collection.
  • Tha clasaichean Java prìobhaideach agus tilgidh iad TypeError nuair a thèid a leudachadh bho Python.
  • Làimhseachadh Control-C gu faiceallach. Bidh dreachan roimhe a’ tubaist nuair a bhios Java a’ pròiseasadh comharra Control-C oir cuiridh iad crìoch air Java rè a’ ghairm. Tilgidh JPype a-nis InterruptedException nuair a thilleas e bho Java. Cha tilg Control-C a-mach modhan mòra Java mar a tha iad air an cur an gnìomh an-dràsta, leis nach eil inneal sònraichte aig Java airson seo.

An uairsin, chaidh foillseachadh ceartachaidh 1.0.1 a chruthachadh, a chuir atharrachaidhean ris gus obrachadh timcheall air duilgheadasan le sgaoileadh Python 3.8.4. Tha Python air an loidsig atharrachadh a thaobh cleachdadh “__setattr__” airson “rudeigin” agus “seòrsa”, a’ cur casg air bho bhith air a chleachdadh gus clasaichean stèidhichte atharrachadh. Chaidh sgrùdadh mhearachdan a thiomnadh bhon dòigh “__setattr__” cuideachd, agus mar sin bu chòir na seòrsaichean eisgeachd ann an cuid de sgrùdaidhean iomchaidheachd ùrachadh a rèir sin.

Source: fosgailtenet.ru

Cuir beachd ann