{"id":12299,"date":"2022-11-10T11:17:16","date_gmt":"2022-11-10T10:17:16","guid":{"rendered":"https:\/\/pythonprogramming.altervista.org\/?p=12299"},"modified":"2022-11-10T12:34:15","modified_gmt":"2022-11-10T11:34:15","slug":"pyscript-news-are-great","status":"publish","type":"post","link":"https:\/\/pythonprogramming.altervista.org\/pyscript-news-are-great\/","title":{"rendered":"Pyscript NEWS are great!"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Go read what&#8217;s going on with pyscript, one of the most interesting project for Python carried on by Anaconda, that is continuing to work in cooperation with other contributors to improve this powerful tool that will enable the use of Python in the browser in a similar way javascript does. Go read the news at the following link that is so exciting seeing the collaboration with Pyodide, Bytecode alliance and Micropython:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.anaconda.com\/blog\/pyscript-updates-bytecode-alliance-pyodide-and-micropython\">https:\/\/www.anaconda.com\/blog\/pyscript-updates-bytecode-alliance-pyodide-and-micropython<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, to improve the speed of running python inside the browser we can choose the runtime that best suits our personal project, so that you can use the fastest one if it fits with your purpose. This sounds very interesting. Check the pyscript site too <a href=\"https:\/\/pyscript.net\/\">https:\/\/pyscript.net\/<\/a> where you can now find also <a href=\"https:\/\/pyscript.net\/examples\/\">examples<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Pyscript exciting news november 2022: Micropython, Pyodide, Bytecode Alliance\" width=\"747\" height=\"420\" src=\"https:\/\/www.youtube.com\/embed\/9S1b8OgwkfQ?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here are some of the examples of the link above.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pyscript.net\/examples\/\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"563\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-15-960x563.png\" alt=\"\" class=\"wp-image-12306\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-15-960x563.png 960w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-15-320x188.png 320w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-15-768x451.png 768w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-15.png 1125w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">To do list<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Create a <a href=\"https:\/\/pyscript.net\/examples\/todo.html\">to do list<\/a> in the browser<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A clock<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"150\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-14.png\" alt=\"\" class=\"wp-image-12303\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"348\" height=\"341\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-12.png\" alt=\"\" class=\"wp-image-12301\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-12.png 348w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-12-320x314.png 320w\" sizes=\"auto, (max-width: 348px) 100vw, 348px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Web page that calls the script for the to do list<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!DOCTYPE html>\n&lt;html lang=\"en\">\n  &lt;head>\n    &lt;meta charset=\"utf-8\" \/>\n    &lt;meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n\n    &lt;title>Todo App&lt;\/title>\n\n    &lt;link rel=\"icon\" type=\"image\/png\" href=\"favicon.png\" \/>\n    &lt;link rel=\"stylesheet\" href=\"https:\/\/pyscript.net\/latest\/pyscript.css\" \/>\n\n    &lt;script defer src=\"https:\/\/pyscript.net\/latest\/pyscript.js\">&lt;\/script>\n    &lt;py-config>\npaths = [\n    \".\/utils.py\"\n]\n    &lt;\/py-config>\n  &lt;\/head>\n\n  &lt;body class=\"container\">\n    &lt;!-- &lt;py-repl id=\"my-repl\" auto-generate=\"true\"> &lt;\/py-repl> -->\n  &lt;py-script src=\".\/todo.py\">  &lt;\/py-script>\n\n  &lt;main>\n    &lt;section>\n\n    &lt;div class=\"text-center w-full mb-8\">\n      &lt;h1 class=\"text-3xl font-bold text-gray-800 uppercase tracking-tight\">To Do List&lt;\/h1>\n    &lt;\/div>\n    &lt;div>\n      &lt;input id=\"new-task-content\" class=\"py-input\" type=\"text\">\n      &lt;button id=\"new-task-btn\" class=\"py-button\" type=\"submit\" py-click=\"add_task()\">\n        Add task\n      &lt;\/button>\n    &lt;\/div>\n\n    &lt;py-list id=\"myList\">&lt;\/py-list>\n    &lt;div id=\"list-tasks-container\" class=\"flex flex-col-reverse mt-4\">\n  &lt;\/div>\n\n    &lt;template id=\"task-template\">\n        &lt;section class=\"task py-li-element\">\n            &lt;label for=\"flex items-center p-2 \">\n              &lt;input class=\"mr-2\" type=\"checkbox\">\n              &lt;p class=\"m-0 inline\">&lt;\/p>\n            &lt;\/label>\n        &lt;\/section>\n      &lt;\/template>\n\n  &lt;\/section>\n  &lt;\/main>\n&lt;\/body>\n&lt;\/html><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The python script called by the web page code above<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from datetime import datetime as dt\n\nfrom utils import add_class, remove_class\n\ntasks = []\n\n# define the task template that will be use to render new templates to the page\ntask_template = Element(\"task-template\").select(\".task\", from_content=True)\ntask_list = Element(\"list-tasks-container\")\nnew_task_content = Element(\"new-task-content\")\n\n\ndef add_task(*ags, **kws):\n    # ignore empty task\n    if not new_task_content.element.value:\n        return None\n\n    # create task\n    task_id = f\"task-{len(tasks)}\"\n    task = {\n        \"id\": task_id,\n        \"content\": new_task_content.element.value,\n        \"done\": False,\n        \"created_at\": dt.now(),\n    }\n\n    tasks.append(task)\n\n    # add the task element to the page as new node in the list by cloning from a\n    # template\n    task_html = task_template.clone(task_id)\n    task_html_content = task_html.select(\"p\")\n    task_html_content.element.innerText = task[\"content\"]\n    task_html_check = task_html.select(\"input\")\n    task_list.element.appendChild(task_html.element)\n\n    def check_task(evt=None):\n        task[\"done\"] = not task[\"done\"]\n        if task[\"done\"]:\n            add_class(task_html_content, \"line-through\")\n        else:\n            remove_class(task_html_content, \"line-through\")\n\n    new_task_content.clear()\n    task_html_check.element.onclick = check_task\n\n\ndef add_task_event(e):\n    if e.key == \"Enter\":\n        add_task()\n\n\nnew_task_content.element.onkeypress = add_task_event<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Fractals<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Show <a href=\"https:\/\/pyscript.net\/examples\/numpy_canvas_fractals.html\">fractals <\/a>with numpy<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"635\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-13.png\" alt=\"\" class=\"wp-image-12302\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-13.png 612w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-13-320x332.png 320w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><!-- se vuoi mettere un testo scorrevole\r\n[hoops name=\"typeWriterGen\"]\r\n\r\npoi metti un id diverso per ogni testo nella stessa pagina\r\n\r\n<div id=\"div01\">\r\n<script>\r\n\r\ntypeWriterGen(\"div01\",\"Esempio di testo scorrevole\");\r\n<\/script>\r\n\r\n-->\r\n<style>\r\n.avatar {\r\n  vertical-align: middle;\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n}\r\n<\/style>\r\n\r\n<hr>\r\n\r\n<!-- NEWSLETTER LINK -->\r\n<a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSf7TniIPCWHDzCSGh2dYZaCwDvi9yLKS5ovFdKuK1sdfOvwEg\/viewform\">\r\n<img decoding=\"async\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/08\/image-13.png\" class=\"avatar\">\r\nSubscribe to the <b>newsletter<\/b> for updates<\/a><br>\r\n\r\n<!-- TKINTER TEMPLATE LINK -->\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/tkinter-templates\/\">\r\n<img decoding=\"async\" src=\"https:\/\/i0.wp.com\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/07\/image-26.png\" class=\"avatar\">\r\nTkinter templates<\/a><br>\r\n\r\n<!-- MY AVATAR PUT A LINK TO YOUTUBE CHANNEL-->\r\n<iframe loading=\"lazy\" frameborder=\"0\" src=\"https:\/\/itch.io\/embed\/711828\" width=\"552\" height=\"167\"><a href=\"https:\/\/pythonprogrammi.itch.io\/pysnake\">PySnake by PythonProgrammi<\/a><\/iframe>\r\n<br>\r\n<style>\r\n.avatar {\r\n  vertical-align: middle;\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n}\r\n<\/style>\r\n\r\n\r\n<a href=\"https:\/\/www.youtube.com\/channel\/UCzbxq5e9gLiY-je2-br1rvg\">\r\n\t<img decoding=\"async\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2020\/10\/avatar64x64.png\" alt=\"Avatar\" class=\"avatar\">\r\n\t My youtube channel<\/a><br>\r\n\r\n<br>\r\n\r\nTwitter: <a href=\"https:\/\/twitter.com\/pythonprogrammi\">@pythonprogrammi - python_pygame<\/a>\r\n<h3>Claude's Games<\/h3>\r\n<p><a href=\"https:\/\/pythonprogramming.altervista.org\/random-daily-game-1-arkanoid\/\">Arkanoid<\/a><br>\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/platform-2d-with-pygame-made-with-claude\/\">Platform 2d<\/a><\/p> <!-- videogames made with claude -->\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/artifacts-games-day-1-memory-game\/\">1. Memory game<\/a>\r\n<h4>Videos<\/h4>\r\n<a href=\"https:\/\/youtu.be\/ciLjWWw5pLY\">Speech recognition game<\/a>\r\n<h3>Pygame's Platform Game<\/h3>\r\n\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-5-sounds-and-mixer\/\"><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/pythonprogramming.altervista.org\/wp-content\/uploads\/2020\/01\/climbercover.png?w=557&ssl=1\"\/ width=\"50%\"><\/a>\r\n<script>\r\nvar title = \"Platform Pygame\";\r\n\t\tvar links = [\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-animation-of-a-sprite-v-1-3\/\",\"Animation 1.3\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-sprite-animation-v-2-better-coding-test-it-checking-fps-on-the-screen\/\",\"Animation 1.2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-how-to-display-the-frame-rate-fps-on-the-screen\/\",\"Display Frame rate\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-sprite-animation-update\/\",\"Animation 1.1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platformer-1\/\",\"Pygame Platform Game 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-platform-game-2\/\",\"Pygame Platform 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-3-recap-cheatsheet\/\",\"Pygame PLatform 3 - recap and some Cheat Sheet\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-4-background-and-stuffs\/\",\"Pygame Platform 4 - Background & organizing code\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-5-sounds-and-mixer\/\",\"Pygame Platform 5 - Sounds\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/platform-game-in-detail-part-1\/\",\"Game in detail part 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/map-maker-1-2\/\", \"Map maker 1.2\"]\r\n\t\t];\r\n\t\t<\/script>\r\n<script>\r\n\t\r\nif (typeof next2 != \"undefined\"){let next2 = 0;}\r\n\t\r\nnext2 = 0;\r\n\thtml = \"\";\/\/<b style='color:coral;font-size:1.2em'>Other posts about \" + title + \"<\/b><br>\";\r\nfor (address of links) \r\n{\r\n\r\n\tif (next2 == 1){\r\n\t\thtml += \"<div style='background:coral'>\";\r\n\t\thtml += \"Next link => <a href='\" + address[0] + \"'>\" + address[1] + \"<\/a>\";\r\n\t\thtml += \"<\/div><br>\";\r\n\t\tnext2 = 0;\r\n\t}\r\n\tif (address[0] == document.URL) {\r\n\t\tnext2 = 1;\r\n\t}\r\n}\r\n\r\nif (typeof next != \"undefined\") {let next = 0;}\r\nif (typeof addressStart != \"undefined\") {let addressStart = \"\";}\r\nnext = 0;\r\naddressStart = \"<a href='\";\r\nfor (address of links) {\r\n\tif (next == 1){\r\n\t\thtml += \">>>\" + addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t\tnext = 0;\r\n\t}\r\n\telse if (addressStart + address[0] != document.URL)\r\n\t{\r\n\t\thtml += addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tnext = 1;\r\n\t\tnext_address = address[0]\r\n\t\tnext_title = address[1]\r\n\t\thtml += \"<span style='color:gray'>\" + address[1] + \"<\/span><br>\";\r\n\t}\r\n\r\n}\r\n\r\n\thtml += `<span style=\"font-size:8px\">Powered by <a href=\"https:\/\/pythonprogramming.altervista.org\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2673\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png\" alt=\"\" width=\"70\" height=\"25\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png 156w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2-150x56.png 150w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/>pythonprogramming.altervista.org<\/a><\/span>`\r\n\thtml = \"<div style='background:yellow'>\" + html + \"<\/div>\";\r\n\tdocument.write(html)\r\n<\/script>\r\n\r\n<h3>Other Pygame's posts<\/h3>\r\n\r\n<script>\r\nvar title = \"Pygame's Posts\"\r\nvar links = [\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platformer-1\/\",\"Platform game 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/make-a-platform-game-with-pygame-dafluffypotato\/\",\"DaFluffyPotato Platform Tutorials\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-and-classic-arcade-games-pong\/\",\"Pong Game Full\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-draws-in-colors-app-to-draw-with-pygame\/\",\"PyGameGIF 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-draw-app-with-animation\/\",\"PyGameGIF 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pydraw-2-0-app-to-draw-gif\/\",\"PyDraw 2.0\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-drawing-2\/\",\"Draw with Pygame\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/animation-with-pygame\",\"Sprite animation 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/animation-on-pygame-2-free-characters-and-more-actions\/\",\"Sprite animation 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/starting-with-pygame\/\",\"Starting movements with Pygame\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-3-move-sprite\/\", \"Move a Sprite\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-4-fonts\/\",\"Text and Fonts\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-animate-a-sprite\/\", \"Animate a sprite\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-and-mouse-events\/\",\"Mouse events\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pgp-aka-pygamepresentation-project\/\",\"Pygame presentation\"],\r\n\t[\"https:\/\/pythonprogramming.altervista.org\/moving-the-player-in-pygame-with-key-get_pressed\/\",\"How to use key.get_pressed()\"]\r\n]\r\n<\/script>\r\n\r\n\r\n<script>\r\n\t\r\nif (typeof next2 != \"undefined\"){let next2 = 0;}\r\n\t\r\nnext2 = 0;\r\n\thtml = \"\";\/\/<b style='color:coral;font-size:1.2em'>Other posts about \" + title + \"<\/b><br>\";\r\nfor (address of links) \r\n{\r\n\r\n\tif (next2 == 1){\r\n\t\thtml += \"<div style='background:coral'>\";\r\n\t\thtml += \"Next link => <a href='\" + address[0] + \"'>\" + address[1] + \"<\/a>\";\r\n\t\thtml += \"<\/div><br>\";\r\n\t\tnext2 = 0;\r\n\t}\r\n\tif (address[0] == document.URL) {\r\n\t\tnext2 = 1;\r\n\t}\r\n}\r\n\r\nif (typeof next != \"undefined\") {let next = 0;}\r\nif (typeof addressStart != \"undefined\") {let addressStart = \"\";}\r\nnext = 0;\r\naddressStart = \"<a href='\";\r\nfor (address of links) {\r\n\tif (next == 1){\r\n\t\thtml += \">>>\" + addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t\tnext = 0;\r\n\t}\r\n\telse if (addressStart + address[0] != document.URL)\r\n\t{\r\n\t\thtml += addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tnext = 1;\r\n\t\tnext_address = address[0]\r\n\t\tnext_title = address[1]\r\n\t\thtml += \"<span style='color:gray'>\" + address[1] + \"<\/span><br>\";\r\n\t}\r\n\r\n}\r\n\r\n\thtml += `<span style=\"font-size:8px\">Powered by <a href=\"https:\/\/pythonprogramming.altervista.org\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2673\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png\" alt=\"\" width=\"70\" height=\"25\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png 156w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2-150x56.png 150w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/>pythonprogramming.altervista.org<\/a><\/span>`\r\n\thtml = \"<div style='background:yellow'>\" + html + \"<\/div>\";\r\n\tdocument.write(html)\r\n<\/script><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"455\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-11-960x455.png\" alt=\"\" class=\"wp-image-12300\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-11-960x455.png 960w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-11-320x152.png 320w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-11-768x364.png 768w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2022\/11\/image-11.png 1334w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"Go read what&#8217;s going on with pyscript, one of the most interesting project for Python carried on by Anaconda, that is continuing to \n<a class=\"moretag\" href=\"https:\/\/pythonprogramming.altervista.org\/pyscript-news-are-great\/\"> [...]<\/a>","protected":false},"author":1,"featured_media":12300,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[1032],"tags":[1031,4],"class_list":["post-12299","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pyscript","tag-pyscript","tag-python"],"avopt_banners_inside_post":true,"avopt_banners_on_page":true,"av_copy_from":"","av_sharing_message":"","av_sharing_allowed":true,"av_sharing_on":{"fb":[],"tw":[]},"av_allow_affiliate_banner":false,"av_allow_affiliate_multi_banner":false,"av_show_affiliation_buy_button":false,"av_post_rating":true,"av_have_post_rating_value":false,"av_is_artificial_intelligence_content":false,"_links":{"self":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/12299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/comments?post=12299"}],"version-history":[{"count":4,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/12299\/revisions"}],"predecessor-version":[{"id":12310,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/12299\/revisions\/12310"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media\/12300"}],"wp:attachment":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media?parent=12299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/categories?post=12299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/tags?post=12299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}