PyDepth

About

Updated:

PyDepth is a written record of how Python behaves when you look underneath it. Not tutorials, not release summaries, not opinions about which framework won. Entries take a claim that gets repeated in code review, find the mechanism that produced it, and measure whether it is still true on a current interpreter.

What gets published here

Four kinds of entry, marked by their category:

Runtime — what CPython does with the objects, modules and frames you hand it. Object layout, the import system, the specialising interpreter, memory behaviour.

Concurrency — threads, the GIL, asyncio and the event loop. What is actually parallel, what is merely concurrent, and what each one costs.

Tooling — what the toolchain does at build, import or type-check time. Import graphs, annotation resolution, packaging, and the cost of the checks that run before your code does.

Frameworks — Django, FastAPI, SQLAlchemy. How something behaves inside a real request rather than in the quickstart, counted in queries and milliseconds.

The standard

Every entry answers one question with one of three kinds of evidence, in this order of preference.

Source. What the interpreter or the library actually does, read from the code that does it.

Reproduction. A script short enough to read, in the entry, that produces the behaviour being described.

Measurement. A number, produced by a harness and printed with the interpreter version and the machine it ran on. Every entry names the script it ran by path, and those paths resolve against the experiments repository. Reproducing a figure is a clone and one command — two for the Django harness, which needs its own virtual environment.

Terminal output in an entry is pasted, never retyped and never tidied. A figure that cannot be reproduced by running the script that produced it does not get published. Where a result is specific to one build or one platform, the entry says so rather than generalising.

The author

Elliot Sayer writes about Python, its runtimes, frameworks, and the systems behind production applications. His work explores language behavior, concurrency, performance, tooling, and the trade-offs hidden beneath Python’s deceptively simple surface. He prefers source code, reproducible experiments, and measurements over folklore. He writes at PyDepth.

Corrections

An entry that turns out to be wrong is corrected in place, with the change and its date noted at the point where it matters. Nothing is quietly rewritten. If you can show that a measurement here does not reproduce, write to contact@pydepth.com — that is the most useful mail this site receives.

How the site handles data is set out in the Privacy Policy, the Cookie Policy and the Terms of Use.

Arrow keys to move, Enter to open.