Асноўныя змены:
- 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