{"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\/fr\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Sortie de JPype 0.7.2, biblioth\u00e8que pour acc\u00e9der aux classes Java depuis Python","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\">Disponible<\/a><\/noindex> Publication de la couche <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 0.7.2<\/a><\/noindex>, permettant un acc\u00e8s complet des applications Python aux biblioth\u00e8ques de classes en Java. Gr\u00e2ce \u00e0 JPype, il est possible d'utiliser des biblioth\u00e8ques sp\u00e9cifiques \u00e0 Java \u00e0 partir de Python, cr\u00e9ant ainsi des applications hybrides qui combinent du code Java et Python. Contrairement \u00e0 Jython, l'int\u00e9gration avec Java ne n\u00e9cessite pas de cr\u00e9er une variante de Python pour la JVM, mais se fait par l'interaction entre les deux machines virtuelles, utilisant la m\u00e9moire partag\u00e9e. L'approche propos\u00e9e permet non seulement d'atteindre de bonnes performances, mais aussi d'acc\u00e9der \u00e0 toutes les biblioth\u00e8ques de CPython et Java. Le code du projet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">est distribu\u00e9<\/a><\/noindex> sous licence Apache 2.0.<\/p>\n<p>Principales modifications :<\/p>\n<ul>\n<li class=\"l\"> Les exceptions lev\u00e9es dans le code C++ et Java fournissent d\u00e9sormais une pile d'exceptions lorsqu'une exception se produit dans le code Python. Ainsi, pour obtenir des informations sur la pile d'exceptions, il n'est plus n\u00e9cessaire d'appeler stacktrace().\n<li class=\"l\"> La vitesse de retour lors des appels a \u00e9t\u00e9 multipli\u00e9e par trois.\n<li class=\"l\"> La vitesse de transmission a \u00e9t\u00e9 consid\u00e9rablement (de plusieurs ordres de grandeur) augment\u00e9e dans<br \/>\ndes tampons numpy pour les tableaux multidimensionnels. Les primitifs multidimensionnels transmettent des copies en lecture seule, cr\u00e9\u00e9es \u00e0 l'int\u00e9rieur de la JVM avec une disposition C continue.<\/p>\n<li class=\"l\"> Tous les composants internes expos\u00e9s ont \u00e9t\u00e9 remplac\u00e9s par des impl\u00e9mentations de CPython, et les symboles __javaclass__, __javavalue__ et __javaproxy__<br \/>\nont \u00e9t\u00e9 supprim\u00e9s. Tous les types CPython h\u00e9rit\u00e9s des types de classe jpype ont re\u00e7u un slot Java d\u00e9di\u00e9. Toutes les tables priv\u00e9es ont \u00e9t\u00e9 transf\u00e9r\u00e9es dans CPython. Les types Java doivent d\u00e9sormais h\u00e9riter de la m\u00e9taclasse JClass, qui utilise des slots de type. Les m\u00e9langes pour les classes de base Python ne sont pas autoris\u00e9s. Les types Object, Proxy, Exception, Number et Array h\u00e9ritent directement des impl\u00e9mentations internes de CPython.<\/p>\n<li class=\"l\"> Le tra\u00e7age et le traitement des exceptions ont \u00e9t\u00e9 am\u00e9lior\u00e9s.\n<li class=\"l\"> Les d\u00e9coupes de tableaux (Array slices) sont d\u00e9sormais trait\u00e9es sous forme de vues, prenant en charge l'\u00e9criture r\u00e9ciproque dans l'original, comme un tableau numpy. Pour les d\u00e9coupes de tableaux, la prise en charge de la d\u00e9finition et de l'obtention de valeurs avec des pas (slice(start, stop, step)) a \u00e9t\u00e9 assur\u00e9e.\n<li class=\"l\"> Les tableaux prennent en charge \u00ab __reversed__ \u00bb.\n<li class=\"l\"> Les tableaux Java ont maintenant le support de l'API memoryview et ont \u00e9limin\u00e9 la d\u00e9pendance \u00e0 numpy pour le transfert du contenu du tampon.\n<li class=\"l\"> Numpy n'est d\u00e9sormais plus une d\u00e9pendance (extra) et le transfert de m\u00e9moire vers numpy est accessible sans compilation avec le support de numpy.\n<li class=\"l\"> JInterface est formul\u00e9 en tant que m\u00e9taclasse. Utilisez isinstance(cls, JInterface) pour v\u00e9rifier les interfaces.\n<li class=\"l\"> Les importations par d\u00e9faut ont \u00e9t\u00e9 ajout\u00e9es avec les TLD manquants \u00ab mil \u00bb, \u00ab net \u00bb et \u00ab edu \u00bb.\n<li class=\"l\"> Lors du lancement, les messages d'erreur pour UnsupportedClassVersion ont \u00e9t\u00e9 am\u00e9lior\u00e9s.\n<li class=\"l\">    java.util.Map retourne d\u00e9sormais KeyError si l'\u00e9l\u00e9ment n'est pas trouv\u00e9. Les valeurs null continuent de renvoyer None comme pr\u00e9vu. Utilisez get() si des cl\u00e9s vides doivent \u00eatre trait\u00e9es comme None.\n<li class=\"l\"> java.util.Collection a \u00e9t\u00e9 supprim\u00e9 car il pr\u00e9sente une surcharge \u00e9trange entre remove(Object) et remove(int) sur les Listes. Utilisez la m\u00e9thode Java remove() pour acc\u00e9der au comportement Java d'origine, mais un cast de type est fortement recommand\u00e9 pour g\u00e9rer la surcharge.\n<li class=\"l\"> java.lang.IndexOutOfBoundsException peut d\u00e9sormais \u00eatre intercept\u00e9 avec la classe d'exception IndexError lors de l'acc\u00e8s aux \u00e9l\u00e9ments de java.util.List.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <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.2 - 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\/fr\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47 Version JPype 0.7.2, biblioth\u00e8que pour acc\u00e9der aux classes Java depuis Python | ProHoster","description":"Une version de la couche JPype est disponible.","canonical_url":"https:\/\/prohoster.info\/fr\/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":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/72012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=72012"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/72012\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=72012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=72012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=72012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}