# Python - [Writing your `pyproject.toml`](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/) - [[pythonic|Pythonic]], a memo of syntactic sugars to achieve Pythonic programming. - [Python HowTo](https://docs.python.org/3/howto/) - [Python Essays](https://www.python.org/doc/essays/) - [The Hitchhiker’s Guide to Python!](https://docs.python-guide.org), by Kenneth Reitz, author of `requests` - [PyVideo](https://pyvideo.org/) ## Implementations - CPython, runs Python byte-code - PyPy, translates Python to machine code with JIT compiler, more performant than CPython. - Jython (for JVM) and IronPython (.NET) - Numba, a JIT compiler that translates a subset of Python and NumPy. - IPython, added interactive features, used in [[jupyter|Jupyter Notebook]] - Pyodide, and on top of which, PyScript (by Anaconda), translates Python to [[wasm|WASM]]. Access to internal interpreter state is controlled by GIL, which only one Python thread can hold, therefore only one thread can run Python code at a time. However, built-int function or any extension written in C, or operates at Python/C API level, can release the GIL. System calls also release GIL. ## Libraries - TensorFlow and PyTorch - Dask, to farm out work to local processes or clusters of machines. ## Tooling - [[venv]], `virtualenv`, `pyenv`, `pyenv-virtualenv`, `pipenv`, and now the Rust based [`uv`](https://docs.astral.sh/uv/) - LSP: Rust based [Pyrefly](https://pyrefly.org/) and [Ruff](https://docs.astral.sh/ruff/), note that Ruff doesn't provide autocompletion. Use with `ty`. ## [[typing|Typing]] System Python will remain a dynamically typed language, and type hints should always be optional. -- Guido ### Type Checkers - [`Mypy`](https://www.mypy-lang.org/), originated in Dropbox, the official Python type-checker, written in Python. - [`Pyright`](https://github.com/microsoft/pyright) by Microsoft, written in Python and TypeScript - [`Pyre`](https://pyre-check.org/), and the latest [`Pyrefly`](https://pyrefly.org/) by Meta, written in Rust - [`Pytype`](https://google.github.io/pytype/) by Google, written in Python - [`ty`](https://github.com/astral-sh/ty), built by Astral with Rust.