Talk Python To Me
Talk Python To Me

Talk Python to Me is a weekly podcast hosted by developer and entrepreneur Michael Kennedy. We dive deep into the popular packages and software developers, data scientists, and incredible hobbyists doing amazing things with Python. If you're new to Python, you'll quickly learn the ins and outs of the community by hearing from the leaders. And if you've been Pythoning for years, you'll learn about your favorite packages and the hot new ones coming out of open source.

Today on Talk Python, the creators behind FastAPI, Flask, Django, Quart, and Litestar get practical about running apps based on their framework in production. Deployment patterns, async gotchas, servers, scaling, and the stuff you only learn at 2 a.m. when the pager goes off. For Django, we have Carlton Gibson and Jeff Triplet. For Flask, we have David Lord and Phil Jones, and on team Litestar we have Janek Nouvertné and Cody Fincher, and finally Sebastián Ramírez from FastAPI is here. Let’s jump in. Episode sponsors Talk Python Courses Python in Production Links from the show Carlton Gibson - Django: github.com Sebastian Ramirez - FastAPI: github.com David Lord - Flask: davidism.com Phil Jones - Flask and Quartz(async): pgjones.dev Yanik Nouvertne - LiteStar: github.com Cody Fincher - LiteStar: github.com Jeff Triplett - Django: jefftriplett.com Django: www.djangoproject.com Flask: flask.palletsprojects.com Quart: quart.palletsprojects.com Litestar: litestar.dev FastAPI: fastapi.tiangolo.com Coolify: coolify.io ASGI: asgi.readthedocs.io WSGI (PEP 3333): peps.python.org Granian: github.com Hypercorn: github.com uvicorn: uvicorn.dev Gunicorn: gunicorn.org Hypercorn: hypercorn.readthedocs.io Daphne: github.com Nginx: nginx.org Docker: www.docker.com Kubernetes: kubernetes.io PostgreSQL: www.postgresql.org SQLite: www.sqlite.org Celery: docs.celeryq.dev SQLAlchemy: www.sqlalchemy.org Django REST framework: www.django-rest-framework.org Jinja: jinja.palletsprojects.com Click: click.palletsprojects.com HTMX: htmx.org Server-Sent Events (SSE): developer.mozilla.org WebSockets (RFC 6455): www.rfc-editor.org HTTP/2 (RFC 9113): www.rfc-editor.org HTTP/3 (RFC 9114): www.rfc-editor.org uv: docs.astral.sh Amazon Web Services (AWS): aws.amazon.com Microsoft Azure: azure.microsoft.com Google Cloud Run: cloud.google.com Amazon ECS: aws.amazon.com AlloyDB for PostgreSQL: cloud.google.com Fly.io: fly.io Render: render.com Cloudflare: www.cloudflare.com Fastly: www.fastly.com Watch this episode on YouTube: youtube.com Episode #533 deep-dive: talkpython.fm/533 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Python in 2025 is in a delightfully refreshing place: the GIL's days are numbered, packaging is getting sharper tools, and the type checkers are multiplying like gremlins snacking after midnight. On this episode, we have an amazing panel to give us a range of perspectives on what matter in 2025 in Python. We have Barry Warsaw, Brett Cannon, Gregory Kapfhammer, Jodie Burchell, Reuven Lerner, and Thomas Wouters on to give us their thoughts. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Talk Python Courses Links from the show Python Software Foundation (PSF): www.python.org PEP 810: Explicit lazy imports: peps.python.org PEP 779: Free-threaded Python is officially supported: peps.python.org PEP 723: Inline script metadata: peps.python.org PyCharm: www.jetbrains.com JetBrains: www.jetbrains.com Visual Studio Code: code.visualstudio.com pandas: pandas.pydata.org PydanticAI: ai.pydantic.dev OpenAI API docs: platform.openai.com uv: docs.astral.sh Hatch: github.com PDM: pdm-project.org Poetry: python-poetry.org Project Jupyter: jupyter.org JupyterLite: jupyterlite.readthedocs.io PEP 690: Lazy Imports: peps.python.org PyTorch: pytorch.org Python concurrent.futures: docs.python.org Python Package Index (PyPI): pypi.org EuroPython: tickets.europython.eu TensorFlow: www.tensorflow.org Keras: keras.io PyCon US: us.pycon.org NumFOCUS: numfocus.org Python discussion forum (discuss.python.org): discuss.python.org Language Server Protocol: microsoft.github.io mypy: mypy-lang.org Pyright: github.com Pylance: marketplace.visualstudio.com Pyrefly: github.com ty: github.com Zuban: docs.zubanls.com Jedi: jedi.readthedocs.io GitHub: github.com PyOhio: www.pyohio.org Watch this episode on YouTube: youtube.com Episode #532 deep-dive: talkpython.fm/532 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Have you ever thought about getting your small product into production, but are worried about the cost of the big cloud providers? Or maybe you think your current cloud service is over-architected and costing you too much? Well, in this episode, we interview Michael Kennedy, author of "Talk Python in Production," a new book that guides you through deploying web apps at scale with right-sized engineering. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Christopher Trudeau - guest host: www.linkedin.com Michael's personal site: mkennedy.codes Talk Python in Production Book: talkpython.fm glances: github.com btop: github.com Uptimekuma: uptimekuma.org Coolify: coolify.io Talk Python Blog: talkpython.fm Hetzner (€20 credit with link): hetzner.cloud OpalStack: www.opalstack.com Bunny.net CDN: bunny.net Galleries from the book: github.com Pandoc: pandoc.org Docker: www.docker.com Watch this episode on YouTube: youtube.com Episode #531 deep-dive: talkpython.fm/531 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
For years, building interactive widgets in Python notebooks meant wrestling with toolchains, platform quirks, and a mountain of JavaScript machinery. Most developers took one look and backed away slowly. Trevor Manz decided that barrier did not need to exist. His idea was simple: give Python users just enough JavaScript to unlock the web’s interactivity, without dragging along the rest of the web ecosystem. That idea became anywidget, and it is quickly becoming the quiet connective tissue of modern interactive computing. Today we dig into how it works, why it has taken off, and how it might change the way we explore data. Episode sponsors Seer: AI Debugging, Code TALKPYTHON PyCharm, code STRONGER PYTHON Talk Python Courses Links from the show Trevor on GitHub: github.com anywidget GitHub: github.com Trevor's SciPy 2024 Talk: www.youtube.com Marimo GitHub: github.com Myst (Markdown docs): mystmd.org Altair: altair-viz.github.io DuckDB: duckdb.org Mosaic: uwdata.github.io ipywidgets: ipywidgets.readthedocs.io Tension between Web and Data Sci Graphic: blobs.talkpython.fm Quak: github.com Walk through building a widget: anywidget.dev Widget Gallery: anywidget.dev Video: How do I anywidget?: www.youtube.com PyCharm + PSF Fundraiser: pycharm-psf-2025 code STRONGER PYTHON Watch this episode on YouTube: youtube.com Episode #530 deep-dive: talkpython.fm/530 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
A lot of people building software today never took the traditional CS path. They arrived through curiosity, a job that needed automating, or a late-night itch to make something work. This week, David Kopec joins me to talk about rebuilding computer science for exactly those folks, the ones who learned to program first and are now ready to understand the deeper ideas that power the tools they use every day. Episode sponsors Sentry Error Monitoring, Code TALKPYTHON NordStellar Talk Python Courses Links from the show David Kopec: davekopec.com Classic Computer Science Book: amazon.com Computer Science from Scratch Book: computersciencefromscratch.com Computer Science from Scratch at NoStartch (CSFS30 for 30% off): nostarch.com Watch this episode on YouTube: youtube.com Episode #529 deep-dive: talkpython.fm/529 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
In this episode, I’m talking with Vincent Warmerdam about treating LLMs as just another API in your Python app, with clear boundaries, small focused endpoints, and good monitoring. We’ll dig into patterns for wrapping these calls, caching and inspecting responses, and deciding where an LLM API actually earns its keep in your architecture. Episode sponsors Seer: AI Debugging, Code TALKPYTHON NordStellar Talk Python Courses Links from the show Vincent on X: @fishnets88 Vincent on Mastodon: @koaning LLM Building Blocks for Python Co-urse: training.talkpython.fm Top Talk Python Episodes of 2024: talkpython.fm LLM Usage - Datasette: llm.datasette.io DiskCache - Disk Backed Cache (Documentation): grantjenks.com smartfunc - Turn docstrings into LLM-functions: github.com Ollama: ollama.com LM Studio - Local AI: lmstudio.ai marimo - A Next-Generation Python Notebook: marimo.io Pydantic: pydantic.dev Instructor - Complex Schemas & Validation (Python): python.useinstructor.com Diving into PydanticAI with marimo: youtube.com Cline - AI Coding Agent: cline.bot OpenRouter - The Unified Interface For LLMs: openrouter.ai Leafcloud: leaf.cloud OpenAI looks for its "Google Chrome" moment with new Atlas web browser: arstechnica.com Watch this episode on YouTube: youtube.com Episode #528 deep-dive: talkpython.fm/528 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Today we’re digging into the Model Context Protocol, or MCP. Think LSP for AI: build a small Python service once and your tools and data show up across editors and agents like VS Code, Claude Code, and more. My guest, Den Delimarsky from Microsoft, helps build this space and will keep us honest about what’s solid versus what's just shiny. We’ll keep it practical: transports that actually work, guardrails you can trust, and a tiny server you could ship this week. By the end, you’ll have a clear mental model and a path to plug Python into the internet of agents. Episode sponsors Sentry AI Monitoring, Code TALKPYTHON NordStellar Talk Python Courses Links from the show Den Delimarsky: den.dev Agentic AI Programming for Python Course: training.talkpython.fm Model Context Protocol: modelcontextprotocol.io Model Context Protocol Specification (2025-03-26): modelcontextprotocol.io MCP Python Package (PyPI): pypi.org Awesome MCP Servers (punkpeye) GitHub Repo: github.com Visual Studio Code Docs: Copilot MCP Servers: code.visualstudio.com GitHub MCP Server (GitHub repo): github.com GitHub Blog: Meet the GitHub MCP Registry: github.blog MultiViewer App: multiviewer.app GitHub Blog: Spec-driven development with AI (open source toolkit): github.blog Model Context Protocol Registry (GitHub): github.com mcp (GitHub organization): github.com Tailscale: tailscale.com Watch this episode on YouTube: youtube.com Episode #527 deep-dive: talkpython.fm/527 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Today, we’re talking about building real AI products with foundation models. Not toy demos, not vibes. We’ll get into the boring dashboards that save launches, evals that change your mind, and the shift from analyst to AI app builder. Our guide is Hugo Bowne-Anderson, educator, podcaster, and data scientist, who’s been in the trenches from scalable Python to LLM apps. If you care about shipping LLM features without burning the house down, stick around. Episode sponsors Posit NordStellar Talk Python Courses Links from the show Hugo Bowne-Anderson: x.com Vanishing Gradients Podcast: vanishinggradients.fireside.fm Fundamentals of Dask: High Performance Data Science Course: training.talkpython.fm Building LLM Applications for Data Scientists and Software Engineers: maven.com marimo: a next-generation Python notebook: marimo.io DevDocs (Offline aggregated docs): devdocs.io Elgato Stream Deck: elgato.com Sentry's Seer: talkpython.fm The End of Programming as We Know It: oreilly.com LorikeetCX AI Concierge: lorikeetcx.ai Text to SQL & AI Query Generator: text2sql.ai Inverse relationship enthusiasm for AI and traditional projects: oreilly.com Watch this episode on YouTube: youtube.com Episode #526 deep-dive: talkpython.fm/526 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Building a UI in Python usually means choosing between "quick and limited" or "powerful and painful." What if you could write modern, component-based web apps in pure Python and still keep full control? NiceGUI, pronounced "Nice Guy" sits on FastAPI with a Vue/Quasar front end, gives you real components, live updates over websockets, and it’s running in production at Zauberzeug, a German robotic company. On this episode, I’m talking with NiceGUI’s creators, Rodja Trappe and Falko Schindler, about how it works, where it shines, and what’s coming next. With version 3.0 releasing around the same time this episode comes out, we spend the end of the episode celebrating the 3.0 release. Episode sponsors Posit Agntcy Talk Python Courses Links from the show Rodja Trappe: github.com Falko Schindler: github.com NiceGUI 3.0.0 release: github.com Full LLM/Agentic AI docs instructions for NiceGUI: github.com Zauberzeug: zauberzeug.com NiceGUI: nicegui.io NiceGUI GitHub Repository: github.com NiceGUI Authentication Examples: github.com NiceGUI v3.0.0rc1 Release: github.com Valkey: valkey.io Caddy Web Server: caddyserver.com JustPy: justpy.io Tailwind CSS: tailwindcss.com Quasar ECharts v5 Demo: quasar-echarts-v5.netlify.app AG Grid: ag-grid.com Quasar Framework: quasar.dev NiceGUI Interactive Image Documentation: nicegui.io NiceGUI 3D Scene Documentation: nicegui.io Watch this episode on YouTube: youtube.com Episode #525 deep-dive: talkpython.fm/525 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Python in 2025 is different. Threads really are about to run in parallel, installs finish before your coffee cools, and containers are the default. In this episode, we count down 38 things to learn this year: free-threaded CPython, uv for packaging, Docker and Compose, Kubernetes with Tilt, DuckDB and Arrow, PyScript at the edge, plus MCP for sane AI workflows. Expect practical wins and migration paths. No buzzword bingo, just what pays off in real apps. Join me along with Peter Wang and Calvin Hendrix-Parker for a fun, fast-moving conversation. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Calvin Hendryx-Parker: github.com/calvinhp Peter on BSky: @wang.social Free-Threaded Wheels: hugovk.github.io Tilt: tilt.dev The Five Demons of Python Packaging That Fuel Our ...: youtube.com Talos Linux: talos.dev Docker: Accelerated Container Application Development: docker.com Scaf - Six Feet Up: sixfeetup.com BeeWare: beeware.org PyScript: pyscript.net Cursor: The best way to code with AI: cursor.com Cline - AI Coding, Open Source and Uncompromised: cline.bot Watch this episode on YouTube: youtube.com Episode #524 deep-dive: talkpython.fm/524 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Python typing got fast enough to feel invisible. Pyrefly is a new, open source type checker and IDE language server from Meta, written in Rust, with a focus on instant feedback and real-world DX. Today, we will dig into what it is, why it exists, and how it plays with the rest of the typing ecosystem. We have Abby Mitchell, Danny Yang, and Kyle Into from Pyrefly here to dive into the project. Episode sponsors Sentry Error Monitoring, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Abby Mitchell: linkedin.com Danny Yang: linkedin.com Kyle Into: linkedin.com Pyrefly: pyrefly.org Pyrefly Documentation: pyrefly.org Pyrefly Installation Guide: pyrefly.org Pyrefly IDE Guide: pyrefly.org Pyrefly GitHub Repository: github.com Pyrefly VS Code Extension: marketplace.visualstudio.com Introducing Pyrefly: A New Type Checker and IDE Experience for Python: engineering.fb.com Pyrefly on PyPI: pypi.org InfoQ Coverage: Meta Pyrefly Python Typechecker: infoq.com Pyrefly Discord Invite: discord.gg Python Typing Conformance (GitHub): github.com Typing Conformance Leaderboard (HTML Preview): htmlpreview.github.io Watch this episode on YouTube: youtube.com Episode #523 deep-dive: talkpython.fm/523 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Today we’re turning tiny tips into big wins. Khuyen Tran, creator of CodeCut.ai, has shipped hundreds of bite-size Python and data science snippets across four years. We dig into open-source tools you can use right now, cleaner workflows, and why notebooks and scripts don’t have to be enemies. If you want faster insights with fewer yak-shaves, this one’s packed with takeaways you can apply before lunch. Let’s get into it. Episode sponsors Sentry Error Monitoring, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Khuyen Tran (LinkedIn): linkedin.com Khuyen Tran (GitHub): github.com CodeCut: codecut.ai Production-ready Data Science Book (discount code TalkPython): codecut.ai Why UV Might Be All You Need: codecut.ai How to Structure a Data Science Project for Readability and Transparency: codecut.ai Stop Hard-coding: Use Configuration Files Instead: codecut.ai Simplify Your Python Logging with Loguru: codecut.ai Git for Data Scientists: Learn Git Through Practical Examples: codecut.ai Marimo (A Modern Notebook for Reproducible Data Science): codecut.ai Text Similarity & Fuzzy Matching Guide: codecut.ai Loguru (Python logging made simple): github.com Hydra: hydra.cc Marimo: marimo.io Quarto: quarto.org Show Your Work! Book: austinkleon.com Watch this episode on YouTube: youtube.com Episode #522 deep-dive: talkpython.fm/522 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
English is now an API. Our apps read untrusted text; they follow instructions hidden in plain sight, and sometimes they turn that text into action. If you connect a model to tools or let it read documents from the wild, you have created a brand new attack surface. In this episode, we will make that concrete. We will talk about the attacks teams are seeing in 2025, the defenses that actually work, and how to test those defenses the same way we test code. Our guides are Tori Westerhoff and Roman Lutz from Microsoft. They help lead AI red teaming and build PyRIT, a Python framework the Microsoft AI Red Team uses to pressure test real products. By the end of this hour you will know where the biggest risks live, what you can ship this quarter to reduce them, and how PyRIT can turn security from a one time audit into an everyday engineering practice. Episode sponsors Sentry AI Monitoring, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Tori Westerhoff: linkedin.com Roman Lutz: linkedin.com PyRIT: aka.ms/pyrit Microsoft AI Red Team page: learn.microsoft.com 2025 Top 10 Risk & Mitigations for LLMs and Gen AI Apps: genai.owasp.org AI Red Teaming Agent: learn.microsoft.com 3 takeaways from red teaming 100 generative AI products: microsoft.com MIT report: 95% of generative AI pilots at companies are failing: fortune.com A couple of "Little Bobby AI" cartoons Give me candy: talkpython.fm Tell me a joke: talkpython.fm Watch this episode on YouTube: youtube.com Episode #521 deep-dive: talkpython.fm/521 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
A couple years ago, Charlie Marsh lit a fire under Python tooling with Ruff and then uv. Today he’s back with something on the other side of that coin: pyx. Pyx isn’t a PyPI replacement. Think server, not just index. It mirrors PyPI, plays fine with pip or uv, and aims to make installs fast and predictable by letting a smart client talk to a smart server. When the client and server understand each other, you get new fast paths, fewer edge cases, and the kind of reliability teams beg for. If Python packaging has felt like friction, this conversation is traction. Let’s get into it. Episode sponsors Six Feet Up Talk Python Courses Links from the show Charlie Marsh on Twitter: @charliermarsh Charlie Marsh on Mastodon: @charliermarsh Astral Homepage: astral.sh Pyx Project: astral.sh Introducing Pyx Blog Post: astral.sh uv Package on GitHub: github.com UV Star History Chart: star-history.com Watch this episode on YouTube: youtube.com Episode #520 deep-dive: talkpython.fm/520 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Today on Talk Python: What really happens when your data work outgrows your laptop. Matthew Rocklin, creator of Dask and cofounder of Coiled, and Nat Tabris a staff software engineer at Coiled join me to unpack the messy truth of cloud-scale Python. During the episode we actually spin up a 1,000 core cluster from a notebook, twice! We also discuss picking between pandas and Polars, when GPUs help, and how to avoid surprise bills. Real lessons, real tradeoffs, shared by people who have built this stuff. Stick around. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Talk Python Courses Links from the show Matthew Rocklin: @mrocklin Nat Tabris: tabris.us Dask: dask.org Coiled: coiled.io Watch this episode on YouTube: youtube.com Episode #519 deep-dive: talkpython.fm/519 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Twenty years after a scrappy newsroom team hacked together a framework to ship stories fast, Django remains the Python web framework that ships real apps, responsibly. In this anniversary roundtable with its creators and long-time stewards: Simon Willison, Adrian Holovaty, Will Vincent, Jeff Triplett, and Thibaud Colas, we trace the path from the Lawrence Journal-World to 1.0, DjangoCon, and the DSF; unpack how a BSD license and a culture of docs, tests, and mentorship grew a global community; and revisit lessons from deployments like Instagram. We talk modern Django too: ASGI and async, HTMX-friendly patterns, building APIs with DRF and Django Ninja, and how Django pairs with React and serverless without losing its batteries-included soul. You’ll hear about Django Girls, Djangonauts, and the Django Fellowship that keep momentum going, plus where Django fits in today’s AI stacks. Finally, we look ahead at the next decade of speed, security, and sustainability. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Sentry AI Monitoring, Code TALKPYTHON Talk Python Courses Links from the show Guests Simon Willison: simonwillison.net Adrian Holovaty: holovaty.com Will Vincent: wsvincent.com Jeff Triplett: jefftriplett.com Thibaud Colas: thib.me Show Links Django's 20th Birthday Reflections (Simon Willison): simonwillison.net Happy 20th Birthday, Django! (Django Weblog): djangoproject.com Django 2024 Annual Impact Report: djangoproject.com Welcome Our New Fellow: Jacob Tyler Walls: djangoproject.com Soundslice Music Learning Platform: soundslice.com Djangonaut Space Mentorship for Django Contributors: djangonaut.space Wagtail CMS for Django: wagtail.org Django REST Framework: django-rest-framework.org Django Ninja API Framework for Django: django-ninja.dev Lawrence Journal-World: ljworld.com Watch this episode on YouTube: youtube.com Episode #518 deep-dive: talkpython.fm/518 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Agentic AI programming is what happens when coding assistants stop acting like autocomplete and start collaborating on real work. In this episode, we cut through the hype and incentives to define “agentic,” then get hands-on with how tools like Cursor, Claude Code, and LangChain actually behave inside an established codebase. Our guest, Matt Makai, now VP of Developer Relations at DigitalOcean, creator of Full Stack Python and Plushcap, shares hard-won tactics. We unpack what breaks, from brittle “generate a bunch of tests” requests to agents amplifying technical debt and uneven design patterns. Plus, we also discuss a sane git workflow for AI-sized diffs. You’ll hear practical Claude tips, why developers write more bugs when typing less, and where open source agents are headed. Hint: The destination is humans as editors of systems, not just typists of code. Episode sponsors Posit Talk Python Courses Links from the show Matt Makai: linkedin.com Plushcap Developer Content Analytics: plushcap.com DigitalOcean Gradient AI Platform: digitalocean.com DigitalOcean YouTube Channel: youtube.com Why Generative AI Coding Tools and Agents Do Not Work for Me: blog.miguelgrinberg.com AI Changes Everything: lucumr.pocoo.org Claude Code - 47 Pro Tips in 9 Minutes: youtube.com Cursor AI Code Editor: cursor.com JetBrains Junie: jetbrains.com Claude Code by Anthropic: anthropic.com Full Stack Python: fullstackpython.com Watch this episode on YouTube: youtube.com Episode #517 deep-dive: talkpython.fm/517 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Python’s data stack is getting a serious GPU turbo boost. In this episode, Ben Zaitlen from NVIDIA joins us to unpack RAPIDS, the open source toolkit that lets pandas, scikit-learn, Spark, Polars, and even NetworkX execute on GPUs. We trace the project’s origin and why NVIDIA built it in the open, then dig into the pieces that matter in practice: cuDF for DataFrames, cuML for ML, cuGraph for graphs, cuXfilter for dashboards, and friends like cuSpatial and cuSignal. We talk real speedups, how the pandas accelerator works without a rewrite, and what becomes possible when jobs that used to take hours finish in minutes. You’ll hear strategies for datasets bigger than GPU memory, scaling out with Dask or Ray, Spark acceleration, and the growing role of vector search with cuVS for AI workloads. If you know the CPU tools, this is your on-ramp to the same APIs at GPU speed. Episode sponsors Posit Talk Python Courses Links from the show RAPIDS: github.com/rapidsai Example notebooks showing drop-in accelerators: github.com Benjamin Zaitlen - LinkedIn: linkedin.com RAPIDS Deployment Guide (Stable): docs.rapids.ai RAPIDS cuDF API Docs (Stable): docs.rapids.ai Asianometry YouTube Video: youtube.com cuDF pandas Accelerator (Stable): docs.rapids.ai Watch this episode on YouTube: youtube.com Episode #516 deep-dive: talkpython.fm/516 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
What if your code was crash-proof? That's the value prop for a framework called Temporal. Temporal is a durable execution platform that enables developers to build scalable applications without sacrificing productivity or reliability. The Temporal server executes units of application logic called Workflows in a resilient manner that automatically handles intermittent failures, and retries failed operations. We have Mason Egger from Temporal on to dive into durable execution. Episode sponsors Posit PyBay Talk Python Courses Links from the show Just Enough Python for Data Scientists Course: talkpython.fm Temporal Durable Execution Platform: temporal.io Temporal Learn Portal: learn.temporal.io Temporal GitHub Repository: github.com Temporal Python SDK GitHub Repository: github.com What Is Durable Execution, Temporal Blog: temporal.io Mason on Bluesky Profile: bsky.app Mason on Mastodon Profile: fosstodon.org Mason on Twitter Profile: twitter.com Mason on LinkedIn Profile: linkedin.com X Post by @skirano: x.com Temporal Docker Compose GitHub Repository: github.com Building a distributed asyncio event loop (Chad Retz) - PyTexas 2025: youtube.com Watch this episode on YouTube: youtube.com Episode #515 deep-dive: talkpython.fm/515 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Every year the core developers of Python convene in person to focus on high priority topics for CPython and beyond. This year they met at PyCon US 2025. Those meetings are closed door to keep focused and productive. But we're lucky that Seth Michael Larson was in attendance and wrote up each topic presented and the reactions and feedback to each. We'll be exploring this year's Language Summit with Seth. It's quite insightful to where Python is going and the pressing matters. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Sentry AI Monitoring, Code TALKPYTHON Talk Python Courses Links from the show Seth on Mastodon: @sethmlarson@fosstodon.org Seth on Twitter: @sethmlarson Seth on Github: github.com Python Language Summit 2025: pyfound.blogspot.com WheelNext: wheelnext.dev Free-Threaded Wheels: hugovk.github.io Free-Threaded Python Compatibility Tracking: py-free-threading.github.io PEP 779: Criteria for supported status for free-threaded Python: discuss.python.org PyPI Data: py-code.org Senior Engineer tries Vibe Coding: youtube.com Watch this episode on YouTube: youtube.com Episode #514 deep-dive: talkpython.fm/514 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
Why do people listen to this podcast? Sure, they're looking for technical explorations of new libraries and ideas. But often it's to hear the story behind them. If that speaks to you, then I have the perfect episode lined up. I have Barry Warsaw, Paul Everitt, Carol Willing, and Brett Cannon all back on the show to share stories from the history of Python. You'll hear about how import this came to be and how the first PyCon had around 30 attendees (two of whom are guests on this episode!). Sit back and enjoy the humorous stories from Python's past. Episode sponsors Posit Agntcy Talk Python Courses Links from the show Barry's Zen of Python song: youtube.com Jake Vanderplas - Keynote - PyCon 2017: youtube.com Why it’s called “Python” (Monty Python fan-reference): geeksforgeeks.org import antigravity: python-history.blogspot.com NIST Python Workshop Attendees: legacy.python.org Paul Everitt open-sources Zope: old.zope.dev Carol Willing wins ACM Software System Award: awards.acm.org Watch this episode on YouTube: youtube.com Episode #513 deep-dive: talkpython.fm/513 Episode transcripts: talkpython.fm Theme Song: Developer Rap 🥁 Served in a Flask 🎸: talkpython.fm/flasksong ---== Don't be a stranger ==--- YouTube: youtube.com/@talkpython Bluesky: @talkpython.fm Mastodon: @talkpython@fosstodon.org X.com: @talkpython Michael on Bluesky: @mkennedy.codes Michael on Mastodon: @mkennedy@fosstodon.org Michael on X.com: @mkennedy
See the full show notes for this episode on the website at talkpython.fm/512
See the full show notes for this episode on the website at talkpython.fm/511
See the full show notes for this episode on the website at talkpython.fm/510
See the full show notes for this episode on the website at talkpython.fm/509
See the full show notes for this episode on the website at talkpython.fm/508
See the full show notes for this episode on the website at talkpython.fm/507
See the full show notes for this episode on the website at talkpython.fm/506
See the full show notes for this episode on the website at talkpython.fm/505
See the full show notes for this episode on the website at talkpython.fm/504
See the full show notes for this episode on the website at talkpython.fm/503
See the full show notes for this episode on the website at talkpython.fm/502
See the full show notes for this episode on the website at talkpython.fm/501
See the full show notes for this episode on the website at talkpython.fm/500
See the full show notes for this episode on the website at talkpython.fm/499
See the full show notes for this episode on the website at talkpython.fm/498
See the full show notes for this episode on the website at talkpython.fm/497
See the full show notes for this episode on the website at talkpython.fm/496
See the full show notes for this episode on the website at talkpython.fm/495
See the full show notes for this episode on the website at talkpython.fm/494
See the full show notes for this episode on the website at talkpython.fm/493
See the full show notes for this episode on the website at talkpython.fm/492
See the full show notes for this episode on the website at talkpython.fm/491
See the full show notes for this episode on the website at talkpython.fm/490
See the full show notes for this episode on the website at talkpython.fm/489
See the full show notes for this episode on the website at talkpython.fm/488
See the full show notes for this episode on the website at talkpython.fm/487
See the full show notes for this episode on the website at talkpython.fm/486
See the full show notes for this episode on the website at talkpython.fm/485
See the full show notes for this episode on the website at talkpython.fm/484
See the full show notes for this episode on the website at talkpython.fm/483
See the full show notes for this episode on the website at talkpython.fm/482
See the full show notes for this episode on the website at talkpython.fm/481
See the full show notes for this episode on the website at talkpython.fm/480
See the full show notes for this episode on the website at talkpython.fm/479
See the full show notes for this episode on the website at talkpython.fm/478
See the full show notes for this episode on the website at talkpython.fm/477
See the full show notes for this episode on the website at talkpython.fm/476
See the full show notes for this episode on the website at talkpython.fm/475
See the full show notes for this episode on the website at talkpython.fm/474
See the full show notes for this episode on the website at talkpython.fm/473
See the full show notes for this episode on the website at talkpython.fm/472
See the full show notes for this episode on the website at talkpython.fm/471
See the full show notes for this episode on the website at talkpython.fm/470
See the full show notes for this episode on the website at talkpython.fm/469
See the full show notes for this episode on the website at talkpython.fm/468
See the full show notes for this episode on the website at talkpython.fm/467
See the full show notes for this episode on the website at talkpython.fm/466
See the full show notes for this episode on the website at talkpython.fm/465
See the full show notes for this episode on the website at talkpython.fm/464
See the full show notes for this episode on the website at talkpython.fm/463
See the full show notes for this episode on the website at talkpython.fm/462
See the full show notes for this episode on the website at talkpython.fm/461
See the full show notes for this episode on the website at talkpython.fm/460
See the full show notes for this episode on the website at talkpython.fm/459
See the full show notes for this episode on the website at talkpython.fm/458
See the full show notes for this episode on the website at talkpython.fm/457
See the full show notes for this episode on the website at talkpython.fm/456
See the full show notes for this episode on the website at talkpython.fm/455
See the full show notes for this episode on the website at talkpython.fm/454
See the full show notes for this episode on the website at talkpython.fm/453
See the full show notes for this episode on the website at talkpython.fm/452
See the full show notes for this episode on the website at talkpython.fm/451
See the full show notes for this episode on the website at talkpython.fm/450
See the full show notes for this episode on the website at talkpython.fm/449
See the full show notes for this episode on the website at talkpython.fm/448
See the full show notes for this episode on the website at talkpython.fm/447
See the full show notes for this episode on the website at talkpython.fm/446
See the full show notes for this episode on the website at talkpython.fm/445
See the full show notes for this episode on the website at talkpython.fm/444
See the full show notes for this episode on the website at talkpython.fm/443
See the full show notes for this episode on the website at talkpython.fm/442
See the full show notes for this episode on the website at talkpython.fm/441
See the full show notes for this episode on the website at talkpython.fm/440
See the full show notes for this episode on the website at talkpython.fm/439
See the full show notes for this episode on the website at talkpython.fm/438
See the full show notes for this episode on the website at talkpython.fm/437
See the full show notes for this episode on the website at talkpython.fm/436
See the full show notes for this episode on the website at talkpython.fm/435
See the full show notes for this episode on the website at talkpython.fm/434
See the full show notes for this episode on the website at talkpython.fm/433
See the full show notes for this episode on the website at talkpython.fm/432
See the full show notes for this episode on the website at talkpython.fm/431
See the full show notes for this episode on the website at talkpython.fm/430
See the full show notes for this episode on the website at talkpython.fm/429
See the full show notes for this episode on the website at talkpython.fm/428
See the full show notes for this episode on the website at talkpython.fm/427
See the full show notes for this episode on the website at talkpython.fm/426
See the full show notes for this episode on the website at talkpython.fm/425
See the full show notes for this episode on the website at talkpython.fm/424
See the full show notes for this episode on the website at talkpython.fm/423
See the full show notes for this episode on the website at talkpython.fm/422
See the full show notes for this episode on the website at talkpython.fm/421
See the full show notes for this episode on the website at talkpython.fm/420
See the full show notes for this episode on the website at talkpython.fm/419
See the full show notes for this episode on the website at talkpython.fm/418
See the full show notes for this episode on the website at talkpython.fm/417
See the full show notes for this episode on the website at talkpython.fm/416
See the full show notes for this episode on the website at talkpython.fm/415
See the full show notes for this episode on the website at talkpython.fm/414
See the full show notes for this episode on the website at talkpython.fm/413
See the full show notes for this episode on the website at talkpython.fm/412
See the full show notes for this episode on the website at talkpython.fm/411
See the full show notes for this episode on the website at talkpython.fm/410
See the full show notes for this episode on the website at talkpython.fm/409
See the full show notes for this episode on the website at talkpython.fm/408
See the full show notes for this episode on the website at talkpython.fm/407
See the full show notes for this episode on the website at talkpython.fm/406
See the full show notes for this episode on the website at talkpython.fm/405
See the full show notes for this episode on the website at talkpython.fm/404
See the full show notes for this episode on the website at talkpython.fm/403
See the full show notes for this episode on the website at talkpython.fm/402
See the full show notes for this episode on the website at talkpython.fm/401
See the full show notes for this episode on the website at talkpython.fm/400
See the full show notes for this episode on the website at talkpython.fm/399
See the full show notes for this episode on the website at talkpython.fm/398
See the full show notes for this episode on the website at talkpython.fm/397
See the full show notes for this episode on the website at talkpython.fm/396
See the full show notes for this episode on the website at talkpython.fm/395
See the full show notes for this episode on the website at talkpython.fm/394
See the full show notes for this episode on the website at talkpython.fm/393
See the full show notes for this episode on the website at talkpython.fm/392
See the full show notes for this episode on the website at talkpython.fm/391
See the full show notes for this episode on the website at talkpython.fm/390
See the full show notes for this episode on the website at talkpython.fm/389
See the full show notes for this episode on the website at talkpython.fm/388
See the full show notes for this episode on the website at talkpython.fm/387
See the full show notes for this episode on the website at talkpython.fm/386
See the full show notes for this episode on the website at talkpython.fm/385
See the full show notes for this episode on the website at talkpython.fm/384
See the full show notes for this episode on the website at talkpython.fm/383
See the full show notes for this episode on the website at talkpython.fm/382
See the full show notes for this episode on the website at talkpython.fm/381
See the full show notes for this episode on the website at talkpython.fm/380
See the full show notes for this episode on the website at talkpython.fm/379
See the full show notes for this episode on the website at talkpython.fm/378
See the full show notes for this episode on the website at talkpython.fm/377
See the full show notes for this episode on the website at talkpython.fm/376
See the full show notes for this episode on the website at talkpython.fm/375
See the full show notes for this episode on the website at talkpython.fm/374
See the full show notes for this episode on the website at talkpython.fm/373
See the full show notes for this episode on the website at talkpython.fm/372
See the full show notes for this episode on the website at talkpython.fm/371
See the full show notes for this episode on the website at talkpython.fm/370
See the full show notes for this episode on the website at talkpython.fm/369
See the full show notes for this episode on the website at talkpython.fm/368
See the full show notes for this episode on the website at talkpython.fm/367
See the full show notes for this episode on the website at talkpython.fm/366
See the full show notes for this episode on the website at talkpython.fm/365
See the full show notes for this episode on the website at talkpython.fm/364
See the full show notes for this episode on the website at talkpython.fm/363
See the full show notes for this episode on the website at talkpython.fm/362
See the full show notes for this episode on the website at talkpython.fm/361
See the full show notes for this episode on the website at talkpython.fm/360
See the full show notes for this episode on the website at talkpython.fm/359
See the full show notes for this episode on the website at talkpython.fm/358
See the full show notes for this episode on the website at talkpython.fm/357
See the full show notes for this episode on the website at talkpython.fm/356
See the full show notes for this episode on the website at talkpython.fm/355
See the full show notes for this episode on the website at talkpython.fm/354
See the full show notes for this episode on the website at talkpython.fm/353
See the full show notes for this episode on the website at talkpython.fm/352
See the full show notes for this episode on the website at talkpython.fm/351
See the full show notes for this episode on the website at talkpython.fm/350
See the full show notes for this episode on the website at talkpython.fm/349
See the full show notes for this episode on the website at talkpython.fm/348
See the full show notes for this episode on the website at talkpython.fm/347
See the full show notes for this episode on the website at talkpython.fm/346
See the full show notes for this episode on the website at talkpython.fm/345
See the full show notes for this episode on the website at talkpython.fm/344
See the full show notes for this episode on the website at talkpython.fm/343
See the full show notes for this episode on the website at talkpython.fm/342
See the full show notes for this episode on the website at talkpython.fm/341
See the full show notes for this episode on the website at talkpython.fm/340
See the full show notes for this episode on the website at talkpython.fm/339
See the full show notes for this episode on the website at talkpython.fm/338
See the full show notes for this episode on the website at talkpython.fm/337
See the full show notes for this episode on the website at talkpython.fm/336
See the full show notes for this episode on the website at talkpython.fm/335
See the full show notes for this episode on the website at talkpython.fm/334
See the full show notes for this episode on the website at talkpython.fm/333
See the full show notes for this episode on the website at talkpython.fm/332
See the full show notes for this episode on the website at talkpython.fm/331
See the full show notes for this episode on the website at talkpython.fm/330
See the full show notes for this episode on the website at talkpython.fm/329
See the full show notes for this episode on the website at talkpython.fm/328
See the full show notes for this episode on the website at talkpython.fm/327
See the full show notes for this episode on the website at talkpython.fm/326
See the full show notes for this episode on the website at talkpython.fm/325
See the full show notes for this episode on the website at talkpython.fm/324
See the full show notes for this episode on the website at talkpython.fm/323
See the full show notes for this episode on the website at talkpython.fm/322
See the full show notes for this episode on the website at talkpython.fm/321
See the full show notes for this episode on the website at talkpython.fm/320
See the full show notes for this episode on the website at talkpython.fm/319
See the full show notes for this episode on the website at talkpython.fm/318
See the full show notes for this episode on the website at talkpython.fm/317
See the full show notes for this episode on the website at talkpython.fm/316
See the full show notes for this episode on the website at talkpython.fm/315
See the full show notes for this episode on the website at talkpython.fm/314
See the full show notes for this episode on the website at talkpython.fm/313
See the full show notes for this episode on the website at talkpython.fm/312
See the full show notes for this episode on the website at talkpython.fm/311
See the full show notes for this episode on the website at talkpython.fm/310
See the full show notes for this episode on the website at talkpython.fm/309
See the full show notes for this episode on the website at talkpython.fm/308
See the full show notes for this episode on the website at talkpython.fm/307
See the full show notes for this episode on the website at talkpython.fm/306
See the full show notes for this episode on the website at talkpython.fm/305
See the full show notes for this episode on the website at talkpython.fm/304
See the full show notes for this episode on the website at talkpython.fm/303
See the full show notes for this episode on the website at talkpython.fm/302
See the full show notes for this episode on the website at talkpython.fm/301
See the full show notes for this episode on the website at talkpython.fm/300
See the full show notes for this episode on the website at talkpython.fm/299
See the full show notes for this episode on the website at talkpython.fm/298
See the full show notes for this episode on the website at talkpython.fm/297
See the full show notes for this episode on the website at talkpython.fm/296
See the full show notes for this episode on the website at talkpython.fm/295
See the full show notes for this episode on the website at talkpython.fm/294
See the full show notes for this episode on the website at talkpython.fm/293
See the full show notes for this episode on the website at talkpython.fm/292
See the full show notes for this episode on the website at talkpython.fm/291
See the full show notes for this episode on the website at talkpython.fm/290
See the full show notes for this episode on the website at talkpython.fm/289
See the full show notes for this episode on the website at talkpython.fm/288
See the full show notes for this episode on the website at talkpython.fm/287
See the full show notes for this episode on the website at talkpython.fm/286
See the full show notes for this episode on the website at talkpython.fm/285
See the full show notes for this episode on the website at talkpython.fm/284
See the full show notes for this episode on the website at talkpython.fm/283
See the full show notes for this episode on the website at talkpython.fm/282
See the full show notes for this episode on the website at talkpython.fm/281
See the full show notes for this episode on the website at talkpython.fm/280
See the full show notes for this episode on the website at talkpython.fm/279
See the full show notes for this episode on the website at talkpython.fm/278
See the full show notes for this episode on the website at talkpython.fm/277
See the full show notes for this episode on the website at talkpython.fm/276
See the full show notes for this episode on the website at talkpython.fm/275
See the full show notes for this episode on the website at talkpython.fm/274
See the full show notes for this episode on the website at talkpython.fm/273
See the full show notes for this episode on the website at talkpython.fm/272
See the full show notes for this episode on the website at talkpython.fm/271
See the full show notes for this episode on the website at talkpython.fm/270
See the full show notes for this episode on the website at talkpython.fm/269
See the full show notes for this episode on the website at talkpython.fm/268
See the full show notes for this episode on the website at talkpython.fm/267
See the full show notes for this episode on the website at talkpython.fm/266
See the full show notes for this episode on the website at talkpython.fm/265
See the full show notes for this episode on the website at talkpython.fm/264
See the full show notes for this episode on the website at talkpython.fm/263
See the full show notes for this episode on the website at talkpython.fm/262
See the full show notes for this episode on the website at talkpython.fm/261
See the full show notes for this episode on the website at talkpython.fm/260
See the full show notes for this episode on the website at talkpython.fm/259
See the full show notes for this episode on the website at talkpython.fm/258
See the full show notes for this episode on the website at talkpython.fm/257
See the full show notes for this episode on the website at talkpython.fm/256
See the full show notes for this episode on the website at talkpython.fm/255
See the full show notes for this episode on the website at talkpython.fm/254
See the full show notes for this episode on the website at talkpython.fm/253
See the full show notes for this episode on the website at talkpython.fm/252
See the full show notes for this episode on the website at talkpython.fm/251
See the full show notes for this episode on the website at talkpython.fm/250
See the full show notes for this episode on the website at talkpython.fm/249
See the full show notes for this episode on the website at talkpython.fm/248
See the full show notes for this episode on the website at talkpython.fm/247
See the full show notes for this episode on the website at talkpython.fm/246
See the full show notes for this episode on the website at talkpython.fm/245
See the full show notes for this episode on the website at talkpython.fm/244
See the full show notes for this episode on the website at talkpython.fm/243
See the full show notes for this episode on the website at talkpython.fm/242
See the full show notes for this episode on the website at talkpython.fm/241
See the full show notes for this episode on the website at talkpython.fm/240
See the full show notes for this episode on the website at talkpython.fm/239
See the full show notes for this episode on the website at talkpython.fm/237
See the full show notes for this episode on the website at talkpython.fm/236
See the full show notes for this episode on the website at talkpython.fm/235
See the full show notes for this episode on the website at talkpython.fm/234
See the full show notes for this episode on the website at talkpython.fm/233
See the full show notes for this episode on the website at talkpython.fm/232
See the full show notes for this episode on the website at talkpython.fm/231
See the full show notes for this episode on the website at talkpython.fm/230
See the full show notes for this episode on the website at talkpython.fm/229
See the full show notes for this episode on the website at talkpython.fm/228
See the full show notes for this episode on the website at talkpython.fm/227
See the full show notes for this episode on the website at talkpython.fm/226
See the full show notes for this episode on the website at talkpython.fm/225
See the full show notes for this episode on the website at talkpython.fm/224
See the full show notes for this episode on the website at talkpython.fm/223
See the full show notes for this episode on the website at talkpython.fm/222
See the full show notes for this episode on the website at talkpython.fm/221
See the full show notes for this episode on the website at talkpython.fm/220
See the full show notes for this episode on the website at talkpython.fm/219
See the full show notes for this episode on the website at talkpython.fm/218
See the full show notes for this episode on the website at talkpython.fm/217
See the full show notes for this episode on the website at talkpython.fm/216
See the full show notes for this episode on the website at talkpython.fm/215
See the full show notes for this episode on the website at talkpython.fm/214
See the full show notes for this episode on the website at talkpython.fm/213
See the full show notes for this episode on the website at talkpython.fm/212
See the full show notes for this episode on the website at talkpython.fm/211
See the full show notes for this episode on the website at talkpython.fm/210
See the full show notes for this episode on the website at talkpython.fm/209
See the full show notes for this episode on the website at talkpython.fm/208
See the full show notes for this episode on the website at talkpython.fm/207
See the full show notes for this episode on the website at talkpython.fm/206
See the full show notes for this episode on the website at talkpython.fm/205
See the full show notes for this episode on the website at talkpython.fm/204
See the full show notes for this episode on the website at talkpython.fm/203
See the full show notes for this episode on the website at talkpython.fm/202
See the full show notes for this episode on the website at talkpython.fm/201
See the full show notes for this episode on the website at talkpython.fm/200
See the full show notes for this episode on the website at talkpython.fm/199
See the full show notes for this episode on the website at talkpython.fm/198
See the full show notes for this episode on the website at talkpython.fm/197
See the full show notes for this episode on the website at talkpython.fm/196
See the full show notes for this episode on the website at talkpython.fm/195
See the full show notes for this episode on the website at talkpython.fm/194
See the full show notes for this episode on the website at talkpython.fm/193
See the full show notes for this episode on the website at talkpython.fm/192
See the full show notes for this episode on the website at talkpython.fm/191
See the full show notes for this episode on the website at talkpython.fm/190
See the full show notes for this episode on the website at talkpython.fm/189
See the full show notes for this episode on the website at talkpython.fm/188
See the full show notes for this episode on the website at talkpython.fm/187
See the full show notes for this episode on the website at talkpython.fm/186
See the full show notes for this episode on the website at talkpython.fm/185
See the full show notes for this episode on the website at talkpython.fm/184
See the full show notes for this episode on the website at talkpython.fm/183
See the full show notes for this episode on the website at talkpython.fm/182
See the full show notes for this episode on the website at talkpython.fm/181
See the full show notes for this episode on the website at talkpython.fm/180
See the full show notes for this episode on the website at talkpython.fm/179
See the full show notes for this episode on the website at talkpython.fm/178
See the full show notes for this episode on the website at talkpython.fm/177
See the full show notes for this episode on the website at talkpython.fm/176
See the full show notes for this episode on the website at talkpython.fm/175
See the full show notes for this episode on the website at talkpython.fm/174
See the full show notes for this episode on the website at talkpython.fm/173
See the full show notes for this episode on the website at talkpython.fm/172
See the full show notes for this episode on the website at talkpython.fm/171
See the full show notes for this episode on the website at talkpython.fm/170
See the full show notes for this episode on the website at talkpython.fm/169
See the full show notes for this episode on the website at talkpython.fm/168
See the full show notes for this episode on the website at talkpython.fm/167
See the full show notes for this episode on the website at talkpython.fm/166
See the full show notes for this episode on the website at talkpython.fm/165
See the full show notes for this episode on the website at talkpython.fm/164
See the full show notes for this episode on the website at talkpython.fm/163
See the full show notes for this episode on the website at talkpython.fm/162
See the full show notes for this episode on the website at talkpython.fm/161
See the full show notes for this episode on the website at talkpython.fm/160
See the full show notes for this episode on the website at talkpython.fm/159
See the full show notes for this episode on the website at talkpython.fm/158
See the full show notes for this episode on the website at talkpython.fm/157
See the full show notes for this episode on the website at talkpython.fm/156
See the full show notes for this episode on the website at talkpython.fm/155
See the full show notes for this episode on the website at talkpython.fm/154
See the full show notes for this episode on the website at talkpython.fm/153
See the full show notes for this episode on the website at talkpython.fm/152
See the full show notes for this episode on the website at talkpython.fm/151
See the full show notes for this episode on the website at talkpython.fm/150
See the full show notes for this episode on the website at talkpython.fm/149
See the full show notes for this episode on the website at talkpython.fm/148
See the full show notes for this episode on the website at talkpython.fm/147
See the full show notes for this episode on the website at talkpython.fm/146
See the full show notes for this episode on the website at talkpython.fm/145
See the full show notes for this episode on the website at talkpython.fm/144
See the full show notes for this episode on the website at talkpython.fm/143
See the full show notes for this episode on the website at talkpython.fm/141
See the full show notes for this episode on the website at talkpython.fm/140
See the full show notes for this episode on the website at talkpython.fm/139
See the full show notes for this episode on the website at talkpython.fm/138
See the full show notes for this episode on the website at talkpython.fm/137
See the full show notes for this episode on the website at talkpython.fm/136
See the full show notes for this episode on the website at talkpython.fm/135
See the full show notes for this episode on the website at talkpython.fm/134
See the full show notes for this episode on the website at talkpython.fm/133
See the full show notes for this episode on the website at talkpython.fm/132
See the full show notes for this episode on the website at talkpython.fm/131
See the full show notes for this episode on the website at talkpython.fm/130
See the full show notes for this episode on the website at talkpython.fm/129
See the full show notes for this episode on the website at talkpython.fm/128
See the full show notes for this episode on the website at talkpython.fm/127
See the full show notes for this episode on the website at talkpython.fm/126
See the full show notes for this episode on the website at talkpython.fm/125
See the full show notes for this episode on the website at talkpython.fm/124
See the full show notes for this episode on the website at talkpython.fm/123
See the full show notes for this episode on the website at talkpython.fm/122
See the full show notes for this episode on the website at talkpython.fm/121
See the full show notes for this episode on the website at talkpython.fm/120
See the full show notes for this episode on the website at talkpython.fm/119
See the full show notes for this episode on the website at talkpython.fm/118
See the full show notes for this episode on the website at talkpython.fm/117
See the full show notes for this episode on the website at talkpython.fm/116
See the full show notes for this episode on the website at talkpython.fm/115
See the full show notes for this episode on the website at talkpython.fm/114
See the full show notes for this episode on the website at talkpython.fm/113
See the full show notes for this episode on the website at talkpython.fm/112
See the full show notes for this episode on the website at talkpython.fm/111
See the full show notes for this episode on the website at talkpython.fm/110
See the full show notes for this episode on the website at talkpython.fm/109
See the full show notes for this episode on the website at talkpython.fm/108
See the full show notes for this episode on the website at talkpython.fm/107
See the full show notes for this episode on the website at talkpython.fm/106
See the full show notes for this episode on the website at talkpython.fm/105
See the full show notes for this episode on the website at talkpython.fm/104
See the full show notes for this episode on the website at talkpython.fm/103
See the full show notes for this episode on the website at talkpython.fm/102
See the full show notes for this episode on the website at talkpython.fm/101
See the full show notes for this episode on the website at talkpython.fm/100
See the full show notes for this episode on the website at talkpython.fm/99
See the full show notes for this episode on the website at talkpython.fm/98
See the full show notes for this episode on the website at talkpython.fm/97
See the full show notes for this episode on the website at talkpython.fm/96
See the full show notes for this episode on the website at talkpython.fm/95
See the full show notes for this episode on the website at talkpython.fm/94
See the full show notes for this episode on the website at talkpython.fm/93
See the full show notes for this episode on the website at talkpython.fm/92
See the full show notes for this episode on the website at talkpython.fm/91
See the full show notes for this episode on the website at talkpython.fm/90
See the full show notes for this episode on the website at talkpython.fm/89
See the full show notes for this episode on the website at talkpython.fm/88
See the full show notes for this episode on the website at talkpython.fm/87
See the full show notes for this episode on the website at talkpython.fm/86
See the full show notes for this episode on the website at talkpython.fm/85
See the full show notes for this episode on the website at talkpython.fm/84
See the full show notes for this episode on the website at talkpython.fm/83
See the full show notes for this episode on the website at talkpython.fm/82
See the full show notes for this episode on the website at talkpython.fm/81
See the full show notes for this episode on the website at talkpython.fm/80
See the full show notes for this episode on the website at talkpython.fm/79
See the full show notes for this episode on the website at talkpython.fm/78
See the full show notes for this episode on the website at talkpython.fm/77
See the full show notes for this episode on the website at talkpython.fm/76
See the full show notes for this episode on the website at talkpython.fm/75
See the full show notes for this episode on the website at talkpython.fm/74
See the full show notes for this episode on the website at talkpython.fm/73
See the full show notes for this episode on the website at talkpython.fm/72
See the full show notes for this episode on the website at talkpython.fm/71
See the full show notes for this episode on the website at talkpython.fm/70
See the full show notes for this episode on the website at talkpython.fm/69
See the full show notes for this episode on the website at talkpython.fm/68
See the full show notes for this episode on the website at talkpython.fm/67
See the full show notes for this episode on the website at talkpython.fm/66
See the full show notes for this episode on the website at talkpython.fm/65
See the full show notes for this episode on the website at talkpython.fm/64
See the full show notes for this episode on the website at talkpython.fm/63
See the full show notes for this episode on the website at talkpython.fm/62
See the full show notes for this episode on the website at talkpython.fm/61
See the full show notes for this episode on the website at talkpython.fm/60
See the full show notes for this episode on the website at talkpython.fm/59
See the full show notes for this episode on the website at talkpython.fm/58
See the full show notes for this episode on the website at talkpython.fm/57
See the full show notes for this episode on the website at talkpython.fm/56
See the full show notes for this episode on the website at talkpython.fm/55
See the full show notes for this episode on the website at talkpython.fm/54
See the full show notes for this episode on the website at talkpython.fm/53
See the full show notes for this episode on the website at talkpython.fm/52
See the full show notes for this episode on the website at talkpython.fm/51
See the full show notes for this episode on the website at talkpython.fm/50
See the full show notes for this episode on the website at talkpython.fm/49
See the full show notes for this episode on the website at talkpython.fm/48
See the full show notes for this episode on the website at talkpython.fm/47
See the full show notes for this episode on the website at talkpython.fm/46
See the full show notes for this episode on the website at talkpython.fm/45
See the full show notes for this episode on the website at talkpython.fm/44
See the full show notes for this episode on the website at talkpython.fm/43
See the full show notes for this episode on the website at talkpython.fm/42
See the full show notes for this episode on the website at talkpython.fm/41
See the full show notes for this episode on the website at talkpython.fm/40
See the full show notes for this episode on the website at talkpython.fm/39
See the full show notes for this episode on the website at talkpython.fm/38
See the full show notes for this episode on the website at talkpython.fm/37
See the full show notes for this episode on the website at talkpython.fm/36
See the full show notes for this episode on the website at talkpython.fm/35
See the full show notes for this episode on the website at talkpython.fm/34
See the full show notes for this episode on the website at talkpython.fm/33
See the full show notes for this episode on the website at talkpython.fm/32
See the full show notes for this episode on the website at talkpython.fm/31
See the full show notes for this episode on the website at talkpython.fm/30
See the full show notes for this episode on the website at talkpython.fm/29
See the full show notes for this episode on the website at talkpython.fm/28
See the full show notes for this episode on the website at talkpython.fm/27
See the full show notes for this episode on the website at talkpython.fm/26
See the full show notes for this episode on the website at talkpython.fm/25
See the full show notes for this episode on the website at talkpython.fm/24
See the full show notes for this episode on the website at talkpython.fm/23
See the full show notes for this episode on the website at talkpython.fm/22
See the full show notes for this episode on the website at talkpython.fm/21
See the full show notes for this episode on the website at talkpython.fm/20
See the full show notes for this episode on the website at talkpython.fm/19
See the full show notes for this episode on the website at talkpython.fm/18
See the full show notes for this episode on the website at talkpython.fm/17
See the full show notes for this episode on the website at talkpython.fm/16
See the full show notes for this episode on the website at talkpython.fm/15
See the full show notes for this episode on the website at talkpython.fm/14
See the full show notes for this episode on the website at talkpython.fm/13
See the full show notes for this episode on the website at talkpython.fm/12
See the full show notes for this episode on the website at talkpython.fm/11
See the full show notes for this episode on the website at talkpython.fm/10
See the full show notes for this episode on the website at talkpython.fm/9
See the full show notes for this episode on the website at talkpython.fm/8
See the full show notes for this episode on the website at talkpython.fm/7
See the full show notes for this episode on the website at talkpython.fm/6
See the full show notes for this episode on the website at talkpython.fm/5
See the full show notes for this episode on the website at talkpython.fm/4
See the full show notes for this episode on the website at talkpython.fm/3
See the full show notes for this episode on the website at talkpython.fm/2
See the full show notes for this episode on the website at talkpython.fm/1
See the full show notes for this episode on the website at talkpython.fm/0