Topics covered in this episode:
- Migrating from mypy to ty: Lessons from FastAPI
- Oxyde ORM
- Typeshedded CPython docs
- Raw+DC Database Pattern: A Retrospective
- Extras
- Joke
About the show
Sponsored by us! Support our work through:
Connect with the hosts
- Michael: @[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 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
- Thanks emmatyping for the suggestion
- Documentation for Python with typeshed types
- Source: typeshedding_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:
- Lean TDD 0.5 update
- Significant rewrite and focus
Michael:
- pytest-just (for just command file testing), by Michael Booth
- Something going on with Encode
- httpx: Anyone know what's up with HTTPX? And forked
- starlette and uvicorn: Transfer of Uvicorn & Starlette
- mkdocs: The Slow Collapse of MkDocs
- django-rest-framework: Move to django commons?
- Certificates at Talk Python Training
Joke:
Fler avsnitt av Python Bytes
Visa alla avsnitt av Python BytesPython Bytes med Michael Kennedy and Brian Okken finns tillgänglig på flera plattformar. Informationen på denna sida kommer från offentliga podd-flöden.
