About the show
Sponsored by us! Support our work through:
Michael #1: chardet ,AI, and licensing
Brian #2: refined-github
Michael #3: pgdog: PostgreSQL connection pooler, load balancer and database sharder
Brian #4: Agentic Engineering Patterns
Extras
Brian:
Michael:
Joke: Ergonomic keyboard
Also pretty good and related:
Links
About the show
Sponsored by us! Support our work through:
Brian #1: Setting up a Python monorepo with uv workspaces
Michael #2: cattrs: Flexible Object Serialization and Validation
Brian #3: Learning to program in the AI age
Michael #4: VS Code extension for FastAPI and friends
Extras
Brian:
Joke: Saas is dead
]]>About the show
Sponsored by us! Support our work through:
Michael #1: Raw+DC: The ORM pattern of 2026?
Brian #2: pytest-check releases
--strict as I find it reduces readability
tox.ini for explanation--strict clean now, so user tests can be --strict clean.Michael #3: Dataclass Wizard
dataclasses.Brian #4: SQLiteo - “native macOS SQLite browser built for normal people”
Extras
Michael:
Joke: House is read-only!
]]>About the show
Sponsored by us! Support our work through:
Brian #1: Better Python tests with inline-snapshot
Allows you to write a test like this:
from inline_snapshot import snapshot
def test_user_creation():
user = create_user(id=123, name="test_user")
assert user.dict() == snapshot({})
Then run pytest --inline-snapshot=fix
And the library updates the test source code to look like this:
def test_user_creation():
user = create_user(id=123, name="test_user")
assert user.dict() == snapshot({
"id": 123,
"name": "test_user",
"status": "active"
})
Now, when you run the code without “fix” the collected data is used for comparison
Michael #2: jolt Battery intelligence for your laptop
Brian #3: Markdown code formatting with ruff
ruff can now format code within markdown filespython, py, python3 or py3.pyi as Python type stub files.[HTML_REMOVED] , [HTML_REMOVED] blocks.[tool.ruff.lint]
preview = true
Michael #4: act - run your GitHub actions locally
.github/workflows/ files (or for any changes to embedded GitHub actions), you can use act to run the actions locally. The environment variables and filesystem are all configured to match what GitHub provides.act, you can use the GitHub Actions defined in your .github/workflows/ to replace your Makefile!act it reads in your GitHub Actions from .github/workflows/ and determines the set of actions that need to be run.
Extras
Michael:
Joke: Plug ‘n Paste
]]>About the show
Sponsored by us! Support our work through:
Michael #1: Command Book App
Brian #2: uvx.sh: Install Python tools without uv or Python
Michael #3: Ending 15 years of subprocess polling
subprocess module has relied on a busy-loop polling approach since the timeout parameter was added to Popen.wait() in Python 3.3, around 15 years agopoll() (or kqueue()) puts the process into the exact same sleeping state as a plain time.sleep() call. From the kernel's perspective, both are interruptible sleeps.Brian #4: monty: A minimal, secure Python interpreter written in Rust for use by AI
Extras
Brian:
Michael:
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: django-bolt : Faster than FastAPI, but with Django ORM, Django Admin, and Django packages
Michael #2: pyleak
@pytest.mark.no_leaksBrian #3: More Django (three articles)
Michael #4: Datastar
Sent to us by Forrest Lanier
Lots of work by Chris May
Out on Talk Python soon.
Datastar is a little like HTMX, but
The single source of truth is your server
Events can be sent from server automatically (using SSE)
yield SSE.patch_elements(
f"""{(#HTML#)}{datetime.now().isoformat()}"""
)
Extras
Brian:
Michael:
Joke: Pushed to prod
]]>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.
Michael #1: GreyNoise IP Check
Brian #2: tprof: a targeting profiler
Michael #3: TOAD is out
Brian #4: FastAPI adds Contribution Guidelines around AI usage
Extras
Brian:
Michael:
RUN --mount=type=cache,target=/root/.cache uv pip install --compile-bytecode --python /venv/bin/pythonJoke: A date
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: Better Django management commands with django-click and django-typer
Michael #2: PSF Lands a $1.5 million sponsorship from Anthropic
Brian #3: How uv got so fast
uv design decisions possibleuv drops many backwards compatible decisions kept by pip.Michael #4: PyView Web Framework
Extras
Brian:
Michael:
Joke: Reverse Superman
]]>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.
Michael #1: port-killer
Brian #2: How we made Python's packaging library 3x faster
Michael #3: AI’s Impact on dev companies
Brian #4: CodSpeed
@pytest.mark.benchmarkExtras
Brian:
Michael:
Joke: Check out my app!
]]>About the show
Connect with the hosts
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am 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: ty: An extremely fast Python type checker and LSP
ty on Dec 16Michael #2: Python Supply Chain Security Made Easy
uv pip compile requirements.piptools --upgrade --output-file requirements.txt --exclude-newer "1 week"docker build step if a vulnerable package is found.Brian #3: typing_extensions
typing-extensions, you can use it in previous versions.typing_extesions is way cooler than just that.Michael #4: MI6 chief: We'll be as fluent in Python as we are in Russian
Extras
Brian:
Michael:
Joke: Error Handling in the age of AI