A revised version of CPython’s turtle module, browser-friendly.
The optional standalone mode supports interactive CPython use. The abbreviated docstrings remain less suitable for help() than CPython’s implementation.
All public methods/functions of the CPython version should exist, if only to print out a warning that they are not implemented. The intent is to make it easier to “port” any existing turtle program from CPython to the browser.
Initially the code was part of Brython, then ported to Basthon, then published as a standalone package.
Installation
pip install basthon-turtle
For a live, persistent browser window in a regular CPython session, install the proof-of-concept standalone extra:
pip install "basthon-turtle[standalone]"
or
import micropip
await micropip.install('basthon-turtle')
Usage
Note: if running multiple times you need to restart the state of screen with turtle.restart() function.
Standalone CPython
The browser starts lazily on the first visible turtle operation. It remains alive between commands and receives incremental drawing updates:
from turtle import forward, left
forward(100)
left(90)
forward(50)
Jupyter
Install the portable persistent Jupyter renderer with:
pip install "basthon-turtle[jupyter]"
Turtle commands are buffered during each cell and animated in one persistent inline SVG widget after the cell finishes:
from turtle import forward, left
forward(100)
left(90)
forward(50)
For a JupyterLab-specific panel, install basthon-turtle[sidecar] instead. Call jupyter_sidecar(False) before drawing to force the portable inline widget when sidecar is otherwise available. The original done() and svg() workflow remains available.
Marimo
import marimo as mo
from turtle import forward, done, svg
forward(100)
done()
forward(100)
mo.Html(svg())
Credits
bearney74
André Roberge
Romain Casati
Implementation
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file basthon_turtle-0.2.0.tar.gz.
File metadata
- Download URL: basthon_turtle-0.2.0.tar.gz
- Upload date:
- Size: 44.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
853b64ded409170394b2eb8162572e05d6327bf16416a2ee22d41cd03c00b2c3
|
|
| MD5 |
be2aeb46d771f6c067a911de78fb70e3
|
|
| BLAKE2b-256 |
08c78a7cbd02f8328d2b3911d44b7234e465351f0f335f49aa95407645418e7f
|
File details
Details for the file basthon_turtle-0.2.0-py3-none-any.whl.
File metadata
- Download URL: basthon_turtle-0.2.0-py3-none-any.whl
- Upload date:
- Size: 34.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c71f897247840ad3c12413fba3ed6b55ac6185b84d5536cf548e34dcbb930e49
|
|
| MD5 |
b0e094c92f383e464204aee26fe62f89
|
|
| BLAKE2b-256 |
d55d268738b8d92f8a9a1538374b63b12fa7d87e14034599191b17122eb0ff68
|