JPype 1.0 جو رليز، پٿون مان جاوا ڪلاس تائين رسائي لاءِ لائبريريون

دستياب interlayer ڇڏڻ JPype 1.0، جيڪو توهان کي اجازت ڏئي ٿو Python ايپليڪيشنن جي مڪمل رسائي کي جاوا ڪلاس لائبريرين تائين منظم ڪرڻ. Python مان JPype سان، توھان ھائبرڊ ايپليڪيشنون ٺاھڻ لاءِ جاوا-مخصوص لائبريريون استعمال ڪري سگھو ٿا جيڪي جاوا ۽ پٿون ڪوڊ کي گڏ ڪن ٿيون. Jython جي برعڪس، جاوا سان انضمام حاصل ڪيو ويو آهي نه JVM لاءِ پٿون ويرينٽ ٺاهڻ جي ذريعي، پر ٻنهي ورچوئل مشينن جي سطح تي گڏيل ميموري استعمال ڪندي. تجويز ڪيل طريقي سان نه رڳو سٺي ڪارڪردگي حاصل ڪرڻ جي اجازت ڏئي ٿي، پر سڀني CPython ۽ Java لائبريرين تائين رسائي پڻ فراهم ڪري ٿي. پروجيڪٽ ڪوڊ طرفان ورهايل Apache 2.0 تحت لائسنس يافته.

مکيه تبديليون:

  • JChar واپسي جي قسم جي طور تي سپورٽ ڪئي وئي آهي. مطابقت لاء، JChar "str" ​​مان نڪتل آهي ۽ "int" ۾ هڪ غير معمولي تبديلي لاڳو ڪري ٿو. تنهن ڪري، اهو معاهدن ۾ چيڪ پاس ڪري ٿو. پر هن جو مطلب اهو آهي ته اهو هاڻي Python ۾ عددي قسم نه سمجهيو ويندو آهي، ۽ تنهنڪري isinstance(c، int) False جو اندازو لڳائي ٿو، جيڪو جاوا جي قسم جي تبديلي جي ضابطن سان مطابقت رکي ٿو.
  • هڪ آپريٽر متعارف ڪرايو ويو آهي ڪاسٽ ڪرڻ لاءِ جاوا جي قسم Type@obj (@ - هي هڪ پائٿون آپريٽر آهي اندروني پراڊڪٽ لاءِ، اهو جاوا ۾ موجود ناهي).
  • جاوا صفن ٺاهڻ لاءِ شامل ڪيل نوٽشن. ٽائپ ڪريو [s1] [s2] [s3] مقرر ڪيل سائزن جي صفن لاءِ، ٽائيپ[:][:][:] بعد ۾ ٺاھڻ لاءِ.
  • @FunctionalInterface توهان کي اجازت ڏئي ٿو جاوا فنڪٽرز ٺاهڻ جي Python شين مان __call__ سان.
  • ختم ٿيل JIterator، JException فيڪٽري جو استعمال، get_default_jvm_path ۽ jpype.reflect.
  • ڊفالٽ طور، Java strings Python strings ۾ تبديل نه ٿيون ٿين.
  • Python "__int__" کي ختم ڪري ڇڏيو آهي، تنهنڪري انٽيجر ۽ فلوٽنگ پوائنٽ جي قسمن جي وچ ۾ غير معمولي ڪاسٽ هڪ TypeError پيدا ڪندا.
  • JException جو رد ٿيل استعمال. سڀني استثنان کي پڪڙڻ لاءِ، يا چيڪ ڪرڻ لاءِ ته ڪا شئي جاوا استثناءَ جو قسم آهي، java.lang.Throwable پٺيان.
  • Cascading Java استثنا سبب هاڻي پٿون اسٽيڪ فريم ۾ ظاهر ٿيندا آهن.
  • JString جو رد ٿيل استعمال. جاوا اسٽرنگ ٺاهڻ لاءِ، يا چيڪ ڪريو ته ڪا شئي جاوا اسٽرنگ جي آهي، استعمال ڪريو java.lang.String.
  • جاوا ڪلاسز ۾ ريپ جا طريقا اپڊيٽ ڪيا ويا آھن.
  • java.util.List collections.abc.Sequence ۽ collections.abc.MutableSequence لاءِ معاهدن کي پورو ڪري ٿو.
  • java.util.Collection مجموعي.abc.Collection جي معاهدي کي پورو ڪري ٿو.
  • جاوا ڪلاس خانگي آهن ۽ هڪ ٽائپ ايرر اڇلائي ڇڏيندو جڏهن پٿون کان وڌايو ويندو.
  • ڪنٽرول-سي کي صاف طور تي سنڀاليو. پوئين ورزن حادثا ٿي ويندا آهن جڏهن جاوا هڪ ڪنٽرول-سي سگنل کي پروسيس ڪري ٿو، جيئن اهي ڪال دوران جاوا کي ختم ڪري ڇڏيندا. JPype ھاڻي ھڪڙو InterruptedException اڇلائي ڇڏيندو جڏھن اھو جاوا مان موٽندو. ڪنٽرول-سي وڏي جاوا جي روٽين کي ختم نه ڪندو جيئن اهو هن وقت ڪري ٿو، ڇاڪاڻ ته جاوا وٽ ان لاءِ ڪا خاص سهولت ناهي.

پوءِ 1.0.1 جو هڪ پيچ رليز ٺاهيو ويو، جنهن پٿون 3.8.4 جي ڇڏڻ سان مسئلن جي چوڌاري ڪم ڪرڻ لاءِ تبديليون شامل ڪيون. Python "Object" ۽ "type" لاءِ "__setattr__" جي استعمال جي حوالي سان منطق تبديل ڪئي، ان کي حاصل ڪيل طبقن کي تبديل ڪرڻ لاءِ استعمال ٿيڻ کان روڪيو. انهي سان گڏ، غلطي جي چڪاس کي "__setattr__" طريقي جي حوالي ڪيو ويو آهي، تنهنڪري ڪجهه صفائي جي چڪاس ۾ استثناء جي قسمن کي مطابق اپڊيٽ ڪرڻ جي ضرورت آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو