Listen "#454 It's some form of Elvish"
Episode Synopsis
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
Watch on YouTube
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: @[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 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
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
Watch on YouTube
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: @[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 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
More episodes of the podcast Python Bytes
#462 LinkedIn Cringe
15/12/2025
#461 This episdoe has a typo
09/12/2025
#460 Overlooked Python Typing
01/12/2025
#459 Inverted dependency trees
24/11/2025
#458 I will install Linux on your computer
17/11/2025
#457 Tapping into HTTP
11/11/2025
#456 You're so wrong
03/11/2025
#455 Gilded Python and Beyond
27/10/2025
#453 Python++
16/10/2025
#452 pi py-day (or is it py pi-day?)
09/10/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.