pythonlang
's intention is to import all Python 3 Built-In Functions to Javascript, while keeping the performance hit to a minimum.
- Javascript is rife with facepalm inducing quirks and unexpected behaviors
- Python is fun; Its built-ins are reliable, simple and consistent
- Therefore, translating Python's built-ins into JS will reduce the amount of facepalms and make things better overall
- A given built-in is considered complete only if all of its tests from CPython source are translated to JS and passing.
- The implementation in JS is kept as similar as possible to the source implementation of Python in C.
Built-in | Tests written | % Tests passing | Status |
---|---|---|---|
int | 603 | 100% | Stable ✅ |
bool | 5 | 60% | Lacking features, stable |
abs | 8 | 100% | Lacking features, stable |
any | 1 | 100% | Lacking features, stable |
... > 60 untouched |
- Strict equality doesn't work yet, eg:
int(3) == 3 >>> true int(3) === 3 >>> false
- No bundling tools
Q: Are you really going to implement all 69 built-ins?
A: Probably not. Some of them can't be implemented anyway (like classmethod), and some of them are rarely used and are too complex to justify including them (like memoryview)
PM me at giladbrn@gmail.com if you have any questions, ideas as to what behaviors you would like to see, etc.
You're welcome to submit PRs at https://github.com/giladbarnea/pythonlang.