
transcript
show notes
- Tachyon: A sampling profiler ships in Python 3.15's stdlib
- Python Workers are now generally available on Cloudflare
- Flet 1.0 - build cross-platform apps in Python
- marimo-book: Build static books from marimo notebooks
- Extras
- Joke
Sponsored by Logfire from Pydantic: pythonbytes.fm/logfire Connect with the hosts
- Michael: Mastodon / BlueSky / X / LinkedIn
- Calvin: Mastodon / BlueSky / X / LinkedIn
- Show: Mastodon / BlueSky / X
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesday at 7am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: Tachyon: A sampling profiler ships in Python 3.15's stdlib
- Python 3.15 adds the
profilingpackage per PEP 799:profiling.tracing(where cProfile moved) andprofiling.sampling, the new sampler called Tachyon - py-spy and Austin exist but copy raw interpreter bytes with no API, so every CPython release risks breaking them; one in the stdlib is a contract to stop breaking profilers
- Defaults: 1 kHz, main thread, wall clock, and a
-livetop-like view for poking at a slow server - Output is flexible: pstats,
-flamegraph,-diff-flamegraphagainst a baseline,-heatmapon source lines,-opcodesfor specialized bytecode,-geckofor Firefox Profiler with GIL and GC markers - Profiling modes: wall, cpu, gil (which function is starving my other threads?), and exception, plus
-async-awareto see the task graph instead of justselect(),-all-threads, and-subprocessesforking a profiler per child - Near-zero overhead for production; guidance is 10-30 second windows on representative load, and free-threaded builds divide the rate by thread count
- Attach to a running PID, same minor version only; ptrace permissions are the main friction. A 3.14 backport already exists on GitHub
- Caveat: it only sees Python frames, so 90% in
calculate()hides NumPy underneath. For native stacks there's Cronon from HRT, 200k samples/sec over DWARF, not yet open source
Calvin #2: Python Workers are now generally available on Cloudflare
- Python Workers are out of beta - now GA, "first-class" language on Cloudflare's Developer Platform
- No more manual JS interop: bindings (queues, R2, D1, Durable Objects) now work natively in Python, e.g. self.env.QUEUE.send({...})
- Runs on Pyodide (WASM-compiled Python), with real TCP socket support for DB connectivity
- Frameworks supported: FastAPI, Django, Flask; AI libs like OpenAI SDK, LangChain, MCP
- Underlying platform work formalized as PEP 783 (PyEmscripten), after a year of discussion
- Bottom line: write real Python on Cloudflare's edge, no JS glue code required
Calvin #3: Flet 1.0 - build cross-platform apps in Python
- Flet hits 1.0 - build Flutter-backed apps from pure Python, no frontend experience needed
- One codebase targets six platforms: iOS, Android, Windows, macOS, Linux, web
- 150+ built-in UI controls, plus support for custom controls / wrapping Flutter packages
- Mobile now supports real Python packages: NumPy, pandas, Pillow, cryptography
- Comes with pytest-based UI testing and an MCP integration for AI coding assistants
- Milestone lands 4+ years after its first PyPI release (Sept 2022) - signals "production ready," not experimental
Michael #4: marimo-book: Build static books from marimo notebooks
marimo-book is a Jupyter-Book-style static site generator built specifically for marimo .py notebooks. It ships polished multi-page sites with Material for MkDocs theming, full-text search, dark mode, and code copy, plus a content-hashed incremental build cache that drops rebuilds from 100+ seconds to roughly 3 seconds on real books. Standout extras include anywidget rendering without a kernel, static reactivity for discrete sliders via pre-rendered lookup tables, an opt-in WASM/Pyodide mode per chapter, and per-chapter launch buttons.
- If you've wanted to publish a marimo notebook as a real book or course site without hosting a kernel, marimo-book gives you the static, searchable, fast-loading output you'd expect from Jupyter Book.
- Alpha (0.1.x), but in production: pin marimo-book>=0.1.5,<0.2; the book.yml schema is stable for v0.1, and dartbrains.org is a real-world user.
- Two-stage build by design: a marimo-aware preprocessor emits plain Markdown + inline HTML, then mkdocs (Material today, zensical tomorrow) renders it. Not a mkdocs plugin, so the shell stays swappable.
- Interactive widgets without a kernel: anywidget Canvas/Three.js/Plotly mounts render statically, and mo.ui.slider with explicit steps gets pre-computed as a static lookup table.
- WASM escape hatch per chapter: set mode: wasm and the chapter routes through marimo's MarimoIslandGenerator, shipping the marimo runtime + Pyodide bundle for full reactivity where you need it.
- Per-chapter launch buttons and extras: readers can jump to molab, GitHub, or a downloaded .py; optional [social], [linkcheck], and [pdf] extras cover OG cards, htmlproofer, and WeasyPrint PDF export.
- Sandboxed notebooks: the sandbox mode reads PEP 723 inline metadata and provisions per-notebook envs via uv for portable builds, at the cost of slower first runs.
Extras
Calvin:
- Great overview of a new feature in Python 3.15 - frozendict
Michael:
- Microsoft Plugs Nearly 1,000 Security Holes in Windows
- I’ll be speaking at PyBay 2026
- PyCon NL on October 15 in Utrecht
- Heading to Europe in October? PyCon NL is October 15th in Utrecht. One day, three tracks, about 350 people. It's an hour by train from Schiphol. There's also a session just for community organizers from groups like PyLadies, PyData, and Django. And the location fits. The Netherlands is where Python itself was born.
Joke: You have homework (no really ;) )
Watch Interview with Big Data engineer in 2026 by Kai Lentit