JPype 0.7.2 کی ریلیز، Python سے جاوا کلاسز تک رسائی کے لیے لائبریریاں

دستیاب پرت کی رہائی JPype 0.7.2، جو Python ایپلی کیشنز کو جاوا زبان میں کلاس لائبریریوں تک مکمل رسائی کی اجازت دیتا ہے۔ Python سے JPype کے ساتھ، آپ جاوا اور Python کوڈ کو یکجا کرنے والی ہائبرڈ ایپلی کیشنز بنانے کے لیے جاوا کے لیے مخصوص لائبریریوں کا استعمال کر سکتے ہیں۔ Jython کے برعکس، جاوا کے ساتھ انضمام JVM کے لیے Python ویرینٹ بنانے کے ذریعے نہیں، بلکہ مشترکہ میموری کا استعمال کرتے ہوئے دونوں ورچوئل مشینوں کی سطح پر بات چیت کے ذریعے حاصل کیا جاتا ہے۔ مجوزہ نقطہ نظر نہ صرف اچھی کارکردگی کو حاصل کرنے کی اجازت دیتا ہے بلکہ تمام CPython اور Java لائبریریوں تک رسائی بھی فراہم کرتا ہے۔ پروجیکٹ کوڈ نے بانٹا اپاچی 2.0 کے تحت لائسنس یافتہ۔

اہم تبدیلیاں:

  • C++ اور جاوا کوڈ میں ڈالی گئی مستثنیات اب ایک استثناء اسٹیک فراہم کرتی ہیں جب Python کوڈ میں کوئی استثناء ہوتا ہے۔ اس طرح، استثنائی اسٹیک کے بارے میں معلومات حاصل کرنے کے لیے، آپ کو اب اسٹیک ٹریس() کو کال کرنے کی ضرورت نہیں ہے۔
  • کال واپسی کی رفتار تین گنا کر دی گئی ہے۔
  • نمایاں طور پر (طاقت کے حکم سے) ٹرانسمیشن کی رفتار میں اضافہ ہوا۔
    کثیر جہتی صفوں کے بے شمار بفرز۔ کثیر جہتی پرائمیٹو JVM کے اندر ایک مربوط C لے آؤٹ کے ساتھ تخلیق کردہ صرف پڑھنے والی کاپیاں پاس کرتے ہیں۔

  • تمام بے نقاب انٹرنلز کو CPython کے نفاذ کے ساتھ تبدیل کر دیا گیا ہے، اور علامتیں __javaclass__، __javavalue__ اور __javaproxy__
    حذف کر دیا گیا CPython کی تمام اقسام میں ایک وقف جاوا سلاٹ شامل کیا گیا ہے جو jpype کلاس کی اقسام سے وراثت میں ملتی ہیں۔ تمام نجی ٹیبلز کو CPython میں منتقل کر دیا گیا ہے۔ جاوا کی اقسام کو اب JClass میٹا کلاس سے وراثت میں ملنا چاہیے، جو قسم کے سلاٹ استعمال کرتا ہے۔ Python بیس کلاسز کے لیے مکسنس کی اجازت نہیں ہے۔ اقسام آبجیکٹ، پراکسی، استثنا، نمبر اور صف ہیں اور براہ راست CPython کے اندرونی نفاذ سے وراثت میں ملتی ہیں۔

  • بہتر ٹریسنگ اور استثنیٰ ہینڈلنگ۔
  • ارے سلائسز کو اب ویوز کے طور پر پروسیس کیا جاتا ہے جو اصل میں لکھنے کی حمایت کرتے ہیں، جیسے کہ ایک numpy array۔ ارے سلائسنگ کے لیے، قدموں میں اقدار کو ترتیب دینے اور بازیافت کرنے کے لیے سپورٹ فراہم کی جاتی ہے (سلائس (شروع، روک، قدم))۔
  • Arrays اب "__reversed__" کو سپورٹ کرتی ہے۔
  • جاوا ارے اب میموری ویو API کو سپورٹ کرتے ہیں اور بفر کے مواد کو پاس کرنے کے لیے numpy پر انحصار کو ختم کرتے ہیں۔
  • Numpy اب انحصار (اضافی) نہیں ہے اور numpy میں میموری کی منتقلی numpy سپورٹ کے ساتھ مرتب کیے بغیر دستیاب ہے۔
  • JInterface کو میٹا کلاس کے طور پر ڈیزائن کیا گیا ہے۔ انٹرفیس کو چیک کرنے کے لیے isinstance (cls، JInterface) کا استعمال کریں۔
  • غائب TLDs "mil"، "net" اور "edu" کو پہلے سے طے شدہ درآمدات میں شامل کیا گیا۔
  • آغاز کے دوران UnsupportedClassVersion کے لیے بہتر خرابی کے پیغامات۔
  • java.util.Map اب ایک KeyError پھینک دیتا ہے اگر عنصر نہیں ملتا ہے۔ وہ قدریں جو null ہیں پھر بھی واپس نہیں آتیں جیسا کہ توقع ہے۔ اگر آپ خالی کیز کو کوئی نہیں سمجھنا چاہتے ہیں تو get() کا استعمال کریں۔
  • java.util.Collection کو ہٹا دیا گیا کیونکہ یہ فہرستوں پر ریمو(آبجیکٹ) اور ہٹانے(int) کے درمیان عجیب طور پر اوورلوڈ ہوتا ہے۔ جاوا کے مقامی رویے تک رسائی کے لیے Java remove() طریقہ استعمال کریں، لیکن اوورلوڈ کنٹرول کے لیے ٹائپ کاسٹنگ کی سختی سے سفارش کی جاتی ہے۔
  • java.lang.IndexOutOfBoundsException اب java.util.List عناصر تک رسائی حاصل کرتے وقت IndexError استثناء کلاس کا استعمال کرتے ہوئے پکڑا جا سکتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں