Релиз JPype 1.0, библиотеки для доступа к Java-классам из Python
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Доступен релиз прослойки JPype 1.0, позволяющей организовать полный доступ Python-приложений к библиотекам классов на языке Java. При помощи JPype из Python можно использовать специфичные для Java библиотеки, создавая гибридные приложения, сочетающие код на Java и Python. В отличие от Jython, интеграция с Java достигается не через создание варианта Python для JVM, а через взаимодействие на уровне обеих виртуальных машин, используя разделяемую память. Предложенный подход позволяет не только добиться хорошей производительности, но и предоставляет доступ ко всем библиотекам CPython и Java. Код проекта распространяется под лицензией Apache 2.0.
Основные изменения:
- JChar поддерживается как возвращаемый тип. Для совместимости JChar унаследован от "str" и реализует неявное преобразование в "int". Поэтому он проходит проверки в контрактах. Но это значит, что он больше не считается числовым типом в Python и поэтому isinstance(c, int) принимает значение False, что согласуется с правилами преобразования типов Java.
- Введён оператор для приведения Java-типа Type@obj (@ - это оператор Python для внутреннего произведения, в Java его нет).
- Добавлена нотация для создания массивов Java. Type[s1][s2][s3] для массивов фиксированных размеров, Type[:][:][:] для массивов, которые будут созданы позже.
- @FunctionalInterface позволяет создавать Java-функторы из Python-объектов с __call__.
- Удалены устаревшие JIterator, использование JException как фабрики, get_default_jvm_path и jpype.reflect.
- По-умолчанию не происходит конвертация Java-строк в строки Python.
- Python объявил нерекомендуемым "__int__", поэтому неявные приведения между целочисленными и с плавающей точкой типами будут производить TypeError.
- Использование JException порицается. Чтобы поймать все исключения, или проверить, что объект является типом исключения Java, следует java.lang.Throwable.
- Каскадные причины Java-исключений теперь отражаются в кадрах стека Python.
- Использование JString порицается. Чтобы создать Java-строку, или проверить, что объект имеет тип Java-строки, используйте java.lang.String.
- В Java-классах обновлены repr-методы.
- java.util.List выполняет контракты для collections.abc.Sequence и collections.abc.MutableSequence.
- java.util.Collection выполняет контракт for collections.abc.Collection.
- Java-классы закрыты и будут бросать TypeError при расширении из Python.
- Обработка Control-C аккуратно. Предыдущие версии падают когда Java обрабатывает Control-C сигнал, так как они завершат Java во время вызова. Теперь JPype создаст InterruptedException, когда будет возвращаться из Java. Control-C не выкинет из больших Java-процедур, как сейчас реализовано, так как Java не имеет специального средства для этого.
Следом сформирован корректирующий выпуск 1.0.1, в котором добавлены изменения для обхода проблем с релизом Python 3.8.4. Python изменил логику относительно использования "__setattr__" для "object" и "type", предотвращая её использование для изменения порождённых классов. Ещё проверка на ошибки была делегирована из метода "__setattr__", поэтому типы исключений в некоторых проверках на адекватность должны быть обновлены соответствующе.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/jpype-proje...)
- OpenNews: Релиз JPype 0.7.2, библиотеки для доступа к Java-классам из Python
- OpenNews: Релиз JPype 0.7, библиотеки для доступа к Java-классам из Python
- OpenNews: Inlinec - новый способ использования Си-кода в Python-скриптах
- OpenNews: Проект Python намерен перевести отслеживание ошибок на GitHub
- OpenNews: Гвидо ван Россум предложил включить в Python операторы для сопоставления с образцом
Похожие новости:
- [Node.JS, PHP, Perl, Python, Информационная безопасность] Трюки с переменными среды (перевод)
- [IT-компании, JavaScript, Python, Управление разработкой] Практики хорошего code review, или что такое code review за 15 минут. Доклад Никиты Соболева на DUMP в Казани
- [DevOps, Python, Анализ и проектирование систем, Искусственный интеллект, Машинное обучение] Общий обзор архитектуры сервиса для оценки внешности на основе нейронных сетей
- [JavaScript, Программирование, Разработка веб-сайтов] Что за черт, JavaScript?
- [PostgreSQL, Python, Администрирование баз данных] PgGraph — утилита для архивации и поиска зависимостей таблиц в PostgreSQL
- Обновление Java SE, MySQL, VirtualBox и других продуктов Oracle с устранением уязвимостей
- [JavaScript, Python, Программирование, Разработка веб-сайтов] Надоел JavaScript — используй браузерный Python (перевод)
- [Django, IT-инфраструктура, Разработка под Linux, Системное администрирование] Как мы автоматизировали весь жизненный цикл серверов
- [Django, Python, Системы сборки] Как в компании развивался Python. Доклад Яндекса
- [Java, Конференции] DINS JAVA EVENING (online): троттлинг, Token Bucket и финансовая математика
Теги для поиска: #_jpype, #_python, #_java
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 03:06
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Доступен релиз прослойки JPype 1.0, позволяющей организовать полный доступ Python-приложений к библиотекам классов на языке Java. При помощи JPype из Python можно использовать специфичные для Java библиотеки, создавая гибридные приложения, сочетающие код на Java и Python. В отличие от Jython, интеграция с Java достигается не через создание варианта Python для JVM, а через взаимодействие на уровне обеих виртуальных машин, используя разделяемую память. Предложенный подход позволяет не только добиться хорошей производительности, но и предоставляет доступ ко всем библиотекам CPython и Java. Код проекта распространяется под лицензией Apache 2.0. Основные изменения:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 03:06
Часовой пояс: UTC + 5