Topics covered in this episode:
 
- djrest2 - A small and simple REST library for Django based on class-based views.
 - Github CLI
 - caniscrape - Know before you scrape. Analyze any website's anti-bot protections in seconds.
 - 🐴 GittyUp
 - Extras
 - Joke
 
About the show
Sponsored by us! Support our work through:
- Our courses at Talk Python Training
 - The Complete pytest Course
 - Patreon Supporters
 
Connect with the hosts
- Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
 - Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
 - Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky)
 
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: djrest2 - A small and simple REST library for Django based on class-based views.
- Emma Levit
 - Based on an interesting blog post
- Why, in 2025, do we still need a 3rd party app to write a REST API with Django?
 - As opposed to using DRF or Django Ninja
 
- 
 
Michael #2: Github CLI
- GitHub’s official command line tool
 - Features
- Checking out a pull request locally
 - You can clone any repository using OWNER/REPO syntax: gh repo clone cli/cli
 - Create a pull request interactively: gh pr create
 
 - See all at cli.github.com/manual/examples
 
Brian #3: caniscrape - Know before you scrape. Analyze any website's anti-bot protections in seconds.
reddit announcement and discussion
caniscrape checks a website for common anti-bot mechanisms and reports:
- A difficulty score (0–10)
 - Which protections are active (e.g., Cloudflare, Akamai, hCaptcha, etc.)
 - What tools you’ll likely need (headless browsers, proxies, CAPTCHA solvers, etc.)
 - Whether using a scraping API might be better
 
This helps you decide the right scraping approach before you waste time building a bot that keeps getting blocked.
Michael #4: 🐴 GittyUp
- Never forget to pull again: Automatically discover and update all your Git repositories with one command.
 - Built initially to solve this problem
 - Rebuilt and published last week as part of my upcoming Agentic AI Programming for Python course. Get notified this week at training.talkpython.fm/getnotified
 - Update everything in a folder tree with gittyup
 - Review changes, blockers, etc with gittyup --explain
 
Extras
Brian:
- Three times faster with lazy imports - Hugo van Kemenade
 - Interesting discussion on Hugo’s post - on Mastodon
 - Use lazy module imports now - Graham Dumpleton
 - Graham’s post uses wrapt, a “module for decorators, wrappers and monkey patching”, to simulate lazy imports
 - Helpful comment from Adam Johnson on Graham’s post to actually do the import during type checking using if TYPE_CHECKING: import ...
 
Michael:
- uvloop is back!
 - pypi+ listened. :)
- https://www.reddit.com/r/Python/comments/1o9dey5/i_just_released_pypipluscom_20_offlineready/
 
 - Feedback from my “Show me your ls” post.
 
Joke: Some form of Elvish
Anfitriones e invitados
Información
- Programa
 - FrecuenciaCada semana
 - Publicado20 de octubre de 2025, 8:00 a.m. UTC
 - Duración29 min
 - Episodio454
 - ClasificaciónApto
 
