Topics covered in this episode:
Migrating from mypy to ty: Lessons from FastAPIOxyde ORMTypeshedded CPython docsRaw+DC Database Pattern: A RetrospectiveExtrasJokeWatch on YouTube
Sponsored by us! Support our work through:
Our courses at Talk Python TrainingThe Complete pytest CoursePatreon SupportersMichael: @[email protected] / @mkennedy.codes (bsky) Brian: @[email protected] / @brianokken.bsky.social Show: @[email protected] / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am 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.
Brian #1: Migrating from mypy to ty: Lessons from FastAPI
Tim HopperI saw this post by Sebastián Ramírez about all of his projects switching to tyFastAPI, Typer, SQLModel, Asyncer, FastAPI CLISqlModel is already ty only - mypy removedThis signals that ty is ready to useTim lists some steps to apply ty to your own projectsAdd ty alongside mypySet error-on-warning = trueAccept the double-ignore commentsPick a smaller project to cut over firstDrop mypy when the noise exceeds the signalAdd ty alongside mypyRelated anecdote:I had tried out ty with pytest-check in the past with difficultyTried it again this morning, only a few areas where mypy was happy but ty reported issuesAt least one ty warning was a potential problem for people running pre-releases of pytest,Not really related: packaging.version.parse is awesomeOxyde ORM is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core.Note: Oxyde is a young project under active development. The API may evolve between minor versions.No sync wrappers or thread pools. Oxyde is async from the ground upIncludes oxyde-adminFeaturesDjango-style API - Familiar Model.objects.filter() syntaxPydantic v2 models - Full validation, type hints, serializationAsync-first - Built for modern async Python with asyncioRust performance - SQL generation and execution in native RustMulti-database - PostgreSQL, SQLite, MySQL supportTransactions - transaction.atomic() context manager with savepointsMigrations - Django-style makemigrations and migrate CLIBrian #3: Typeshedded CPython docs
Thanks emmatyping for the suggestionDocumentation for Python with typeshed typesSource: typeshedding_cpython_docsMichael #4: Raw+DC Database Pattern: A Retrospective
A new design pattern I’m seeing gain traction in the software space: Raw+DC: The ORM pattern of 2026I’ve had a chance to migrate three of my most important web app.Thrilled to report that yes, the web app is much faster using Raw+DCPlus, this was part of the journey to move from 1.3 GB memory usage to 0.45 GB (more on this next week)Lean TDD 0.5 updateSignificant rewrite and focuspytest-just (for just command file testing), by Michael BoothSomething going on with Encodehttpx: Anyone know what's up with HTTPX? And forkedstarlette and uvicorn: Transfer of Uvicorn & Starlettemkdocs: The Slow Collapse of MkDocsdjango-rest-framework: Move to django commons?Certificates at Talk Python TrainingNeue Rich