{"id":72012,"date":"2020-02-29T21:04:04","date_gmt":"2020-02-29T18:04:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python"},"modified":"2020-03-03T16:10:24","modified_gmt":"2020-03-03T13:10:24","slug":"reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Vydanie JPype 0.7.2, kni\u017enice na pr\u00edstup k Java triedam z Pythonu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/releases\/tag\/v0.7.2\">Dostupn\u00fd<\/a><\/noindex> uvedenie vrstvy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 0.7.2<\/a><\/noindex>, ktor\u00e9 umo\u017e\u0148uje pln\u00fd pr\u00edstup Python aplik\u00e1ci\u00ed k Java kni\u017eniciam. S JPype m\u00f4\u017eu Python aplik\u00e1cie vyu\u017e\u00edva\u0165 \u0161pecifick\u00e9 Java kni\u017enice a vytv\u00e1ra\u0165 hybridn\u00e9 aplik\u00e1cie kombinuj\u00face k\u00f3d v Jave a Pythone. Na rozdiel od Jythonu, integr\u00e1cia s Javou sa dosahuje nie cez vytvorenie verzie Pythonu pre JVM, ale cez interakciu na \u00farovni oboch virtu\u00e1lnych strojov, pri\u010dom sa vyu\u017e\u00edva zdie\u013ean\u00e1 pam\u00e4\u0165. Navrhovan\u00fd pr\u00edstup umo\u017e\u0148uje nielen dosiahnu\u0165 dobr\u00fd v\u00fdkon, ale aj poskytuje pr\u00edstup ku v\u0161etk\u00fdm kni\u017eniciam CPython a Javy. K\u00f3d projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">distribuovan\u00fd<\/a><\/noindex> pod licenciou Apache 2.0.<\/p>\n<p>Hlavn\u00e9 zmeny:<\/p>\n<ul>\n<li class=\"l\"> V\u00fdnimky vyhadzovan\u00e9 v C++ a Java k\u00f3de teraz poskytuj\u00fa z\u00e1sobn\u00edk v\u00fdnimiek pri vzniku v\u00fdnimky v Pythone. Tak\u017ee na z\u00edskanie inform\u00e1ci\u00ed o z\u00e1sobn\u00edku v\u00fdnimiek u\u017e nie je potrebn\u00e9 vola\u0165 stacktrace().\n<li class=\"l\"> R\u00fdchlos\u0165 vr\u00e1tenia pri v\u00fdzvach sa zv\u00fd\u0161ila tri kr\u00e1t.\n<li class=\"l\"> Podstatne (o poriadky) sa zv\u00fd\u0161ila r\u00fdchlos\u0165 prenosu v<br \/>\nnumpy b\u00faferoch viacrozmern\u00fdch pol\u00ed. Viacrozmern\u00e9 primit\u00edvy pren\u00e1\u0161aj\u00fa iba na \u010d\u00edtanie dostupn\u00e9 k\u00f3pie, vytvoren\u00e9 vn\u00fatri JVM s kontinu\u00e1lnym rozlo\u017een\u00edm C.<\/p>\n<li class=\"l\"> V\u0161etky vy\u017eadovan\u00e9 vn\u00fatorn\u00e9 komponenty boli nahraden\u00e9 implement\u00e1ciami z CPythonu, a symboly __javaclass__, __javavalue__ a __javaproxy__<br \/>\nboli odstr\u00e1nen\u00e9. V\u0161etk\u00fdm typom CPython, dedi\u010dn\u00fdm od typov triedy jpype, bol pridan\u00fd vyhraden\u00fd Java-slot. V\u0161etky s\u00fakromn\u00e9 tabu\u013eky boli presunut\u00e9 do CPythonu. Java typy teraz musia dedi\u010dne poch\u00e1dza\u0165 od metaklasy JClass, ktor\u00e1 pou\u017e\u00edva sloty typov. Pr\u00edmiesky pre z\u00e1kladn\u00e9 triedy Pythonu nie s\u00fa povolen\u00e9. Typy Object, Proxy, Exception, Number a Array sa dedi\u010dne poch\u00e1dzaj\u00fa priamo z vn\u00fatorn\u00fdch implement\u00e1ci\u00ed CPython.<\/p>\n<li class=\"l\"> Zlep\u0161ilo sa trasovanie a spracovanie v\u00fdnimiek.\n<li class=\"l\"> Rezy pol\u00ed (Array slices) sa teraz spracov\u00e1vaj\u00fa ako zobrazenia podporuj\u00face sp\u00e4tn\u00e9 zapisovanie do origin\u00e1lu, ako je numpy pole. Pre rezy pol\u00ed je zabezpe\u010den\u00e1 podpora nastavovania a z\u00edskavania hodnoty so skokom (slice(start, stop, step)).\n<li class=\"l\"> V poliach je implementovan\u00e1 podpora &#171;__reversed__&#187;.\n<li class=\"l\"> V Java poliach je zabezpe\u010den\u00e1 podpora API memoryview a bola odstr\u00e1nen\u00e1 z\u00e1vislos\u0165 od numpy pri prenose obsahu b\u00fafera.\n<li class=\"l\"> Numpy u\u017e nie je z\u00e1vislos\u0165ou (extra) a prenos pam\u00e4te do numpy je dostupn\u00fd bez kompil\u00e1cie so podporou numpy.\n<li class=\"l\"> JInterface je zobrazen\u00fd ako metaklas. Na kontrolu rozhran\u00ed pou\u017eite isinstance(cls, JInterface).\n<li class=\"l\"> Do predvolen\u00fdch importov boli pridan\u00e9 ch\u00fdbaj\u00face TLD &#171;mil&#187;, &#171;net&#187; a &#171;edu&#187;.\n<li class=\"l\"> Po\u010das sp\u00fa\u0161\u0165ania boli vylep\u0161en\u00e9 spr\u00e1vy o chyb\u00e1ch pre UnsupportedClassVersion.\n<li class=\"l\">    java.util.Map teraz vyvol\u00e1va KeyError, ak prvok nie je n\u00e1jden\u00fd. Hodnoty, ktor\u00e9 s\u00fa null, na\u010falej vracaj\u00fa None ako sa o\u010dak\u00e1va. Pou\u017eite get(), ak treba spracov\u00e1va\u0165 pr\u00e1zdne k\u013e\u00fa\u010de ako None.\n<li class=\"l\"> java.util.Collection bola odstr\u00e1nen\u00e1, preto\u017ee sa zvl\u00e1\u0161tne pre\u0165a\u017euje medzi remove(Object) a remove(int) na zoznamoch. Pou\u017eite Java met\u00f3du remove() na pr\u00edstup k p\u00f4vodn\u00e9mu Java spr\u00e1vaniu, ale typovanie je pr\u00edsne odpor\u00fa\u010dan\u00e9 na spr\u00e1vu pre\u0165a\u017eenia.\n<li class=\"l\"> java.lang.IndexOutOfBoundsException teraz m\u00f4\u017ee by\u0165 zachyten\u00e1 pomocou triedy na v\u00fdnimky IndexError pri pr\u00edstupe k prvkom java.util.List.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Zdroj: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52456\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype 0.7.2, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f Python-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Java. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 JPype \u0438\u0437 Python \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f Java \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0447\u0435\u0442\u0430\u044e\u0449\u0438\u0435 \u043a\u043e\u0434 \u043d\u0430 Java \u0438 Python. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Jython, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Java \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 Python \u0434\u043b\u044f JVM, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-72012","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 JPype 0.7.2, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Java-\u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438\u0437 Python | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-29T18:04:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:10:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vydanie JPype 0.7.2, kni\u017enice na pr\u00edstup k Java triedam z Pythonu | ProHoster","description":"Vydanie vrstvy JPype je teraz k dispoz\u00edcii.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 JPype 0.7.2, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Java-\u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438\u0437 Python | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype.","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-29T18:04:04+00:00","article:modified_time":"2020-03-03T13:10:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"72012","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:52:25","updated":"2022-10-01 19:59:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/72012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=72012"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/72012\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=72012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=72012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=72012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}