| ASGI / WSGI |
the server ↔ application interfaces for async (uvicorn, FastAPI) and sync (gunicorn, Flask, Django) Python web apps |
| bytecode |
the instructions CPython's virtual machine executes; produced by compiling source, cached in __pycache__ |
| context manager |
an object with __enter__/__exit__, used with with for guaranteed cleanup |
| coroutine |
an async def function's result; a pausable computation driven by an event loop |
| CPython |
the reference implementation of Python, written in C |
| decorator |
a callable that takes a function (or class) and returns a replacement; applied with @ |
| descriptor |
an object with __get__/__set__ that customizes attribute access (property, methods, ORM fields) |
| duck typing |
using an object by what it can do, not what class it is |
| dunder method |
a "double underscore" special method (__len__, __add__) that hooks into Python syntax |
| EAFP |
"easier to ask forgiveness than permission": try, then handle the exception |
| event loop |
the scheduler at the heart of asyncio; runs ready tasks and waits on I/O readiness |
| free-threaded build |
a CPython build without the GIL (python3.14t) |
| generator |
a function with yield; produces values lazily and keeps its state between them |
| GIL |
Global Interpreter Lock: lets one thread at a time run Python bytecode in the default build |
| hashable |
has a stable __hash__ consistent with __eq__; can be a dict key or set member |
| iterable / iterator |
something you can loop over / the object that tracks the position and yields items |
| lockfile |
uv.lock: exact versions and hashes of every dependency |
| MRO |
method resolution order; the class search order used by attribute lookup and super() |
| mutable / immutable |
can / cannot be changed in place after creation |
| namespace |
a mapping from names to objects (module globals, a function's locals, a class body) |
| pickle |
Python's object serialization format; can execute code when loaded |
| Protocol |
a structural type: "anything with these methods", checked statically |
| reference count |
the number of references to an object; at zero, CPython frees it |
| safetensors |
a tensor file format with no code execution, used for model weights |
| slots |
__slots__: fixed attribute storage without a per-instance dict |
| tensor |
an n-dimensional array that can live on a GPU and track gradients (PyTorch) |
| type hint |
an annotation (x: int) ignored at run time and checked by mypy/pyright |
| vectorization |
expressing a computation as whole-array operations so a native library runs the loop |
| virtual environment |
an isolated site-packages directory tied to one interpreter (.venv) |
| wheel |
a built, ready-to-install package (.whl) |