PScript is a Python to JavaScript compiler, and is also the name of the subset of Python that this compiler supports. It was originally developed as a part of [Flexx]https://github.com/flexxui/flexx) and is now a project on its own.
PScript is pure Python and requires Python 3.6+ (including Pypy). It has no further dependencies.
pip install pscript
from pscript import py2js
def foo(a, b=2):
print(a - b)
print(py2js(foo))
Gives:
var foo;
foo = function flx_foo (a, b) {
b = (b === undefined) ? 2: b;
console.log((a - b));
return null;
};
PScript aims to support all modern browsers, including Firefox, Chrome and Edge.
Internet Explorer is in principal supported from version 9, though some constructs
(e.g. async
and await
) do not work in Internet Explorer.
To give an idea of what PScript can do, here are some examples in the wild:
- Obviously, everything built in Flexx uses PScript, see e.g. these examples
- The front-end of TimeTagger.app is built in Python using PScript.
Let us know if you know more!
PScript makes use of the liberal 2-clause BSD license. See LICENSE for details.