انتشار JPype 1.0، کتابخانه هایی برای دسترسی به کلاس های جاوا از پایتون

در دسترس رهاسازی لایه JPype 1.0، که به برنامه های پایتون اجازه می دهد تا به کتابخانه های کلاس در زبان جاوا دسترسی کامل داشته باشند. با JPype از پایتون، می‌توانید از کتابخانه‌های اختصاصی جاوا برای ایجاد برنامه‌های ترکیبی که کدهای جاوا و پایتون را ترکیب می‌کنند، استفاده کنید. برخلاف Jython، ادغام با جاوا نه از طریق ایجاد یک نوع پایتون برای JVM، بلکه از طریق تعامل در سطح هر دو ماشین مجازی با استفاده از حافظه مشترک حاصل می‌شود. رویکرد پیشنهادی نه تنها امکان دستیابی به عملکرد خوب، بلکه دسترسی به تمام کتابخانه های CPython و Java را نیز فراهم می کند. کد پروژه توزیع شده توسط دارای مجوز Apache 2.0.

تغییرات اصلی:

  • JChar به عنوان یک نوع بازگشتی پشتیبانی می شود. برای سازگاری، JChar از "str" ​​به ارث می برد و تبدیل ضمنی به "int" را پیاده سازی می کند. بنابراین در قراردادها چک می گذراند. اما این بدان معنی است که دیگر یک نوع عددی در پایتون در نظر گرفته نمی شود و بنابراین ininstance(c, int) به False ارزیابی می شود که با قوانین تبدیل نوع جاوا سازگار است.
  • یک اپراتور برای ارسال یک نوع جاوا معرفی شده است، Type@obj (@ یک عملگر پایتون برای محصول داخلی است، جاوا یکی ندارد).
  • اضافه شدن نماد برای ایجاد آرایه های جاوا. [s1][s2][s3] برای آرایه‌های با اندازه ثابت، نوع[:][:][:] برای آرایه‌هایی که بعدا ایجاد خواهند شد.
  • @FunctionalInterface به شما اجازه می دهد تا فاکتورهای جاوا را از اشیاء پایتون با __call__ ایجاد کنید.
  • JIterator منسوخ حذف شد، استفاده از JException به عنوان کارخانه، get_default_jvm_path و jpype.reflect.
  • به طور پیش فرض، رشته های جاوا به رشته های پایتون تبدیل نمی شوند.
  • پایتون «__int__» را منسوخ کرده است، بنابراین ارسال‌های ضمنی بین انواع عدد صحیح و ممیز شناور یک TypeError ایجاد می‌کند.
  • استفاده از JException منسوخ شده است. برای گرفتن همه استثناها یا بررسی اینکه یک شی از نوع استثنایی جاوا است، از java.lang.Throwable استفاده کنید.
  • علل آبشاری استثناهای جاوا اکنون در قاب های پشته پایتون منعکس شده است.
  • JString منسوخ شده است. برای ایجاد رشته جاوا یا بررسی اینکه یک شی از نوع رشته جاوا است، از java.lang.String استفاده کنید.
  • متدهای repr در کلاس های جاوا به روز شده اند.
  • java.util.List قراردادهایی را برای collections.abc.Sequence و collections.abc.MutableSequence اجرا می کند.
  • java.util.Collection قرارداد collections.abc.Collection را اجرا می کند.
  • کلاس های جاوا خصوصی هستند و زمانی که از پایتون توسعه داده شوند TypeError را پرتاب می کنند.
  • Control-C را با دقت کنترل کنید. وقتی جاوا سیگنال Control-C را پردازش می‌کند، نسخه‌های قبلی خراب می‌شوند، زیرا در طول تماس جاوا را خاتمه می‌دهند. JPype اکنون هنگام بازگشت از جاوا یک InterruptedException پرتاب می کند. Control-C رویه های بزرگ جاوا را همانطور که در حال حاضر پیاده سازی شده است حذف نمی کند، زیرا جاوا ابزار خاصی برای این کار ندارد.

سپس، نسخه اصلاحی 1.0.1 ایجاد شد که تغییراتی را برای حل مشکلات نسخه 3.8.4 پایتون اضافه کرد. پایتون منطق استفاده از "__setattr__" را برای "object" و "type" تغییر داده است و از استفاده از آن برای تغییر کلاس های مشتق شده جلوگیری می کند. بررسی خطا نیز از روش "__setattr__" واگذار شده است، بنابراین انواع استثنا در برخی بررسی‌های کفایت باید بر این اساس به‌روزرسانی شوند.

منبع: opennet.ru

اضافه کردن نظر