# 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.