#476: Common themes

April 6
32 mins

Episode Description

Topics covered in this episode:
Watch on YouTube

About the show

Sponsored by us! Support our work through:

Connect with the hosts

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 Hopper
  • I saw this post by Sebastián Ramírez about all of his projects switching to ty
    • FastAPI, Typer, SQLModel, Asyncer, FastAPI CLI
  • SqlModel is already ty only - mypy removed
  • This signals that ty is ready to use
  • Tim lists some steps to apply ty to your own projects
    • Add ty alongside mypy
    • Set error-on-warning = true
    • Accept the double-ignore comments
    • Pick a smaller project to cut over first
    • Drop mypy when the noise exceeds the signalAdd ty alongside mypy
  • Related anecdote:
    • I had tried out ty with pytest-check in the past with difficulty
    • Tried it again this morning, only a few areas where mypy was happy but ty reported issues
    • At least one ty warning was a potential problem for people running pre-releases of pytest,
    • Not really related: packaging.version.parse is awesome

Michael #2: Oxyde ORM

  • Oxyde 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 up
  • Includes oxyde-admin
  • Features
    • Django-style API - Familiar Model.objects.filter() syntax
    • Pydantic v2 models - Full validation, type hints, serialization
    • Async-first - Built for modern async Python with asyncio
    • Rust performance - SQL generation and execution in native Rust
    • Multi-database - PostgreSQL, SQLite, MySQL support
    • Transactions - transaction.atomic() context manager with savepoints
    • Migrations - Django-style makemigrations and migrate CLI

Brian #3: Typeshedded CPython docs

Michael #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 2026
  • I’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+DC
  • Plus, this was part of the journey to move from 1.3 GB memory usage to 0.45 GB (more on this next week)

Extras

Brian:

Michael:

Joke:

See all episodes