{"id":15070085,"url":"https://github.com/simon-ritchie/apysc","last_synced_at":"2025-10-08T18:25:58.719Z","repository":{"id":37450487,"uuid":"334394290","full_name":"simon-ritchie/apysc","owner":"simon-ritchie","description":"apysc (pronounced æpisk) is a Python frontend library to create HTML and JavaScript, inspired by ActionScript 3 (as3) and Flutter.","archived":false,"fork":false,"pushed_at":"2024-12-30T11:02:20.000Z","size":53132,"stargazers_count":25,"open_issues_count":23,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T05:08:37.856Z","etag":null,"topics":["actionscript","animation","as3","drawing","frontend","graphics","html","javascript","pip","pypi","python","python-3","python-frontend-library","python3","svg","ui","ui-components","vector-graphics","visualization","web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simon-ritchie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-30T11:17:17.000Z","updated_at":"2025-03-18T21:50:39.000Z","dependencies_parsed_at":"2024-02-07T14:29:15.336Z","dependency_job_id":"30a8ccc9-5b1b-4ff1-abd7-635210aca03f","html_url":"https://github.com/simon-ritchie/apysc","commit_stats":{"total_commits":9127,"total_committers":4,"mean_commits":2281.75,"dds":"0.027610386764544748","last_synced_commit":"b51dde56d3b603bfa560d8b0b012e384eabe5586"},"previous_names":["simon-ritchie/apyscript"],"tags_count":1171,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-ritchie%2Fapysc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-ritchie%2Fapysc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-ritchie%2Fapysc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-ritchie%2Fapysc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simon-ritchie","download_url":"https://codeload.github.com/simon-ritchie/apysc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994122,"owners_count":21030050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actionscript","animation","as3","drawing","frontend","graphics","html","javascript","pip","pypi","python","python-3","python-frontend-library","python3","svg","ui","ui-components","vector-graphics","visualization","web"],"created_at":"2024-09-25T01:47:36.626Z","updated_at":"2025-10-08T18:25:51.103Z","avatar_url":"https://github.com/simon-ritchie.png","language":"Python","readme":"# apysc\n\n[![Deploy to PyPI](https://github.com/simon-ritchie/apysc/actions/workflows/deploy_to_pypi.yml/badge.svg)](https://github.com/simon-ritchie/apysc/actions/workflows/deploy_to_pypi.yml)\n[![CodeQL](https://github.com/simon-ritchie/apysc/actions/workflows/codeql_analysis.yml/badge.svg)](https://github.com/simon-ritchie/apysc/actions/workflows/codeql_analysis.yml)\n![Dependabot: enabled](https://img.shields.io/badge/Dependabot-enabled-brightgreen)\n[![PyPI version](https://badge.fury.io/py/apysc.svg)](https://badge.fury.io/py/apysc)\n![](https://img.shields.io/badge/code%20style-black-black?labelColor=gray)\n[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/simon-ritchie/apysc/blob/main/LICENSE)\n![](https://byob.yarr.is/simon-ritchie/apysc/passing_unit_test_python_versions)\n![](https://byob.yarr.is/simon-ritchie/apysc/unit_tests_coverage)\n![](https://byob.yarr.is/simon-ritchie/apysc/passing_unit_tests_num)\n![](https://byob.yarr.is/simon-ritchie/apysc/passing_doctests_num)\n![](https://byob.yarr.is/simon-ritchie/apysc/passing_lints)\n\n\n![logo](https://github.com/simon-ritchie/apysc/blob/main/assets/logo_v1/logo_small_v1.png)\n\nLanguage: | English | [日本語 (Japanese)](https://github.com/simon-ritchie/apysc/blob/main/README_JP.md) |\n\napysc (pronounced `æpisk`) is a Python frontend library to create HTML and JavaScript, inspired by ActionScript 3 (as3) and Flutter.\n\nNotes: Currently developing and only works partially.\n\n## Supported Python Version\n\nPython 3.8 or later.\n\n## Installing\n\nPip command is available:\n\n```\n$ pip install apysc\n```\n\n## What's new\n\nTo check the major features updating and destructive changes, please see the Discussions' [Announcements](https://github.com/simon-ritchie/apysc/discussions/categories/announcements) and [Destructive changes](https://github.com/simon-ritchie/apysc/discussions/categories/destructive-changes).\n\n## How to start\n\nPlease see [apysc documentation](https://simon-ritchie.github.io/apysc/en/index.html) and [quick start guide](https://simon-ritchie.github.io/apysc/en/quick_start.html) page.\n\n\u003ca href=\"https://simon-ritchie.github.io/apysc/en/index.html\"\u003e\u003cimg src=\"https://github.com/simon-ritchie/apysc/blob/main/assets/document_index_screenshot.png\"\u003e\u003c/a\u003e\n\n## What apysc can do in its current implementation\n\n- **Save HTML or use it on the Jupyter Notebook, JupyterLab, and Google Colaboratory!**\n\n![](https://github.com/simon-ritchie/apysc/blob/main/assets/jupyterlab_interface.png)\n\nDocuments:\n\n- [save_overall_html interface](https://simon-ritchie.github.io/apysc/en/save_overall_html.html)\n- [display_on_jupyter interface](https://simon-ritchie.github.io/apysc/en/display_on_jupyter.html)\n- [display_on_colaboratory interface](https://simon-ritchie.github.io/apysc/en/display_on_colaboratory.html)\n\n---\n\n- **Draw the many types of vector graphics**\n\n![](https://github.com/simon-ritchie/apysc/blob/main/assets/vector_graphics_samples.png)\n\nExample code fragments:\n\n```py\n...\nsprite.graphics.begin_fill(color=ap.Color(\"#0af\"))\nrectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)\n...\n```\n\nAbstract document: [Draw interfaces abstract](https://simon-ritchie.github.io/apysc/en/draw_interfaces_abstract.html)\n\n---\n\n- **Lots of the vector graphics updating interfaces, such as the x, width, rotation, alpha (opacity), ellipse size, scale**\n\nExample code fragments:\n\n```py\n...\nrectangle.x = ap.Number(100)\n...\n```\n\nAbstract document: [DisplayObject and GraphicsBase classes base properties abstract](https://simon-ritchie.github.io/apysc/en/display_object_and_graphics_base_prop_abstract.html)\n\n---\n\n- **Set each mouse event, such as the click, double click, mouse down, mouse up, mouse over, mouse out, mouse move**\n\n![](https://github.com/simon-ritchie/apysc/blob/main/assets/mouse_move.gif)\n\nExample code fragments:\n\n```py\n...\ndef on_click(e: ap.MouseEvent, options: dict) -\u003e None:\n    ap.trace(\"Rectangle is clicked!\")\n\n\nrectangle.click(on_click)\n...\n```\n\nAbstract document: [MouseEvent interfaces abstract](https://simon-ritchie.github.io/apysc/en/mouse_event_abstract.html)\n\n---\n\n- **Use the timer interface and animation**\n\n![](https://github.com/simon-ritchie/apysc/blob/main/assets/rotation_and_alpha_animation.gif)\n\nExample code fragments:\n\n```py\n...\ndef on_timer(e: ap.TimerEvent, options: dict) -\u003e None:\n    ...\n\n\nap.Timer(on_timer, delay=1000).start()\n...\n```\n\nDocuments: [Timer class](https://simon-ritchie.github.io/apysc/en/timer.html)\n\n---\n\n- **Lots of tween animations, including easing options**\n\n[![](https://github.com/simon-ritchie/apysc/blob/main/assets/animation_interfaces_abstract.gif)](https://simon-ritchie.github.io/apysc/animation_interfaces_abstract.html)\n\nExample code fragments:\n\n```py\n...\nrectangle.animation_x(\n    x=100, duration=1000, easing=ap.Easing.EASE_IN_QUART,\n).start()\n...\n```\n\nAbstract document: [Animation interfaces abstract (each animation attribute)](https://simon-ritchie.github.io/apysc/en/animation_interfaces_abstract.html)\n\n---\n\n- **Basic control, like the for loop, if branch instruction, and so on**\n\nDocuments:\n\n- [If](https://simon-ritchie.github.io/apysc/en/if.html)\n- [Elif](https://simon-ritchie.github.io/apysc/en/elif.html)\n- [Else](https://simon-ritchie.github.io/apysc/en/else.html)\n- [ForArrayIndices](https://simon-ritchie.github.io/apysc/en/for_array_indices.html)\n- [ForArrayValues](https://simon-ritchie.github.io/apysc/en/for_array_values.html)\n- [ForDictKeys](https://simon-ritchie.github.io/apysc/en/for_dict_keys.html)\n- [ForDictValues](https://simon-ritchie.github.io/apysc/en/for_dict_values.html)\n- [ForDictKeysAndValues](https://simon-ritchie.github.io/apysc/en/for_dict_keys_and_values.html)\n\n---\n\nFor more details, please see the following document:\n\n[What apysc can do in its current implementation](https://simon-ritchie.github.io/apysc/en/what_apysc_can_do.html)\n\n## License\n\nThe apysc library is under the MIT License.\n\nThe logo image uses the following Creative Commons license font:\n\n- [Pauline Font - by Marcos Boric (2020)](https://www.behance.net/gallery/94972757/Pauline-Font)\n- [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.en)\n\nAlso, the apysc library depends on the following libraries and assets:\n\n- [jQuery, MIT License](https://github.com/jquery/jquery/blob/main/LICENSE.txt)\n- [jQuery Mousewheel](https://github.com/jquery/jquery-mousewheel/blob/main/LICENSE.txt)\n- [SVG.js, MIT License](https://github.com/svgdotjs/svg.js/blob/master/LICENSE.txt)\n- [Underscore.js, MIT License](https://github.com/jashkenas/underscore/blob/master/LICENSE)\n- [Static Typing for Python (Python official backport package)](https://github.com/python/typing)\n- [html-minifier, MIT License](https://github.com/Kaumer/html-minifier/blob/master/LICENSE)\n- [Material Icons](https://fonts.google.com/icons?selected=Material+Icons:search:), [APACHE LICENSE, VERSION 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimon-ritchie%2Fapysc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimon-ritchie%2Fapysc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimon-ritchie%2Fapysc/lists"}