{"id":20627869,"url":"https://github.com/vispy/pythonjs","last_synced_at":"2026-03-09T12:02:54.768Z","repository":{"id":21722026,"uuid":"25043631","full_name":"vispy/pythonjs","owner":"vispy","description":"Basic NumPy-aware Python-\u003eJavaScript translator (experimental)","archived":false,"fork":false,"pushed_at":"2014-10-10T19:32:33.000Z","size":132,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-15T04:54:09.086Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vispy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-10T16:24:22.000Z","updated_at":"2018-03-17T08:13:36.000Z","dependencies_parsed_at":"2022-08-17T16:55:16.950Z","dependency_job_id":null,"html_url":"https://github.com/vispy/pythonjs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vispy/pythonjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vispy%2Fpythonjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vispy%2Fpythonjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vispy%2Fpythonjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vispy%2Fpythonjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vispy","download_url":"https://codeload.github.com/vispy/pythonjs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vispy%2Fpythonjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30294697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T11:12:22.024Z","status":"ssl_error","status_checked_at":"2026-03-09T11:10:54.577Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-16T13:18:29.467Z","updated_at":"2026-03-09T12:02:54.750Z","avatar_url":"https://github.com/vispy.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"pythonjs\n========\n\n[This is part of Mozilla's collaborate project](http://collaborate.mozillascience.org/projects/hpdataVis).\n\nThis is a *very basic* Python-\u003eJavaScript translator written in Python. This translator will convert relatively simple Python/NumPy functions to JavaScript, using our [numpy.js](https://github.com/vispy/numpy.js). Typically, these functions will be interactivity functions (like callback functions reacting to mouse movements, key strokes...) and emitting GLIR (OpenGL) commands to update the visualization.\n\nWe'll start from PythonJS and Pythonium code. We'll only support the most common Python/NumPy syntactic constructs. The code of these projects is based on the Python `ast` module. They generate JavaScript code dynamically while visiting the Python AST.\n\n* `for` loops\n* `if`\n* NumPy indexing (converted to `get` and `set` in numpy.js)\n* function calls and definitions\n* tuples and lists converted to arrays\n\nVispy-specific features:\n\n* Vispy gloo commands will be translated to vispy.gloo.js calls\n* There should be a global symbol table that is used to access gloo objects in both Python and JavaScript\n\n\n## Features not implemented\n\nThese features won't be implemented, at least in a first approach. The idea is to only support numerical computing functions relying on the `ndarray` structure.\n\n* Classes\n* Dynamic features (`getattr` and co)\n* Most Python builtin functions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvispy%2Fpythonjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvispy%2Fpythonjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvispy%2Fpythonjs/lists"}