https://wiki.python.org/moin/PythonImplementations

CPython Variants

Reduced Python Variants

MicroPython - 3.4 Python for microcontrollers (runs on the pyboard and the BBC Microbit)

CircuitPython - 3.4 Adafruit’s branch of MicroPython


CPython Variants
    Pyston - 3.8
    Cinder - 3.10
    Pyjion - 3.10  .net
    S6     - 3.7

Working Implementations:
    PyPy - 3.9.19 Python in Python, includes a tracing JIT compiler
    Jython - 2.7 Python in Java for the Java platform
    IronPython - 3.4 Python in C# for the Common Language Runtime (CLR/.NET) and the FePy project's IronPython Community Edition (IPCE)
    GraalPython - Python in Java, using the Graal just-in-time compiler and the Truffle interpreter implementation framework
    Skybison - 3.8 A C++ from scratch implementation of Python 3.8 using a moving GC, hidden classes and a template JIT.
    Brython - a way to run Python in the browser through translation to JavaScript
    CLPython - Python in Common Lisp
    HotPy - a virtual machine for Python supporting bytecode optimisation and translation (to native code) using type information gathered at runtime
    pyjs - (formally Pyjamas) a Python to JavaScript compiler plus Web/GUI framework
    PyMite - Python for embedded devices
    pyvm - a Python-related virtual machine and software suite providing a nearly self-contained "userspace" system
    RapydScript - a Python-like language that compiles to JavaScript
    SNAPpy - "a subset of the Python language that has been optimized for use in low-power embedded devices" (apparently proprietary)
    tinypy - a minimalist implementation of Python in 64K of code
    Transcrypt - Python 3.6 to JavaScript precompiler with lean and fast generated code, sourcemaps, built-in minification, optional static type-checking, JSX support

https://cython.org/

https://micropython.org/ | Docs

import array;        print(x := array.array('i', [-1, 0, 1, 100]), type(x[3]), x[3])
import  binascii;    print(binascii.hexlify(b'1234', ' '))
                     print(hex(10))
import  collections; print(collections.OrderedDict({'a':1, 'b':2}))
import  errno;       print(errno.errorcode[2])
import  gc;          gc.collect(); print(gc.mem_alloc(), gc.mem_free())
import  gzip;        print(len(gzip.compress(b'*'*1000)))
import  hashlib;     print(hashlib.sha256(b'123'))
import  platform;    print(platform.platform())
import  platform;    print(platform.platform(), '\n', platform.python_compiler())

# =====================

from	machine	import	Pin
import	time

led = Pin(15, Pin.OUT)
led(1)
time.sleep(1)
led(0)

# ===========================

from	machine	import	Pin
import	time

btn = Pin(0, Pin.IN, Pin.PULL_UP)
while True:
    print(btn(), end=' ')
    time.sleep_ms(200)

# ==========================

from	machine	import	Pin, Signal
import	time

btn = Signal(Pin(0, Pin.IN, Pin.PULL_UP), invert=True)
while True:
    print(btn(), end=' ')
    time.sleep_ms(200)

# ============================

from	machine	import	Pin, time_pulse_us
import	time

btn = Pin(0, Pin.IN, Pin.PULL_UP)
while True:
    t = time_pulse_us(btn, 1)
    print(t)


