Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.
#369 The Readability Episode
Topics covered in this episode:
Granian
pytest 8 is here
Assorted Docker Goodies
New GitHub Copilot Research Finds 'Downward Pressure on Code Quality'
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Granian
via Andy Shapiro and Bill Crook
A Rust HTTP server for Python applications.
Granian design goals are:
Have a single, correct HTTP implementation, supporting versions 1, 2 (and eventually 3)
Provide a single package for several platforms
Avoid the usual Gunicorn + uvicorn + http-tools dependency composition on unix systems
Provide stable performance when compared to existing alternatives
Could use better logging
But making my own taught me maybe I prefer that!
Originates from the Emmett framework.
Brian #2: pytest 8 is here
Improved diffs:
Very verbose -vv is a colored diff, instead of a big chunk of red.
Python code in error reports is now syntax-highlighted as Python.
The sections in the error reports are now better separated.
Diff for standard library container types are improved.
Added more comprehensive set assertion rewrites for comparisons other than equality ==, with the following operations now providing better failure messages: !=, <=, >=, <, and >.
Improvements to -r for xfailures and xpasses
Report tracebacks for xfailures when -rx is set.
Report captured output for xpasses when -rX is set.
For xpasses, add - in summary between test name and reason, to match how xfail is displayed.
This one was important to me. Massively helps when checking/debugging xfail/xpass outcomes in CI. Thanks to Fabian Sturm, Bruno Oliviera, and Ran Benita for help to get this release.
Lots of other improvements
See full changelog for all the juicy details. And then upgrade and try it out!
pip install -U pytest
Michael #3: Assorted Docker Goodies
OrbStack
Say goodbye to slow, clunky containers and VMs
OrbStack is the fast, light, and easy way to run Docker containers and Linux. Develop at lightspeed with our Docker Desktop alternative.
Podman
Podman is an open source container, pod, and container image management engine. Podman makes it easy to find, run, build, and share containers.
Manage containers (not just Podman.)
Podman Desktop allows you to list, view, and manage containers from multiple supported container engines* in a single unified view.
Gain easy access to a shell inside the container, logs, and basic controls.
Works on Podman, Docker, Lima, kind, Red Hat OpenShift, Red Hat OpenShift Developer Sandbox.
CasaOS
Your Personal Cloud OS.
Community-based open source software focused on delivering simple personal cloud experience around Docker ecosystem.
Also have the ZimaCube hardware (Personal cloud. Re-invented.)
Brian #4: New GitHub Copilot Research Finds 'Downward Pressure on Code Quality'
David Ramel
Regarding “…the quality and maintainability of AI-assisted code compared to what would have been written by a human.”
Q: "Is it more similar to the careful, refined contributions of a Senior Developer, or more akin to the disjointed work of a short-term contractor?"
A: "We find disconcerting trends for maintainability. Code churn -- the percentage of lines that are reverted or updated less than two weeks after being authored -- is projected to double in 2024 compared to its 2021, pre-AI baseline. We further find that the percentage of 'added code' and 'copy/pasted code' is increasing in proportion to 'updated,' 'deleted,' and 'moved 'code. In this regard, AI-generated code resembles an itinerant contributor, prone to violate the DRY-ness [don't repeat yourself] of the repos visited."
Extras
Brian:
Did I mention pytest 8? Just pip install -U pytest today
And if you want to learn pytest super fast, check out The Complete pytest Course or grab a copy of the book, Python Testing with pytest
Michael:
I’d like to encourage people to join our mailing list. We have some fun plans and some of them involve our newsletter. It’s super private, no third parties, no spam and is based on my recent Docker and Listmonk work.
Big release for Pydantic, 2.6.
New essay: Use Custom Search Engines Way More
Joke:
Pushing to main
Junior vs Senior engineer
1/30/2024 • 34 minutes, 44 seconds
#368 That episode where we just ship open source
Topics covered in this episode:
Syntax Error #11: Debugging Python
umami and umami-analytics
pytest-suite-timeout
Listmonk and (py) listmonk
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Syntax Error #11: Debugging Python
Juhis
Issue 11 of a fun debugging newsletter from Juhis
Debugging advice
mindeset
take a break
adopt a process
talk to a duck
tools & techniques
print
snoop
debuggers
Django debug toolbar & Kolo for VS Code
Michael #2: umami and umami-analytics
Umami makes it easy to collect, analyze, and understand your web data — while maintaining visitor privacy and data ownership.
umami-analytics is a client for privacy-preserving, open source Umami analytics platform based on httpx and pydantic.
Core features
➕ Add a custom event to your Umami analytics dashboard.
🌐 List all websites with details that you have registered at Umami.
🔀 Both sync and async programming models.
⚒️ Structured data with Pydantic models for API responses.
👩💻 Login / authenticate for either a self-hosted or SaaS hosted instance of Umami.
🥇Set a default website for a simplified API going forward.
Brian #3: pytest-suite-timeout
While recording Python Test 213 : Repeating Tests
I noted that pytest-repeat doesn’t have a timeout, but pytest-flakefinder does.
And perhaps I should add a timeout to pytest-repeat
But also, maybe there’s other places I’d like a timeout, not just with repeat, but often with other parametrizations and even parametrize matrices.
So, pytest-suite-timeout is born
But Why not pytest-timeout? asks Mike Felder
timeout is only timeouts per test, and it isn’t always graceful
suite-timeout is for the full suite, and only times out between tests.
so, you could use both
Michael #4: Listmonk and (py) listmonk
Listmonk
Self-hosted newsletter and mailing list manager (think mailchimp)
Built on Go and Vue
Backed by a company charing for this service as SaaS
Still requires a mail infrastructure backend (I’m using Sendgrid)
listmonk (on PyPI)
API Client for Python
Created by Yours Truly
I tried 4 other options first, they were all bad in their own way.
Features:
➕Add a subscriber to your subscribed users.
🙎 Get subscriber details by email, ID, UUID, and more.
📝 Modify subscriber details (including custom attribute collection).
🔍 Search your users based on app and custom attributes.
🏥 Check the health and connectivity of your instance.
👥 Retrieve your segmentation lists, list details, and subscribers.
🙅 Unsubscribe and block users who don't want to be contacted further.
💥 Completely delete a subscriber from your instance.
📧 Send transactional email with template data (e.g. password reset emails).
These pair well in my new docker cluster infrastructure
Calls to the API from a client app (e.g. Talk Python Training) are basically loopback on the local docker bridge network.
Extras
Michael:
Every github repo that has “releases” has a releases RSS feed, e.g. Umami
Kolo Django + VS Code
Warp Terminal on linux
bpytop and btop - live server monitoring
Joke: The cloud, visualized
1/23/2024 • 32 minutes, 18 seconds
#367 A New Cloud Computing Paradigm at Python Bytes
Topics covered in this episode:
Leaving the cloud
PEP 723 - Inline script metadata
Flet for Android
harlequin: The SQL IDE for Your Terminal.
Extras
Joke
Watch on YouTube
About the show
Sponsored by Bright Data : pythonbytes.fm/brightdata
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Leaving the cloud
Also see Five values guiding our cloud exit
We value independence above all else.
We serve the internet.
We spend our money wisely.
We lead the way.
We seek adventure.
And We stand to save $7m over five years from our cloud exit
Slice our new monster 192-thread Dell R7625s into isolated VMs
Which added a combined 4,000 vCPUs with 7,680 GB of RAM and 384TB of NVMe storage to our server capacity
They created Kamal — Deploy web apps anywhere
A lot of these ideas have changed how I run the infrastructure at Talk Python and for Python Bytes.
Brian #2: PEP 723 - Inline script metadata
Author: Ofek Lev
This PEP specifies a metadata format that can be embedded in single-file Python scripts to assist launchers, IDEs and other external tools which may need to interact with such scripts.
Example:
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "requests&lt;3",
# "rich",
# ]
# ///
import requests
from rich.pretty import pprint
resp = requests.get("https://peps.python.org/api/peps.json")
data = resp.json()
pprint([(k, v["title"]) for k, v in data.items()][:10])
Michael #3: Flet for Android
via Balázs
Remember Flet?
Here’s a code sample (scroll down a bit).
It’s amazing but has been basically impossible to deploy.
Now we have Android.
Here’s a good YouTube video showing the build process for APKs.
Brian #4: harlequin: The SQL IDE for Your Terminal.
Ted Conbeer & other contributors
Works with DuckDB and SQLite
Speaking of SQLite
Jeff Triplett and warnings of using Docker and SQLite in production
Anže’s post
and and article: Django, SQLite, and the Database is Locked Error
Extras
Brian:
Recent Python People episodes
Will Vincent
Julian Sequeira
Pamela Fox
Michael:
PageFind and how I’m using it
When "Everything" Becomes Too Much: The npm Package Chaos of 2024
Essay: Unsolicited Advice for Mozilla and Firefox
SciPy 2024 is coming to Washington
Joke: Careful with that bike lock combination code
1/16/2024 • 36 minutes, 21 seconds
#366 Put It In The Backlog
Topics covered in this episode:
Python 3.13 gets a JIT
UniDep - Unified Conda and Pip Dependency Management
Don’t Start Pull Requests from Your Main Branch
instld: The simplest package management
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Python 3.13 gets a JIT
Anthony Shaw
Great article that walks through JIT concepts with a small example as if you were writing a parser in Python instead of C.
Covers
What is a JIT?
What is a copy-and-patch JIT? and Why?
How does the Python JIT work?
Is it faster?
This is a building block to future improvements
Michael #2: UniDep - Unified Conda and Pip Dependency Management
🔄 Single requirements.yaml for both #Conda & #Pip.
⚙️ Works with pyproject.toml & setup.py.
🏢 Perfect for monorepos.
🔒 Create consistent conda-lock files for multiple projects.
🌍 Platform-specific support.
🚀 unidep install for easy setup.
Full source page.
Brian #3: Don’t Start Pull Requests from Your Main Branch
Hynek Schlawack
When contributing to other users’ repositories, always start a new branch in your fork.
Reasons to not use main
Forces you to only have one change in progress
Merges will generate conflicts and you can’t pull from that branch anymore. Need to kill the fork and start over
If the target repo has branch protection on, then maintainers can’t push to your branch.
Hynek also provides a way to fix things if you’ve already started your changes on a main branch fork.
Michael #4: instld: The simplest package management
Thanks to this package, it is very easy to manage the lifecycle of packages.
⚡ Run your code without installing libraries.
⚡ You can use 2 different versions of the same library in the same program.
⚡ You can use incompatible libraries in the same project, as well as libraries with incompatible/conflicting dependencies.
⚡ It's easy to share written scripts. The script file becomes self-sufficient - the user does not need to install the necessary libraries.
⚡ The library does not leave behind "garbage". After the end of the program, no additional files remain in the system.
Extras
Brian:
The Complete pytest Course is now actually complete
Although updates will happen when and if necessary as pytest/Python changes.
To celebrate, use code 2024 in January for 10% off any pricing option.
More episodes of Python People and Python Test on the way now
That course took up a lot of my time in late 2023
Just released an episode with Will Vincent and Python Test will have a new episode this week and for the foreseeable future.
Let me know if you want to be on Python People or Python Test
Michael:
Hatch follow up: Great coverage of Hatch v1.8.0! One small correction: only the binaries for Hatch are signed with the certificate from the PSF. - Ofek
PyPI new user registration temporarily suspended
Pagefind and how I’m using it
Talk Python Live: Data Doodles event coming early Feb
New essay: AI Features a Waste of Time?
Joke: Put it in the backlog
1/9/2024 • 32 minutes, 1 second
#365 Inheritance, but not Inheritance!
Topics covered in this episode:
* Hatch v1.8*
svcs: A Flexible Service Locator for Python
Steering Council 2024 Term Election Results
Python protocols. When to use them in your projects to abstract and decoupling
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Hatch v1.8
Hatch now manages installing Python for you.
Hatch can build .app and .exe stand-alone binaries for you
The macOS ones are signed (signed!)
Discussion here
Brian #2: svcs : A Flexible Service Locator for Python
Hynek
A library to help structure and test Python web applications.
“svcs (pronounced services) is a dependency container* for Python. It gives you a central place to register factories for types/interfaces and then imperatively acquire instances of those types with automatic cleanup* and **health checks.”
“Benefits:
Eliminates tons of repetitive boilerplate code,
unifies acquisition* and cleanups of services,
provides full static type safety for them,
simplifies testing through loose coupling,
improves live introspection and monitoring* with **health checks.”
Hynek has started a YouTube channel, and is starting with an explanation of svcs.
Yes, Hynek, we want more videos. I like that it’s not a beginner level.
My request for future videos: just past beginner, and also intermediate level.
There are plenty of basics videos out there, not as many filling the gaps between beginner and production.
Michael #3: Steering Council 2024 Term Election Results
The 2024 Term Python Steering Council is:
Pablo Galindo Salgado
Gregory P. Smith
Emily Morehouse
Barry Warsaw
Thomas Wouters
Full results are available in PEP 8105 .
How do you become a candidate?
Candidates must be nominated by a core team member. If the candidate is a core team member, they may nominate themselves.
Brian #4: Python protocols. When to use them in your projects to abstract and decoupling
Carlos Vecina
“Protocols are an alternative (or a complement) to inheritance, abstract classes and Mixins.”
Understanding interactions between ABC, MixIns and Protocols in Python
With examples
Extras
Brian:
Donations. It’s a decent time of the year to donate to projects that help you
Python Software Foundation
Django Software Foundation
Python Bytes
Also, look for “Sponsor this project” links in GitHub for projects you depend on.
Michael:
Mastodon guidelines (mine):
If you have a picture and description, I’ll probably follow you back
If you have posts that seem relevant +1
If you have a verified webpage +1
If your account is private, won’t. I don’t understand really since private group messages already exist and the profile itself is public.
Speaking of Mastodon. I had a productive conversation with the PSF and others around masks and conferences.
Dropbox spooks users by sending data to OpenAI for AI search features
There was a comment in the above article to the effect of “Once you give your data to a third party (even trusted like Dropbox), you no longer control that data.” That sent me searching and thinking…
sync.com? proton drive (discount code)? nextcloud? filen.io? icedrive.net?
ownCloud’s recent CVE makes me a bit nervous of self-hosted options.
Either way, Cryptomator is very interesting.
Beyond privacy, this got me thinking, just how many hours of dev time have been diverted to add mediocre-at-best AI features to everything?
I’m doing a big digital decluttering and have lots to say on that soon.
Not submitting my talks to PyCascades this year.
But I did submit 3 talks to PyCon US. 🤞
I will be giving the keynote at PyCon Philippines.
Joke: The dream is dead?
12/20/2023 • 34 minutes, 29 seconds
#364 Holy Match-Cases Batman!
Topics covered in this episode:
A Python/Django Advent calendar
Dropbase helps you build internal web apps with Python
Real-world match/case
Extra, extra, extra, so many extras!
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: A Python/Django Advent calendar
James Bennett’s take on an Advent Calendar
“I’m going to try to publish one short blog post each day of Advent 2023, each covering a small but hopefully useful tip or bit of information for Python and/or Django developers”
First post also discusses using enums
A couple cool testing posts
Don’t mock Python’s HTTPX
I didn’t know HTTPX had built in transport mocking, very cool
Test your documentation
doctest discussion
Michael #2: Dropbase helps you build internal web apps with Python
Build fullstack web apps for your internal teams.
Import existing Python scripts
Quickly layer UIs and granular permissions on top.
Turn any SQL SELECT into an admin panel with Smart Tables.
Watch the video for the zen of it.
Freemium model
Brian #3: Real-world match/case
Ned Batchelder
Structural pattern matching example taken from a GitHub bot
Matching nested dictionaries, pulling out bits of data
The examples of not just matching but using case [structure] if [test on component] are neat.
Michael #4: Extra, extra, extra, so many extras!
WAY better DNS with Bunny.net DNS
Terminal Secrets essay
Meet the Supporting Developer in Residence (via Pycoders)
Songs in Python code
BohemianRhapsody.py
MoneyForNothing.py
PyCascades 2024
Project names blocked on PyPI to avoid name collision for downstream free-threaded Python distributions
An Open Letter to the Python Software Foundation
PSF’s official mission
https://discuss.python.org/t/python-3-12-1-now-available/40603
https://discuss.python.org/t/python-3-11-7-is-available/40778
Obfuscated Python winning (via Johannes Lippmann)
Extras
Brian:
Python for VSCode, Dec 2023 release, rolls out better test discovery to everyone.
Forcing pip to use virtualenv
Advent of Code
Joke: Too many open tabs
12/12/2023 • 27 minutes, 9 seconds
#363 DNS Again? It's Always DNS.
Topics covered in this episode:
Fixit 2: Meta’s next-generation auto-fixing linter
FastUI
Mail list / newsletter conversation
CLIs from type hints
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Fixit 2: Meta’s next-generation auto-fixing linter
via Bart Kappenburg
Fixit is dead! Long live Fixit 2 – the latest version of our open-source auto-fixing linter.
Fixit provides a highly configurable linting framework with support for auto-fixes, custom “local” lint rules, and hierarchical configuration, built on LibCST.
Fixit 2 is available today on PyPI.
Created by Meta’s Python Language Foundation team — a hybrid team of both PEs and traditional SWEs — helps own and maintain the infrastructure and tooling for Python.
Interesting comments on this article on Hacker News
I wonder if ruff format was already a thing when Fixit was adopted, whether it would exist?
Brian #2: FastUI
Samuel Colvin
“FastUI is a new way to build web application user interfaces defined by declarative Python code.”
MK: Reminds me of the code matches DOM style of Flutter. See code samples at the end.
Michael #3: Mail list / newsletter conversation
I’ve been tired of Mailchimp for a long time
Raising the prices month over month by $100 several months may be the straw
But what are the options? Lets ask Mastodon:
emailoctopus.com
listmonk.app [self hosted, open source]
keila.io [self/saas, open source]
mailyherald.org [self hosted, open source]
sendportal.io [self hosted, open source]
brevo.com
buttondown.email [django]
zoho.com/campaigns/
sendy.co [use your own bulk emailer (e.g. sendgrid or aws ses)
convertkit.com
mautic.org [open source]
constantcontact.com
getresponse.com
convertkit.com
Brian #4: CLIs from type hints
From Sander76
Pydantic Argparse “is a Python package built on top of pydantic which provides declarative typed argument parsing using pydantic models.”
Clipstick is a “cli-tool based on Pydantic models.”
tyro “is a tool for generating command-line interfaces and configuration objects in Python.”
tyro includes support for dataclasses and attrs in place of Pydantic
Extras
Brian:
Django 5.0 has been released
vim-keybindings-everywhere-the-ultimate-list - submitted by Paul Barry
PythonTest (the podcast formerly known as Test & Code, to be read in an undertone similar to the way one used to say “The artist formerly known as Prince”) has moved form testandcode.com to podcast.pythontest.com
Plus more guests are listed now. I think I’ve gone backwards from current to episode 182. I tried to get my kid to help out, unsuccessfully. May have to hire someone to help. grrr.
Michael:
Essay: Don't Sweat the Ad Blocker Drama
A story: my project this weekend, unify my over 20 domains to one host
Joke: Honest LinkedIn
12/5/2023 • 39 minutes, 1 second
#362 You can deprecate a global variable?
Topics covered in this episode:
Habits of great software engineers
Flask 3.0
Build Conway's Game of Life With Python
polars business
Extras
Joke
Watch on YouTube
About the show
Sponsored by Scout APM
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Habits of great software engineers
As we wind up the year, many people are thinking about goals for the new year.
Here’s a decent list to think about
Focusing beyond the code
Efficiency / Antifragility
Joy of tinkering
Knowing the why
Thinking in systems
Tech detox
The art of approximation
Transferring Knowledge to Other Problems
Making Hard Things Easy
Playing the Long Game
Developing a Code Nose
Strong Opinions loosely held
Michael #2: Flask 3.0
Deprecate the __version__ attribute. Use feature detection, or importlib.metadata.version("flask"), instead. #5230
How do you even do that?
This is news to me:
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[metadata]
name = "your-package-name"
version = "0.1.0"
Remove previously deprecated code. #5223
Brian #3: Build Conway's Game of Life With Python
Leodanis Pozo Ramos
CLI curses version
Nice walk through of breaking the problem into parts.
Michael #4: polars business
It's a plugin for Polars, which allows you to do business day arithmetic.
The big advantage of using this directly (as opposed to converting to pandas/numpy, using their business day tools, and then converting back) is that polars-business fits right in with the Polars lazy API. This means you'll still be able to get the gains from the Polars query optimiser without having to step into eager execution.
All you need to use is it is pip install polars-business
Written in Rust, but end-users doesn't need Rust to run it, Python is all you need.
Extras
Brian:
BLACKFRIDAY code still works for 50% off The Complete pytest Course, Full Course + Community Access, through Nov 30
Also Debugging chapter is up, and it includes a small TDD example.
Michael:
Dear Python Community by Kenneth Reitz
Python 3.13a2 out and Major new features of the 3.13 series, compared to 3.12
Thank you Black Friday supporters.
Joke:
ai vs dev
11/28/2023 • 28 minutes, 10 seconds
#361 Proper way to comment your code!
Topics covered in this episode:
The many shapes and sizes of keyboards
appeal - a CLI framework from Larry Hastings
Graphinate: Data to Graphs
A Disorganized List of Maintainer Tasks
Extras
Joke
Watch on YouTube
About the show
Sponsored by Scout APM
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: The many shapes and sizes of keyboards
Many keyboards discussed
Focus on health and safety (as it should!)
I swear by Microsoft Sculpt Ergonomic (which wasn’t mentioned)
More options still over at Wire Cutter
Brian #2: appeal - a CLI framework from Larry Hastings
“Give your program APPEAL!”
Appeal is a command-line argument processing library for Python, like argparse, optparse, getopt, docopt, Typer, and click. But Appeal takes a refreshing new approach.
Hello World example:
import appeal
app = appeal.Appeal()
@app.command()
def hello(name):
print(f"Hello, {name}!")
app.main()
looks fun, no idea how to test with it “yet”.
But I plan on looking into that.
Michael #3: Graphinate: Data to Graphs
via Eran Rivlis
Graphinate is a python library that aims to simplify the generation of Graph Data Structures from Data Sources.
Write a function to definite the edges as a generator, call materialize
Based on NetworkX
See the github page for visual examples
Brian #4: A Disorganized List of Maintainer Tasks
David Lord
Plus, David Lord, lead maintainer of Flask, Jinja, Click, … on Pallets, also PSF Fellow, has a blog. Neat.
TLDR; Next time you want to ask "When's the next release?", instead look at the project and see where you can start getting involved. The more help maintainers have, the more they can get done.
Long list of stuff David thinks about when maintaining a project.
My list is shorter, but it’s still long, and my projects are tiny in comparison to his
Extras
Brian:
Do you do enough testing? pytest to the Rescue! webinar from this morning
The Complete pytest Course will be 16 chapters, 11 are released, the 12th is recorded and almost released, and the 13th should be next week, … I should be done with all 16 by the end of the year.
Testing argparse Applications
Python Test Podcast episode 109: Testing argparse Applications
Blog post on pythontest.com: Testing argparse Applications
Black Friday sale on The Complete pytest Course
Use code BLACKFRIDAY for 50% off of
The Complete pytest Course, Full Course + Full Access
Michael:
It’s Black Friday at Talk Python
Python 3.13.0 alpha 1 is now available
Python Developers Survey 2023
Joke: The proper way to comment your code!
11/21/2023 • 29 minutes, 39 seconds
#360 Happy Birthday!
Topics covered in this episode:
exclude_also with coverage.py
Writeside
Extra, extra, extra
Chrome not proceeding with Web Integrity API deemed by many to be DRM
Extras
Joke
Watch on YouTube
About the show
Sponsored by Scout APM
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Note: No episode next week. Michael will be at Microsoft Ignite in Seattle.
Happy Birthday to us (7 years old today)!
Brian #1: exclude_also with coverage.py
Interesting exchange between Pamela Fox, Hugo van Kemenade, and myself where we all discover exclude_also, even though it’s been there since February
This is cool because you can exclude common “should I cover this? It’s just for debugging.” kinda stuff, and other “I don’t wanna test that” places.
To exclude code blocks, we can use *# pragma: no cover* in the code.
Or we can list lines in coverage setting with exclude_lines, but you have to also list # pragma: no cover, which is weird.
exclude_also just just right. It leaves all the inline excludes alone, and adds some regexes, and you can even just have one if that’s all you need, like if __name__ == .__main__.:
See coverage docs
Michael #2: Writeside
An IDE for writing the docs
Write, test, build, and publish docs
Docs-as-code out of the box
Doc quality automation: Ensure documentation quality and integrity with 100+ on-the-fly inspections in the editor as well as tests in Live Preview and during build.
Comes as a separate IDE as well as a plugin for PyCharm, etc.
Pricing will be free + paid premium version (like PyCharm), fully free for now
Brian #3: Extra, extra, extra
Welcome Marie Nordin as the new PSF Community Communications Manager
Woohoo!
Pablo Galindo and Łukasz Langa started a podcast, called core.py
Inside look into Python 3.13
Two episodes so far
The first core sprint for 3.13
Details on removing the GIL
regexcrossword
Suggested by Kim van Wyk
actually really great for practicing regex rules
Michael #4: Chrome not proceeding with Web Integrity API deemed by many to be DRM
Google’s premise for the internet:
The Internet should be constructed so that users can be identified, tracked, retargeted (and hence resold). — Google
And privacy is important.
So how do we make both of these work.
FLOCs?
Privacy Sandboxes?
Web Integrity?
No, just no.
How about you sell us ads the same way you surface search results (by what is on the page, not who is visiting it)
Good riddance to this idea you corrupted organization.
What was wrong with Web Integrity? Some comments
Issue #134 calls the idea "absolutely unethical and against the open web."
Issue #113 say they "can't believe this is even proposed."
Issue #127 adds: "Have you ever stopped to consider that you're the bad guys?”
Extras
Brian:
Mock chapter of pytest: working with projects, the 2nd course in The Complete pytest Course series, is recorded and hopefully releasing today. At the very least some time this week.
PyCharm has sent me a bunch of coupon codes for students of The Complete pytest Course.
Sign up for the course and ask me for the code, and I’ll send it to you.
Nov 21 webinar with yours truly: Do You Do Enough Testing? pytest to the Rescue!
Michael:
We Just Gave $500,000 to Open Source Maintainers - Sentry (thank you)
ruff format + pycharm follow up
JetBrains AI is getting very good a commit messages
Add exception handling in background_service.py:
Introduced try-except blocks to handle potential exceptions in the 'pending_jobs', 'start_job_processing', and 'run_pending_job' methods in background_service.py. This change enhances error handling and makes the service more robust by preventing crashes if a job or episode cannot be fetched or if an unknown job action is encountered.
Add assemblyai to requirements and update ruff version:
This commit includes the addition of assemblyai package as part of the requirements.txt file, required to introduce new speech-to-text feature in our application. Ruff version is also updated from 0.1.3 to 0.1.4 due to bug fixes and stability improvements in the new version. Assemblyai also includes dependencies like pydantic and websockets.
GPT4All follow up
Got some nice feedback on my statement on PyCon 2024’s health and safety policy
More I think about it, the more out of touch it seems
Comparisons, no mask requirements for any of:
GitHub Universe - N,NNN? attendees
CES - 180,000 attendees
SXSW - 152,000 attendees
KubeCon - 12,000 attendees
Adobe Summit - 10,000 attendees
Mobile World Conference - 109,500 attendees
DeveloperWeek - 2,000 attendees
Microsoft Ignite - 4,000 attendees
WWDC - unkown
Joke:
The plural of regex is regrets.
11/7/2023 • 35 minutes, 44 seconds
#359 gil--;
Topics covered in this episode:
PyCon 2024 is up?
Ruff formatter is production ready
gil--;
Why is the Django Admin “Ugly”?
Extras
Joke
Watch on YouTube
About the show
Sponsored by Scout APM
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: PyCon 2024 is up?
May 15 - May 23, 2024 - Pittsburgh, Pennsylvania
Conference breakdown:
Tutorials: May 15 - 16, 2024
Main Conference and Online: May 17 - 19, 2024
Job Fair: May 19, 2024
Sprints: May 20 - May 23, 2024
Tickets aren’t on sale yet
Unfortunately, I’m not going (see health and safety guidelines)
Attendance numbers over time on Wikipedia
Brian #2: Ruff formatter is production ready
We reported the alpha release in September
It’s fast, 30x faster than Black
Provides >99.9% compatibility with Black, with a list of known deviations
More configurable
Bundled with ruff, ruff format
Still in Beta, but considered production-ready
Integration extensions for VSCode and PyCharm
Michael #3: gil--;
The Python Steering Council has now formally accepted PEP 703 ("Making the Global Interpreter Lock Optional in CPython")
The global interpreter lock will remain the default for CPython builds and python.org downloads.
A new build configuration flag, --disable-gil will be added to the configure script that will build CPython with support for running without the global interpreter lock.
"In short, the SC accepts PEP 703, but with clear provisio:
that the rollout be gradual and break as little as possible,
that we can roll back any changes that turn out to be too disruptive – which includes potentially rolling back all of PEP 703 entirely if necessary (however unlikely or undesirable we expect that to be)."
Removing the global interpreter lock requires substantial changes to CPython internals, but relatively few changes to the public Python and C APIs.
The implementation changes can be grouped into the following four categories:
Reference counting
Memory management
Container thread-safety
Locking and atomic APIs
Brian #4: Why is the Django Admin “Ugly”?
Vince Salvino
Some great quotes from the article:
"The Django admin is not ugly, rather, no effort was made to make it a beautiful end-user tool.” - Ken Whitesell
“The admin’s recommended use is limited to an organization’s internal management tool. It’s not intended for building your entire front end around.” - Django docs
“The Django admin was built for Phil.” - Jacob Kaplan-Moss
“Even in the 0.9x days we used to have a image that said “Admin: it’s not your app”.” - Curtis Maloney
As Curtis put it, “encouraging people to build their own management interface, and treat admin as a DB admin tool, has saved a lot of people pain... the effort to customise it grows far faster than the payoffs.”
Extras
Brian:
Local Conferences: Big Potential
Michael:
Data Science Jumpstart with 10 Projects course is out!
PSF is X-ed out (or are they?)
GPT4All is pretty excellent
Fosstodon invites from us (expires Nov 7 2023)
Joke: Searching YouTube for bug fixes
11/2/2023 • 43 minutes, 4 seconds
#358 Collecting Shells
Topics covered in this episode:
Django 5.0 beta 1 released
git bash, terminals, and Windows
Mastering Integration Testing with FastAPI
Reuven Learner has been banned for trading in rare animals (Pythons and Pandas)
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Django 5.0 beta 1 released
Django 5.0 release notes
supports Python 3.10, 3.11, 3.12
Facet filters in the admin
Simplified templates for form field rendering
Database-computed default values
Database generated model field
More options for declaring field choices
More Django news
Djangonaut Space now accepting applications for our next contributor mentorship cohort
Take the Django Developers Survey 2023
Michael #2: git bash, terminals, and Windows
See the screenshot
Requires Windows 10
Install the Windows Terminal from the Microsoft Store
Brian #3: Mastering Integration Testing with FastAPI
Alex Jacobs
Some great integration testing techniques
Focused on FastAPI, but relevant to many frameworks.
Mocking authentication
Mocking external APIs
Fun use of parametrize and indirect fixtures for mocking responses.
Mocking MongoDB
Mocking AWS S3
Michael #4: Reuven Learner has been banned for trading in rare animals (Pythons and Pandas)
via Pat Decker
Reuven, like us, teaches Python and Data Sci
Tried to advertise his courses (Python and Pandas courses) on Meta
Got permanently (life-time) banned for selling rare and endangered animals.
Sometimes I really hate these big tech companies
My recent beefs have been with app store reviewers and surveillance-based capitalism
Extras
Brian:
Where did everyone go? - Ned Batchelder
I do feel like we’re more fragmented than before, but I am feeling like we have a community on Mastodon.
reminder that Mastodon has text search now
On Sunday, I released Ch9, Coverage, as part of The Complete pytest course, specifically part of pytest Working with Projects.
It was super fun. I’ve used coverage a lot since writing the book, for example, I demonstrate branch coverage. It’s so much more effective to teach in video than in printed screenshots.
Michael:
Autin shell enhancer by Ellie Huxtable recommended by recommended by Nik
JupyterCon 2023 videos are out
More shells follow up from Teemu Hukkanen for “editor like” features Zsh and Bash
ruff format and strings, aka format.quote-style = "single"
Glyph’s programming your computer talk is up.
Joke: this is what the experts do
10/24/2023 • 35 minutes, 28 seconds
#357 Python 3.7 EOLed, We Hadn't Noticed
Topics covered in this episode:
QuickMacHotKey
Things I’ve learned about building CLI tools in Python
Warp Terminal (referral code)
Python 3.7 EOLed, but I hadn’t noticed
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: QuickMacHotKey
This is a set of minimal Python bindings for the undocumented macOS framework APIs that even the most modern, sandboxing-friendly shortcut-binding frameworks use under the hood for actually binding global hotkeys.
Thinking of updating my urlify menubar app.
Brian #2: Things I’ve learned about building CLI tools in Python
Simon Willison
A cool Cookiecutter starter project, if you like Click.
Conventions and consistency in commands, arguments, options, and flags.
The importance of versioning. Your CLI is an API.
Include examples in --help
Include --help in documentation.
Aside, Typer is also cool, and is built on Click.
Michael #3: Warp Terminal (referral code)
Really nice reimagining of the terminal
Currently macOS only but will be Linux, then Windows
New command section & output section mode
Blocks can be navigated and searched as a single thing (even if it’s 1,000 lines of output)
CTRL+R gives a nice history like McFly I’ve discussed before
Completions into popular CLIs (i.e. git)
Edit like an editor (even you VIM people 🙂 )
Has AI built in too
Free for individuals
If you’re going to give it a try, use my referral I guess?
Brian #4: Python 3.7 EOLed, but I hadn’t noticed
EOL was June 27
I’m still supporting 3.7, as are most projects I work with. But I’m not sure when that will change.
VS Code is deprecating 3.7 support
Why I’m ok with supporting 3.7 for some projects
dataclasses came in with 3.7
from __ future__ import annotations allows the use of union types with X|Y.
example
I’ll probably drop 3.7 as my dependent projects drop it.
Extras
Brian:
pytest-param-scope is an in progress hack to workaround this missing scope.
Runs setup before any param test cases, and teardown after the last one.
Stop defining people by what they’re not: on “non-code contributors” - Josh Simmons
Michael:
OpenAI has unveiled the Beta version of its Python SDK (via Mark Little)
StackOverflow lays off 28% of its staff
Weird follow up of their “what to do if you’re laid off” post from 6 months ago?
Is AI eating into their traffic?
ArsTechnica has thoughts too
Joke:
Define hot
New Zoo exhibit
10/17/2023 • 29 minutes, 6 seconds
#356 Ripping from PyPY
Topics covered in this episode:
Psycopg 3
dacite
RIP: Fast, barebones pip implementation in Rust
Flaky Tests follow up
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Psycopg 3
Psycopg folks recommend starting with 3 for new projects
2 is still actively maintained, but no new features are planned
recommend staying with 2 for legacy projects
Psycopg 3 project
2 vs 3 feature comparison
A few Psycopg 3 highlights
native asyncio support
native support for more Python types (such as Enums) and PostgreSQL types (such as multirange)
Default server-side parameters binding
Allows binary parameters and query results (and text, of course)
Pipeline/batch mode support
Static typing support
Michael #2: dacite
via Raymond Peck
Simple creation of data classes from dictionaries
Dacite supports following features:
nested structures
(basic) types checking
optional fields (i.e. typing.Optional)
unions
forward references
collections
custom type hooks
It's important to mention that dacite is not a data validation library.
Type hooks are interesting too.
Brian #3: RIP: Fast, barebones pip implementation in Rust
list of current and planned features of RIP, the biggest are listed below:
Downloading and aggressive caching of PyPI metadata. (done)
Resolving of PyPI packages using Resolvo. (done)
Installation of wheel files (planned)
Support sdist files (planned)
new project, just a couple weeks old. … “We would love to have you contribute!”
Michael #4: Flaky Tests follow up
by Marwan Sarieddine
I was inspired by the Talk Python podcast on "Taming flaky tests" with Gregory Kapfhammer and Owain Parry so I wrote up an article on my blog titled "How not to footgun yourself when writing tests - a showcase of flaky tests”
Extras
Brian:
Just wrapping up some personal projects, which means…
Python People episodes soon
Python Test episodes soon (but later)
More course chapters coming
Michael:
PyBay 2023 was fun
Switched to Spark Mail, recommended
Dust (what science fiction story telling should be), try:
FTL
Oceanus
Joke:
There are more hydrogen atoms in a single molecule of water than there are stars in the entire Solar System. - mas.to/@SmudgeTheInsultCat/111174610011921264
The Big Rewrite
10/10/2023 • 24 minutes, 13 seconds
#355 Python 3.12 is Out!
Topics covered in this episode:
3.12 is out!
Trouble with virtualenv caching, a tale of 3.12 update
Python Developers Survey 2022 Results
Scientific Python Library Development Guide
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: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: 3.12 is out!
What’s new
PEP 695, type parameter syntax and the type statement
PEP 692, using TypedDict to annotate **kwargs
PEP 698, typing.override() decorator
PEP 701, f-strings in the grammar
PEP 684, a unique per-interpreter GIL
PEP 669, low impact monitoring
Improved ‘Did you mean …’ suggestions for NameError, ImportError, and SyntaxError exceptions
PEP 688, using the buffer protocol from Python
The pathlib.Path class now supports subclassing
The os module received several improvements for Windows support
A command-line interface has been added to the sqlite3 module
isinstance() checks against runtime-checkable protocols enjoy a speed up of between two and 20 times
The asyncio package has had a number of performance improvements, with some benchmarks showing a 75% speed up.
A command-line interface has been added to the uuid module
Due to the changes in PEP 701, producing tokens via the tokenize module is up to up to 64% faster.
PEP 683, immortal objects
PEP 709, comprehension inlining
Brian #2: Trouble with virtualenv caching, a tale of 3.12 update
Michael #3: Python Developers Survey 2022 Results
I did a “first reactions” video too
Brian #4:Scientific Python Library Development Guide
Announcement and Overview by Henry Schreiner
Extras
Brian:
The Complete pytest Course is now at courses.pythontest.com
Still on Teachable, just with a custom domain
Also, just released Chapter 8 today.
Michael:
Moving to Mona App (was using Ivory) for Mastodon
Making bank on .ai
Vivaldi on iOS
Joke: Thought it would be easy
10/3/2023 • 35 minutes, 15 seconds
#354 Python 3.12 is Coming!
Topics covered in this episode:
logmerger
The third and final Python 3.12 RC is out now
The Python dictionary dispatch pattern
Visualizing the CPython Release Process
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: logmerger
Paul McGuire
logmerger is a TUI for viewing a merged display of multiple log files, merged by timestamp.
Built on textual
Awesome flags:
--output -
to send the merged logs to stdout
--start START and --end END
start and end time to select time window for merging logs
Caveats:
new. no pip install yet. so clone the code or download
perhaps I jumped the gun on covering this, but it’s cool
Michael #2: The third and final Python 3.12 RC is out now
Get your final bugs fixed before the full release
Call to action: We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.12 compatibilities during this phase
How to test.
Discussion on the issue.
Count down until October 2nd, 2023.
Brian #3: The Python dictionary dispatch pattern
I kinda love (and hate) jump tables in C
We don’t talk about dictionary dispatch much in Python, so this is nice, if not dangerous.
Short story: you can store lambdas or functions in dictionaries, then look them up and call them at the same time.
Also, I gotta shout out to the first blogroll I’ve seen in a very long time.
Should we bring back blogrolls?
Michael #4: Visualizing the CPython Release Process
by Seth Larson
Here’s the deal (you should see the image in the article 😉 )
Freeze the python/cpython release branch. This is done using GitHub Branch Protections.
Update the Release Manager's fork of python/cpython.
Run Python release tools (release-tool, blurb, sphinx, etc).
Push diffs and signed tag to Release Manager's fork.
Git tag is made available to experts for Windows and macOS binary installers.
Source tarballs, Windows, and macOS binary installers built and tested concurrently.
6a: Release manager builds the tgz and tar.xz source files for the Python release. This includes building the updates documentation.
6b: Windows expert starts the Azure Pipelines configured to build Python.
6c: macOS Expert builds the macOS installers.
All artifacts (source and binary) are tested on their platforms.
Release manager signs all artifacts using Sigstore and GPG.
All artifacts are made available on python.org.
After artifacts are published to python.org, the git commit and tag from the Release Manager's fork is pushed to the release branch.
Extras
Brian:
The Complete pytest Course, part 2, Ch 7 Testing Strategy went up this weekend.
Only 9 more chapters to go
“Test & Code” → “Python Test”
Full version: “The Python Test Podcast” → “Test & Code” → “Python Test”
Also: “Python (Bytes | People | Test)”
Michael:
If you’re at PyBay, come say “hi”
EuroPython 2023 Videos up
Django + HTMX has a few days of early-bird discount left
Joke: Are you sleeping?
9/26/2023 • 21 minutes, 26 seconds
#353 Hatching Another Episode
Topics covered in this episode:
OverflowAI
Switching to Hatch
Alpha release of the Ruff formatter
What is wrong with TOML?
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python Testing with pytest, full course
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: OverflowAI
Integration of generative AI into our public platform, Stack Overflow for Teams, and brand new product areas, like an IDE integration.
Have a conversation about the search results and proposed answer with GenAI
Coming with IDE integration too.
Check out the video on their page for some more detail than the article.
Brian #2: Switching to Hatch
Oliver Andrich
Hatch has some interesting features
Template built from hatch new myproject includes isolating dev, test, lint virtual environments.
Each env can have scripts
Test matrix ala tox, but possibly easier to express complex matrices.
May not even need tox then, but then now you have hatch.
A way to specify which optional dependencies needed for default environment.
Notes from Brian
One premise is that lots of projects are now using hatch.
I don’t know if that’s true. A quick spot check of a few projects include projects that use hatchling. While hatchling is the back end to hatch, they are not the same. I use hatchling a lot now, but haven’t picked up using hatch. But I do want to try it more after reading this article.
Michael #3: Alpha release of the Ruff formatter
vis Sky Kasko
Charlie Marsh announced that an alpha version of a Ruff formatter has been released in Ruff v0.0.289.
The formatter is designed to be a drop-in replacement for Black, but with an excessive focus on performance and direct integration with Ruff.
Sky says: I can't find any benchmarks that have been released yet, but I did some extremely unscientific testing and found the Ruff formatter to be around 5 to 10 times faster than Black when running on already-formatted code or in a small codebase, and 75 times faster when running on a large codebase of unformatted code. (The second outcome probably isn't very important since most people would not often be formatting thousands of lines of completely unformatted code.)
For more info, see the README: https://github.com/astral-sh/ruff/blob/main/crates/ruff_python_formatter/README.md
Brian #4: What is wrong with TOML?
Colm O'Connor
Suggested by Will McGugan
This is a comparison of TOML vs StrictYAML under the use case of “readable story tests”.
TLDR; For smallish things like pyproject.toml, toml is fine. For huge files, something like StrictYAML may be less horrible.
from Brian:
Short answer: Nothing, unless you’re doing crazy things with it.
Re “readable story tests”: WTF? Neither of these are something I’d like to maintain.
Extras
Brian:
Python Testing with pytest, the course
New intro video to explain what the course is about
Using Teachable video
like notes, mini-viewer, and speed controls
Chapter on “Testing Strategy” is next
Michael:
HTMX + Django: Modern Python Web Apps, Hold the JavaScript Course
Coding in Rust? Here's a New IDE by JetBrains
Delightful Machine Learning Apps with Gradio out on Talk Python
Joke: The 5 stages of debugging
9/19/2023 • 29 minutes, 27 seconds
#352 Helicopter Time Comes to Python
Topics covered in this episode:
Heliclockter - Like datetime, but more timezone-aware
Wagtail 5
Git log customization
MiniJinja template engine
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Heliclockter - Like datetime, but more timezone-aware
Suggested by Peter Nilsson
The library exposes 3 classes:
datetime_tz, a datetime ensured to be timezone-aware.
datetime_local, a datetime ensured to be timezone-aware in the local timezone.
datetime_utc, a datetime ensured to be timezone-aware in the UTC+0 timezone.
Michael #2: Wagtail 5
Wagtail is the leading open-source Python CMS, based on Django.
Anything you can do in Python or Django, you can do in Wagtail.
Wagtail 5.0 provides even more options for your content creation experience
Dark mode has arrived
SVG support
Enhanced accessibility checker
Delete more safely
Some breaking changes in it because this release removes some of the old code paths that were maintained to give people more time to adapt their code to the new upgrades
Add custom validation logic to your Wagtail projects. You can now attach errors to specific child blocks in StreamField.
Brian #3: Git log customization
Justin Joyce
Just a simple git log --oneline makes the log so much more readable, but don’t stop there.
--graph helps to show different branches
-10 shows the last 10 commits.
And this beauty in .gitconfig makes git lg mostly do what you want most of the time:
[alias]
lg = log --graph -10 --format='%C(yellow)%h%Creset %s %Cgreen(%cr) %C(bold blue)[HTML_REMOVED]%Creset'
Michael #4: MiniJinja template engine
MiniJinja is a powerful but minimal dependency template engine for Rust compatible with Jinja/Jinja2
Comes with integration back into Python via minijinja-py package.
MiniJinja has a stronger sandbox than Jinja2 and might perform ever so slightly better in some situations.
However you should be aware that due to the marshalling that needs to happen in either direction there is a certain amount of loss of information.
Compiles to WebAssembly
Extras
Brian:
The pytest Primary Power course is ready.
To celebrate wrapping up the first course, pytest Primary Power is $49, the bundle is $99.
Bundle: This + next 2 courses + access to repo, discussion forum, Slack, and Discord
Michael:
New HTMX, language course, and data science course coming at Talk Python. Add your name here to get notified.
I’ll be at PyBay 2023 on Oct 8, 2023
Use "friendofspeaker" with for a 20% discount on the regular tickets.
Follow up from docstrings:
From Rhet
John Hagen:
You can certainly omit the type information from the docstring when you are using typehints. This is the way I've seen almost all modern usages of Google style docstrings nowadays. They still have some examples that include the type information because the original standard pre-dated Python 3 type annotations. Here is a simple example:
https://github.com/johnthagen/python-blueprint/blob/main/src/fact/lib.py#L5
This also shows off the next point that you brought up: can I document all of the exceptions that a function could raise. Google docstrings have the "Raises:" block for this, and I find it pretty nice and concise for when this is needed.
Also, PyCharm can be configured to autocomplete and render Google style docstrings
https://www.jetbrains.com/help/pycharm/settings-tools-python-integrated-tools.html
Tools | Python Integrated Tools | Docstrings | Docstring Format: Google
What's nice about this, is that then PyCharm will render the google style docstrings in the Quick Doc function (Ctrl+Q), making the headers bold and larger and lists look nice so it's easy to read.
Joke: Fully optimized my algorithm
9/12/2023 • 22 minutes, 20 seconds
#351 A Python Empire (or MPIRE?)
Topics covered in this episode:
mpire
mopup - the macOS Python.org Updater
Immortal Objects for Python
Common Docstring Formats in Python
Extras
Joke
Watch on YouTube
About the show
Sponsored by Sentry: pythonbytes.fm/sentry
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: mpire
A Python package for easy multiprocessing, but faster than multiprocessing
MPIRE is faster in most scenarios, packs more features, and is generally more user-friendly than the default multiprocessing package.
Tons of features.
Nice intro article with benchmarks.
Brian #2: mopup - the macOS Python.org Updater
Glyph Lefkowitz
On a mac, install Python with the standard Python.org installer.
Then, periodically, update with python3 -m mopup
I just did it and went from Python 3.11.4 to 3.11.5
See also Get Your Mac Python From Python.org for reasons to use python.org over other ways, also from Glyph.
Michael #3: Immortal Objects for Python
Instagram has introduced Immortal Objects – PEP-683 – to Python.
Brian #4: Common Docstring Formats in Python
Scott Robinson
I don’t mean to disrespect Scott, but I’m honestly curious if this is really common.
I like docstrings for the “why” of a function. And prefer type hints for types.
Let me know what you use, at @brianokken@fosstodon.org
Extras
Brian:
In search for a working retro Lunar Lander in Python
Michael:
Releases follow up
North Korean hackers behind malicious VMConnect PyPI campaign
Joke: It’s Bingo Time!
9/6/2023 • 35 minutes, 23 seconds
#350 You've Got The Stamina For This Episode
Topics covered in this episode:
Make Each Line Count, Keeping Things Simple in Python
Parsel
A Comprehensive Guide to Python Logging with Structlog
Stamina
Extras
Joke
Watch on YouTube
About the show
Sponsored by Sentry: pythonbytes.fm/sentry
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Make Each Line Count, Keeping Things Simple in Python
Bob Belderbos
Some great tips to help you simplify your Python code to make it more understandable and maintainable.
Michael #2: Parsel
Parsel is a BSD-licensed Python library to extract data from HTML, JSON, and XML documents.
Parsel lets you extract data from XML/HTML documents using XPath or CSS selectors.
It supports:
CSS and XPath expressions for HTML and XML documents
JMESPath expressions for JSON documents
Regular expressions
# Want a RSS feed detail from a website standard HTML?
selector = parsel.Selector(text=html_text)
for link in selector.css('head > link'):
rel = link.xpath('.//@rel').get()
rel_type = link.xpath('.//@type').get()
href = link.xpath('.//@href').get()
Brian #3: A Comprehensive Guide to Python Logging with Structlog
Stanley Ulili
structlog is an awesome logging tool, and already has great documentation.
However, this article is a great starting point, highlighting:
how easy it is to get started using structlog
configuring the default log level
changing the formatting
customizing the time stamp
adding custom fields
adding contextual data
filtering
async
…
Michael #4: Stamina
via Matthias Bach, by Hynek
Production-grade Retries Made Easy
stamina is an opinionated wrapper around the great-but-unopinionated Tenacity package. Its goal is to be as ergonomic as possible, while doing the right thing by default, while minimizing potential for misuse.
General additions on top of Tenacity
Retry only on certain exceptions.
Exponential backoff with jitter between retries.
Limit the number of retries and total time.
Automatic async support.
Preserve type hints of the decorated callable.
Count (Prometheus) and log (structlog) retries with basic metadata, if they’re installed.
Easy global deactivation for testing.
Extras
Brian:
The “pytest fixtures” chapter of the pytest course is available now.
Also, the PYTHONBYTES 20% discount still active for bundle through the end of August.
Michael:
Python 3.12.0 release candidate 1 released
PyCon UK: The conference takes place from the 22nd to the 25th of September in Cardiff, Wales. The schedule is available at 2023.pyconuk.org/schedule/ and tickets are available at 2023.pyconuk.org/tickets/.
PyData Eindhoven 2023, Nov 30 CFP open
PyData Seattle Language Creators Charity Fundraiser: Adele Goldberg - Smalltalk, Guido Van Rossum, Anders Hejlsberg, C#, and James Gosling - Java. September 19, 2023: 12:00 - 4:00 PM, in person only.
Joke:
Librarian
chatgpt-failures
8/29/2023 • 30 minutes, 55 seconds
#349 Djangonauts: Ready for Takeoff!
Topics covered in this episode:
Omnivore app
Djangonaut.space
Server-side hot reload
Python in Excel
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Omnivore app
Omnivore is the free, open source, read-it-later app for serious readers.
Distraction free. Privacy focused. Open source. Designed for knowledge workers and lifelong learners.
Save articles, newsletters, and documents and read them later — focused and distraction free.
Add notes and highlights.
Organize your reading list the way you want and sync it across all your devices.
Syncs with popular Personal Knowledge Management systems including Logseq and Obsidian
Wait, what’s Logseq? :)
A privacy-first, open-source platform for knowledge management and collaboration.
Kinda like Notion?
Brian #2: Djangonaut.space
“Where contributors launch”
This is a group mentoring program where individuals will work self-paced in a semi-structured learning environment over the course of three months.
Djangonauts are members of the community who wish to level up their current Django code contributions and potentially take on leadership roles in Django in the future.
Michael #3: Server-side hot reload
Thanks to Alex Riviere for some improvements
Bill Mill suggests websockets and Adam Johnson points he built something like this for Django (sorta) with django-browser-reload
To make it work just:
Include this script in your web projects for dev-time auto reloading of web browser when any change is detected in content.
Works across all web technologies, built out on a FastAPI / Tailwind project.
General workflow looks like:
Edit the source CSS file
Tailwind watcher generates a built CSS file
Built CSS file is included the Python web HTML template
Template appends a hash ID for the state of the CSS file
Changes to the source CSS thus trigger a change in the final ID
New ID means the page contents change and the script does a reload
Even works for static resources if you put a “version” indicator on them:
[HTML_REMOVED]
[HTML_REMOVED]
Brian #4: Python in Excel
Anaconda working with Microsoft to have Python built in to Excel.
“Python in Excel is currently in preview and is subject to change based on feedback. To use this feature, join the Microsoft 365 Insider Program and choose the Beta Channel Insider level.”
from Microsoft Support article: Getting started with Python in Excel
Extras
Brian:
Working on videos for “Ch3 : pytest Fixtures” for the Python Testing with pytest Course Bundle
Adding some drawings and some more bonus videos.
Thanks to everyone who’s signed up already.
I’ve pushed the 20% discount out till the end of August.
I also finally listed it on pythontest.com/courses
Also lots of new interviews for pythonpeople.fm, and I’m expecting at least one new episode of testandcode.com this week.
It’s going to be a busy week.
Michael:
PyCon Sweden CFP is open
Be on Talk Python around Mobile Apps?
Joke:
The Password Game
KennyLog-in.com - secure password generator
8/22/2023 • 31 minutes, 6 seconds
#348 JavaScript in Your Python
Topics covered in this episode:
Differentiating between writing down dependencies to use packages and for packages themselves
PythonMonkey
Quirks of Python package versioning
bear-type
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Differentiating between writing down dependencies to use packages and for packages themselves
Brett Cannon
Why can’t we just use pyproject.toml and stop using requirements.txt?
Nope. At least not yet. They’re currently for different things.
pyproject.toml
There’s project.dependencies and project.optional-dependencies.tests that kinda would work for listing dependencies for an app.
But you can’t say pip install -r pyproject.toml. It doesn’t work. And that’s weird.
project is intended for packaged projects.
requirements.txt
for applications and other non-packaged projects
It has specific versions
works great with pip
What then?
Either we stick with requirements.txt
Or we invent some other file, maybe requirements.toml?
Or maybe (Brian’s comment), add something like [application] and application.dependencies and application.optional-dependencies.tests to pyproject.toml
Michael #2: PythonMonkey
PythonMonkey is a Mozilla SpiderMonkey JavaScript engine embedded into the Python VM, using the Python engine to provide the JS host environment.
This product is in an early stage, approximately 80% to MVP as of July 2023. It is under active development by Distributive. External contributions and feedback are welcome and encouraged.
It will enable JavaScript libraries to be used seamlessly in Python code and vice versa — without any significant performance penalties.
Call Python packages like NumPy from within a JavaScript library, or use NPM packages like [crypto-js](https://www.npmjs.com/package/crypto-js) directly from Python.
Executing WebAssembly modules in Python becomes trivial using the WebAssembly API and engine from SpiderMonkey.
More details in Will Pringle’s article.
Brian #3: Quirks of Python package versioning
Seth Larson
Yes, we have SemVer, 1.2.3, and CalVer, 2023.6.1, and suffixes for pre-release, 1.2.3pre1.
But it gets way more fun than that, if you get creative
Here’s a few
v is an optional prefix, like v.1.0
You can include an “Epoch” and separate it from the version with a !, like 20!1.2.3
Local versions with alphanumerics, periods, dashes, underscores, like 1.0.0+ubuntu-1. PyPI rejects those. That’s probably good.
Long versions. There’s no max length for a version number. How about 1.2.3.4000000000000000001?
Pre, post, dev aren’t mutually exclusive: 1.0.0-pre0-post0-dev0
More craziness in article
-
Michael #4: bear-type
Beartype is an open-source PEP-compliant near-real-time pure-Python runtime type-checker emphasizing efficiency, usability, and thrilling puns.
Annotate @beartype-decorated classes and callables with type hints.
Call those callables with valid parameters: Transparent
Call those callables with invalid parameters: Boom
Traceback:
raise exception_cls(
beartype.roar.BeartypeCallHintParamViolation: @beartyped
quote_wiggum() parameter lines=[b'Oh, my God! A horrible plane
crash!', b'Hey, everybody! Get a load of thi...'] violates type hint
list[str], as list item 0 value b'Oh, my God! A horrible plane crash!'
not str.
Extras
Brian:
Python Testing with Pytest Course Bundle: Limited Pre-Release Beta
Use code PYTHONBYTES now through Aug 31for 20% discount (discount extended through the end of the month)
What’s a pre-release beta? There’s a video. Check out the link.
Error-tolerant pytest discovery in VSCode
Finally! But you gotta turn it on. Also, I gotta talk to them about the proper non-capitalization of pytest.
We’re at RC1 for Python 3.12.0
Hard to believe it’s that time of year again
Michael:
PyPI hires a Safety & Security Engineer, welcome Mike Fiedler
PackagingCon October 26-28
Cloud Builders: Python Conf (born in Ukraine): September 6, 2023 | online
Joke: Learning JavaScript
8/15/2023 • 33 minutes, 14 seconds
#347 The One About Context Mangers
Topics covered in this episode:
async-timeout
PyPI Project URLs Cheatsheet
httpx-sse
Creating a context manager in Python
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: async-timeout
An asyncio-compatible timeout context manager.
The context manager is useful in cases when you want to apply timeout logic around block of code or in cases when asyncio.wait_for() is not suitable.
Not finished yet timeout can be rescheduled by shift_by() or shift_to() methods
Brian #2: PyPI Project URLs Cheatsheet
Daniel Roy Greenfield
There’s some cool icons available under “Project Links” on pypi.org project pages.
How do you get those? And which ones are available.
Daniel has found out where to look, and built us a cheat sheet. Nice.
Michael #3: httpx-sse
Consume Server-Sent Event (SSE) messages with HTTPX.
SSE are super lightweight, server → client only subscriptions.
Like websockets but less overhead (especially for iot and mobile devices)
httpx-sse provides the connect_sse and aconnect_sse helpers for connecting to an SSE endpoint.
The resulting EventSource object exposes the .iter_sse() and .aiter_sse() methods to iterate over the server-sent events.
Brian #4: Creating a context manager in Python
Trey Hunner
Context managers are those things you use in a with block.
There’s a bunch of cool built in ones.
Building your own is a handy skill to have to clean up your code, and they’re pretty easy, with Trey’s tutorial.
Shown is a great example of temporarily modifying an environmental variable.
Then he gets into what you need to know about as, __enter__, and __exit__.
Extras
Brian:
I think I’ll nix the intro music to Python People. I didn’t know what music to use, so I re-used the music from Test & Code. And I got some very honest feedback that it just doesn’t fit and was better without it. So I’ll rip it out soon.
BTW, next episode to be released is with Bob Belderbos from PyBites. Should be later this week.
Michael:
Facebook and Instagram start blocking news in Canada
Joke:
day 1 and I hate it
8/8/2023 • 36 minutes, 1 second
#346 Have you lost your GIL?
Topics covered in this episode:
A Steering Council notice about PEP 703 (Making the Global Interpreter Lock Optional in CPython)
Google's post-cookie world could turn into DRM for the internet
How ruff changed my Python programming habits
pathlib api extended to use fsspec backends
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: A Steering Council notice about PEP 703 (Making the Global Interpreter Lock Optional in CPython)
Thomas Wouters
Suggested by John Hagen
“We intend to accept PEP 703, although we’re still working on the acceptance details.”
Moving forward in 3 stages
short-term, no-GIL experimental build in 3.13 or 3.14
mid-term, declare support for no-GIL version
long-term, no-GIL becomes default and remove any vestiges of the GIL
No commitment and timeframe is nebuous
long-term means 5+ years
Need community support
“We want to be able to change our mind if it turns out, any time before we make no-GIL the default, that it’s just going to be too disruptive for too little gain.”
Michael #2: Google's post-cookie world could turn into DRM for the internet
A new authentication system could let websites block extensions or jailbroken devices.
Google has been trying to implement plans to move beyond cookies for years without denying its partners the means to sell targeted ads.
One recent proposal to guarantee user privacy and security could come at the cost of freedom of functionality.
Comments are somewhat interesting.
More info in a second article.
Vivaldi has a response here.
Brave won’t ship with it.
Brian #3: How ruff changed my Python programming habits
Matthias Kestenholz
“…there’s always a trade off between development speed (waiting on git commit is very boring) and strictness. “
“ruff is so fast that enabling additional rules is practically free in terms of speed...”
ruff has way more rules since last I checked. They are just mostly turned off by default.
The article suggests a bunch to try turning on.
See also
ruff config settings
turn on flake8-bugbear while leaving on defaults with select = ["E", "F", "B"]
lots of rules to choose from
ruff-pre-commit to run these with pre-commit
Michael #4: pathlib api extended to use fsspec backends
via Justin Flannery
Expanding on the capabilities of fsspec, the same GitHub organization also supports another powerful library called universal_pathlib.
universal_pathlib is a python library that aims to extend Python's built-in pathlib.Path api to use a variety of backend filesystems using fsspec.
This seamless replacement allows developers to leverage the familiar and powerful pathlib API on any type of filesystem. upath.Path is a drop-in replacement for pathlib.Path and is an excellent addition to your toolkit.
Joke: Understanding pointers
8/2/2023 • 28 minutes, 9 seconds
#345 Some Big Time Releases
Topics covered in this episode:
Cython 3.0
Reading code : An important but seldom-discussed skill
Major new version of MicroPython: v1.20.0
Advanced Python Tips for Development
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
The Python People Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Cython 3.0
Long in development, the new major release of the Python-to-C compiler sheds legacy Python support and readies Cython developers for big changes in Python.
Cython 3 cleans up and modernizes Cython.
Pure Python mode allows Python developers to use their existing Python linting and code analysis tools on Cython.
Brian #2: Reading code : An important but seldom-discussed skill
Eric Matthes
A cool walk through of several techniques to read code
Strategies
Ignore function definitions
And in the example, also ignore comments
Simplify repetitive blocks
Examples shows mentally lumping a bunch of print statements into “print message”
Utilize IDE tools, like folding to hide functions your not looking at
Also includes a note about writing readable code.
Notes:
People believe your function and variable names, they should be descriptive, and they should not be deceptive.
Michael #3: Major new version of MicroPython: v1.20.0
via Matt Trentini
>10 months, >1000 mainline commits from >100 contributors
This release of MicroPython introduces a new lightweight package manager called mip.
In the MicroPython runtime, core/built-in types have been compressed by only including in the C-level type struct as many slots for C function pointers as is needed for a given type →
Any third-party C extensions will need to be updated to work with this change.
Massive list of detailed changes.
Brian #4: Advanced Python Tips for Development
Scofield Idehen
There’s 15 in the article, here’s a few
1 & 2. Use List Comprehensions and Generator Expressions.
It’s cool to see them side by side
enumerate() is fun
Embrace zip(). It’s weird, but very useful.
Utilize slots to Reduce Memory Usage
Extras
Brian:
Hear the story behind the quote “I came for the language, but I stayed for the community.” and learn about fountain pens, tea, and a Murderbot, on this week‘s Python People.
Michael:
Search (LLM like) Talk Python: explore-talk-python-to-me.streamlit.app by Aguss
Joke:
You’re full stack now
Seriously, take the HTMX course :)
7/26/2023 • 35 minutes, 52 seconds
#344 AMA: Ask Us Anything
Topics covered in this episode:
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Test & Code Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Main topic: AMA questions from the audience. Use the transcript search to find timestamps if you want to locate a particular one.
Extras
Michael:
Deputy CPython Developer in Residence position accepting applications.
My Make Your Python Web App Fly Around the World with CDNs talk at PWC 2023 is online.
“Joke”: Ode to Python recommended by FelixTheCat
7/18/2023 • 48 minutes, 2 seconds
#343 So Much Pydantic!
Topics covered in this episode:
Pydantic v2 released
Two Ways to Turbo-Charge tox
Awesome Pydantic
CLI tools hidden in the Python standard library
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Test & Code Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Pydantic v2 released
Pydantic V2 is compatible with Python 3.7 and above.
There is a migration guide.
Check out the bump-pydantic tool to auto upgrade your classes
Brian #2: Two Ways to Turbo-Charge tox
Hynek
Not just tox run-parallel or tox -p or tox --``parallel , but you should know about that also.
The 2 ways
Build one wheel instead of N sdists
Run pytest in parallel
tox builds source distributions, sdists, for each environment before running tests.
that’s not really what we want, especially if we have a test matrix.
It’d be better to build a wheel once, and use that for all the environments.
Add this to your tox.ini and now we get one wheel build
[testenv]
package = wheel
wheel_build_env = .pkg
It will save time. And a lot if you have a lengthy build.
Run pytest in parallel, instead of tox in parallel, with pytest -n auto
Requires the pytest-xdist plugin.
Can slow down tests if your tests are pretty fast anyway.
If you’re using hypothesis, you probably want to try this.
There are some gotchas and workarounds (like getting coverage to work) in the article.
Michael #3: Awesome Pydantic
A curated list of awesome things related to Pydantic! 🌪️
Notable items for me:
ML:
spaCy 🌟(26575) - spaCy is a free open-source library for Natural Language Processing in Python. It features NER, POS tagging, dependency parsing, word vectors and more.
ray 🌟(26496) - Ray provides a simple, universal API for building distributed applications.
jina 🌟(18734) - Jina is geared towards building search systems for any kind of data, including text, images, audio, video and many more. With the modular design & multi-layer abstraction, you can leverage the efficient patterns to build the system by parts, or chaining them into a Flow for an end-to-end experience.
Data
Beanie 🌟(1287) - Beanie - is an Asynchronous Python object-document mapper (ODM) for MongoDB, based on Motor and Pydantic.
Utilities
datamodel-code-generator 🌟(1694) - Pydantic model generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.
Goodconf 🌟(99) - A thin wrapper over Pydantic's settings management. Allows you to define configuration variables and load them from environment or JSON/YAML file. Also generates initial configuration files and documentation for your defined configuration.
Brian #4: CLI tools hidden in the Python standard library
Simon Willison (and hat tip to Seth Larson)
Simon looked for all of the command line goodies in the standard library.
I knew about python -m http.server to run a server at port 8000 from the local directory, but there’s so much more.
Here are a few
python -m gzip --decompress pypi.db.gz as a gzip utility.
Especially handy on Windows as it doesn’t come with gzip by default
python -m base64 with -d decode, -e encode, and -t encode and decode
python -m asyncio for an asyncio REPL
Tokenize a Python file with python -m tokenize somefile.py
View the AST with python -m ast somefile.py
Pretty print JSON with python -m json.tool
Extras
Brian:
Congrats to Seth Larson, PSFs first Security Developer-in-Residence
Announcing Our New Security Developer in Residence! - PSF announcement
I am the first PSF Security Developer-in-Residence - Seth’s announcement
PythonPeople.fm is live
"The NEW podcast about the people who make the Python community awesome.”
I’m focusing more on the people, and less on the tech.
First episode is with Michael Kennedy
Upcoming episodes in the works with Paul Everitt, Paul McGuire, and Steve Holden.
More people scheduled, many asked, and many more to be asked.
Michael:
MongoDB with Async Python course is out! (talkpython.fm/async-mongodb)
Meta commits to dedicate three engineer-years to implement the removal of the GIL from Python
PyPI has a blog
Joke:
Containers, that’ll fix it
Bonus dad joke: 5 ants rent an apartment. Invite 5 other ants to share the rent. Now there are tenants.
7/11/2023 • 35 minutes, 51 seconds
#342 Don't Believe Those Old Blogging Myths
Topics covered in this episode:
Plumbum: Shell Combinators and More
Our plan for Python 3.13
Some blogging myths
Jupyter AI
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Test & Code Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: Plumbum: Shell Combinators and More
Suggested by Henry Schreiner last week.
(Also, thanks Michael for the awesome search tool on PythonBytes.fm that includes transcripts, so I can find stuff discussed and not just stuff listed in the show notes.)
Plumbum is “ a small yet feature-rich library for shell script-like programs in Python. The motto of the library is “Never write shell scripts again”, and thus it attempts to mimic the shell syntax (shell combinators) where it makes sense, while keeping it all Pythonic and cross-platform.”
Supports
local commands
piping
redirection
working directory changes in a with block. So cool.
lots more fun features
Michael #2: Our plan for Python 3.13
The big difference is that we have now finished the foundational work that we need:
Low impact monitoring (PEP 669) is implemented.
The bytecode compiler is a much better state.
The interpreter generator is working.
Experiments on the register machine are complete.
We have a viable approach to create a low-overhead maintainable machine code generator, based on copy-and-patch.
We plan three parallelizable pieces of work for 3.13:
The tier 2 optimizer
Enabling subinterpreters from Python code (PEP 554).
Memory management
Details on superblocks
Brian #3: Some blogging myths
Julia Evans
<from Brian: I’m not sure if I’m including this to convince all of you to blog more, or to convince myself. Hopefully both happens.>
myths (more info of each in the blog post):
you need to be original
you need to be an expert
posts need to be 100% correct
writing boring posts is bad
you need to explain every concept
page views matter
more material is always better
everyone should blog
I’d add
Write posts to help yourself remember something.
Write posts to help future prospective employers know what topics you care about.
You know when you find a post that is outdated and now wrong, and the code doesn’t work, but the topic is interesting to you. Go ahead and try to write a better post with code that works.
Michael #4: Jupyter AI
A generative AI extension for JupyterLab
An %%ai magic that turns the Jupyter notebook into a reproducible generative AI playground. This works anywhere the IPython kernel runs (JupyterLab, Jupyter Notebook, Google Colab, VSCode, etc.).
A native chat UI in JupyterLab that enables you to work with generative AI as a conversational assistant.
Support for a wide range of generative model providers and models (AI21, Anthropic, Cohere, Hugging Face, OpenAI, SageMaker, etc.).
Official project from Jupyter
Provides code insights
Debug failing code
Provides a general interface for interaction and experimentation with currently available LLMs
Lets you collaborate with peers and an Al in JupyterLab
Lets you ask questions about local files
Video presentation: David Qiu - Jupyter AI — Bringing Generative AI to Jupyter | PyData Seattle 2023
Extras
Brian:
Textual has some fun releases recently
Textualize youtube channel with 3 tutorials so far
trogon to turn Click based command line apps into TUIs
video example of it working with sqlite-utils.
Python in VSCode June Release includes revamped test discovery and execution.
You have to turn it on though, as the changes are experimental:
"python.experiments.optInto": [
"pythonTestAdapter",
]
I just turned it on, so I haven’t formed an opinion yet.
Michael:
Michael’s take on the MacBook Air 15” (black one)
Joke: Phishing
6/26/2023 • 41 minutes, 47 seconds
#341 Shhh - For Secrets and Shells
Topics covered in this episode:
Pydantic roadmap
The Right Way to Run Shell Commands From Python
US: Yep, We're Buying Your Data, Including Your Embarrassing Secrets
Pro-Tip – pytest fixtures are magic!
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
Test & Code Podcast
Patreon Supporters
Connect with the hosts
Michael: @mkennedy@fosstodon.org
Brian: @brianokken@fosstodon.org
Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Pydantic roadmap
via Mario Munoz
Back in February [Samuel] [announced](https://pydantic.dev/announcement/) Pydantic Inc., but I didn't explain what services we were building.
The problem is that even with Pydantic in your corner, working with data when it leaves Python often still sucks.
We want to build a data platform to make working with data quick, easy, and enjoyable — where developer experience is our north star.
There are five key components to the Pydantic Data Platform that we're thinking of building.
Python Analytics/Observability — a logging and metrics platform with tight Python and Pydantic integration, designed to make the data flowing through your application more readily usable for both engineering and business analytics. More info...
Data Gateway for object stores — Add validation, transformation and cataloguing in front of object stores like S3, with a schema defined in Pydantic models then validated by our Rust service. More info...
Data Gateway for data warehouses — the same service as above, but integrated with your existing data warehouse. More info...
Schema Catalog — for many, Pydantic already holds the highest fidelity representation of their data schemas. Our Schema Catalog will take this to the next level, serving as an organization-wide single source of truth for those schemas, tracking their changes, and integrating with our other tools and your wider platform. More info...
Dashboards and UI powered by Pydantic models — a managed platform to deploy and control dashboards, auxiliary apps and internal tools where everything from UI components (like forms and tables) to database schema would be defined in Python using Pydantic models. More info...
Tell them what you think with their survey
Brian #2: The Right Way to Run Shell Commands From Python
Martin Heinz
Should have a tagline of “especially if you’re on Mac or Linux”.
Includes discussion of
Python native tools - recommended
a few os module functions - but otherwise avoid relying too much on os.
subprocess.run() - stick with run() if you can.
sh third party package - should be second choice if on Linux or Mac
Michael #3: US: Yep, We're Buying Your Data, Including Your Embarrassing Secrets
Digital information can be purchased from commercial data brokers and 'deanonymized' to ID the person it's tied to, including US citizens, the Office of the Director of National Intelligence says.
The Office of the Director of National Intelligence (ODNI) on Friday declassified(Opens in a new window) a report from January 2022 that outlines the US government’s approach to using Commercially Available Information (CAI), which can come from data brokers working in the internet ad and analytics industries.
The purchased information includes details from users' smartphones and social media accounts.
To all the “please disable your ad blockers” companies out there
1) It’s not just about supporting your website
2) Ad blockers are not just avoiding ads.
3) It’s not even necessary (our ads are not blocked on the podcast or the website)
Consider browser != Chrome and/or nextdns.io for your whole network
Brian #4: Pro-Tip – pytest fixtures are magic!
Frank Wiles
“The magic of pytest fixtures is how they are injected into your tests for you to use and their composability. When done well, writing tests is considerably easier and actually fun.”
Setup code is often the biggest headache of test writing. pytest fixtures help solve the setup problem.
Fixtures
are used by just including them in a tests parameter list
can build on top of each other
can be used in any test in the project, if you put it in a central conftest.py
can return all kinds of things: static data, instantiated objects, callables to make other things,
Frank includes an interesting way to organize fixtures such that they are defined in local test directories but usable across a project, under “Organizing Your Fixtures”.
Plugins with fixtures: A shoutout to pytest-django and a Revsys plugin called django-test-plus.
Built-in fixtures. See also tmp_path.
autouse
One bit of incorrect info: autouse doesn’t work like that. The value of global_thing cannot be grabbed unless you list it in the parameter list. It will run before every function (since it’s scope=``"``function``" by default), but you gotta list it to get the value.
To be fair, it’s really hard to come up with good autouse examples. Partly because there are so few good reasons to use autouse.
Extras
Brian:
Porting Python projects to Rust
International Obfuscated Python Code Competition
Michael:
Remember the AMA (submit your question). “Scheduled” on July 11th at 11am.
Joke: Marked as duplicate
6/20/2023 • 35 minutes, 8 seconds
#340 Snorkel not included
Topics covered in this episode:
PythonGUIS
JupyterLab 4.0 is Here
Proposing a struct syntax for Python
Python 3.13 Removes 20 Stdlib Modules
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/340
6/13/2023 • 31 minutes, 9 seconds
#339 Actual Technical People
Topics covered in this episode:
pystack
Securing PyPI accounts via Two-Factor Authentication
Propan - a declarative Python MQ framework
Makefile tricks for Python projects
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/339
6/7/2023 • 30 minutes, 43 seconds
#338 Scripting iOS with Python
Topics covered in this episode:
The Basics of Python Packaging in Early 2023
vecs
Introducing Grasshopper - An Open Source Python Library for Load Testing
memocast
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/338
5/30/2023 • 30 minutes, 20 seconds
#337 Backtracking For a Package
Topics covered in this episode:
Ruff PyCharm plugin
Writing Python like it's Rust
Pip 23.1 Released - Massive improvement to backtracking
Markdown Code Runner
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/337
5/23/2023 • 32 minutes, 18 seconds
#336 We found one of your batteries
Topics covered in this episode:
Python's Missing Batteries: Essential Libraries You're Missing Out On
awesome-polars
Running Headless Selenium in Python (2023)
Gracy
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/336
5/16/2023 • 28 minutes, 28 seconds
#335 Should you get your mojo on?
Topics covered in this episode:
Introducing 'Trusted Publishers’
Mojo: a new programming language for all AI developers.
django-prose
pylyzer is a static code analyzer / language server for Python, written in Rust.
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/335
5/11/2023 • 25 minutes, 37 seconds
#334 Packaging Organizations
Topics covered in this episode:
rye - Python workflow tool
PyPI Organizations
5 tips to learn any new Python library faster
Python gets down to (the) Metal
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/334
5/5/2023 • 32 minutes, 22 seconds
#333 Live From PyCon
Topics covered in this episode:
Introducing Microsoft Security Copilot
PEP 695 – Type Parameter Syntax
Auto-GPT
Astral: Ruff is now a company
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/333
4/22/2023 • 22 minutes, 38 seconds
#332 A Python, a Slurpee, and Some Chaos
Topics covered in this episode:
huak - A Python package manager written in Rust. Inspired by Cargo
PSF expresses concerns about a proposed EU law that may make it impossible to continue providing Python and PyPI to the European public
ChaosToolkit
PEP 711 – PyBI: a standard format for distributing Python Binaries
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/332
4/18/2023 • 36 minutes, 56 seconds
#331 Python From the Future
Topics covered in this episode:
makeapp
Looking forward to Python 3.12
Python 3.11.3 is out
How to Make a Great Conference Talk
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/331
4/12/2023 • 35 minutes, 57 seconds
#330 Your data, validated 5x-50x faster, coming soon
Topics covered in this episode:
Pydantic V2 Pre Release
microdot The impossibly small web framework for Python and MicroPython
GitHub Actions Tools: watchgha, build and inspect, and pytest annotate failures
PEP 709 – Inlined comprehensions
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/330
4/6/2023 • 34 minutes, 25 seconds
#329 Creating very old Python code
Topics covered in this episode:
Prefix-cache
NiceGUI
flask-ngrok
No-async async with Python
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/329
3/30/2023 • 28 minutes, 52 seconds
#328 We are going to need some context here
Topics covered in this episode:
zipapp
Reverse engineering the Apple News app with #python and #nerd power
What is a context manager?
nox-poetry: Use Poetry inside Nox sessions
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/328
3/21/2023 • 24 minutes, 48 seconds
#327 Untangling XML with Pydantic
Topics covered in this episode:
pydantic-xml extension
How virtual environments work
DbDeclare
Testing multiple Python versions with nox and pyenv
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/327
3/13/2023 • 31 minutes, 37 seconds
#326 Let's Go for a PyGWalk
Topics covered in this episode:
Data Classification: Does Python still have a need for class without @dataclass?
PyGWalker
An opinionated Python boilerplate
Front Matter VS Code
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/326
3/8/2023 • 33 minutes, 26 seconds
#325 It's called a merge conflict
Topics covered in this episode:
Python Parquet and Arrow: Using PyArrow With Pandas
FastAPI-Filter
12 Python Decorators to Take Your Code to the Next Level
PyHamcrest
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/325
2/28/2023 • 39 minutes, 32 seconds
#324 JSON in My DB?
Topics covered in this episode:
Use TOML for .env files?
Pydantic gets serious funding
f-strings with pandas and Jupyter keyboard shortcuts
BioGPT
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/324
2/21/2023 • 44 minutes, 53 seconds
#323 AI search wars have begun
Topics covered in this episode:
camply
hatch-fancy-pypi-readme
EU hates open source?
So, Single (‘) or Double (“) Quotes in Python?
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/323
2/14/2023 • 50 minutes, 5 seconds
#322 Python Packages, Let Me Count The Ways
Topics covered in this episode:
Packaging Python Projects
untangle xml
Thoughts on the Python packaging ecosystem
Top PyPI Packages
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/322
2/7/2023 • 46 minutes, 40 seconds
#321 A Memorial To Apps Past
Topics covered in this episode:
git-sim
Why I Like Nox
I scanned every package on PyPi and found 57 live AWS keys
Getting Started With Property-Based Testing in Python With Hypothesis and pytest
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/321
1/30/2023 • 36 minutes, 30 seconds
#320 The Bug Is In The JavaScript
Topics covered in this episode:
markdown-it-py
Sketch
Fixing Circular Imports in Python with Protocol
unrepl
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/320
1/24/2023 • 28 minutes, 26 seconds
#319 CSS-Style Queries for... JSON?
Topics covered in this episode:
Secure maintainer workflow
Tools for parsing HTML and JSON
git-sizer
Dataclasses without type annotations
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/319
1/18/2023 • 32 minutes, 44 seconds
#318 GIL, How We Will Miss You
Topics covered in this episode:
PEP 703 - Making the GIL Optional in CPython
FerretDB
Four tips for structuring your research group’s Python packages
Quibbler
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/318
1/10/2023 • 39 minutes, 38 seconds
#317 Most loved and most dreaded dev tools of 2022
Topics covered in this episode:
StackOverflow 2022 Developer Survey
PePy.tech - PyPI download stats with package version breakdown
Codon Python Compiler
8 Levels of Using Type Hints in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/317
1/3/2023 • 48 minutes, 31 seconds
#316 Python 3.11 is here and it's fast (crossover)
See the full show notes for this episode on the website at pythonbytes.fm/316
12/30/2022 • 1 hour, 4 minutes, 12 seconds
#315 Some Stickers!
Topics covered in this episode:
Jupyter Server 2.0 is released!
Converting to pyproject.toml
aws-lambda-powertools-python
How to create a self updating GitHub Readme
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/315
12/20/2022 • 29 minutes, 56 seconds
#314 What are you, a wise guy? Sort it out!
Topics covered in this episode:
FAQtory
Kagi search "live with it” report
Tools for rewriting Python code
Socketify
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/314
12/13/2022 • 37 minutes, 24 seconds
#313 Programming Robots With a Marker
Topics covered in this episode:
How do you say that number?
The Origins of Python
setproctitle
Looking forward to Python 3.12
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/313
12/6/2022 • 46 minutes
#312 AI Goes on Trial For Writing Code
Topics covered in this episode:
Coping strategies for the serial project hoarder
GitHub copilot lawsuit
Use Windows Dialog Boxes from Python with no extra libraries
Extra Extra Extra
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/312
11/29/2022 • 35 minutes, 26 seconds
#311 Catching Memory Leaks with ... pytest?
Topics covered in this episode:
Latexify
prefixed
dbt
Memray pytest plugin
Stealing Open Source code from Textual
Shed
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/311
11/24/2022 • 49 minutes, 50 seconds
#310 Calling All Tools for Readmes
Topics covered in this episode:
Tips for clean code in Python
Mastodon is picking up speed
Some FastAPI news, and some great READMEs.
Closevember
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/310
11/15/2022 • 53 minutes, 44 seconds
#309 When Malware PoC's are Themselves Malware
Topics covered in this episode:
Malicious proof-of-concepts are exposing GitHub users to malware and more
The great Mastodon experiment
Gitpod and the traveling dev
Color in the terminal
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/309
11/9/2022 • 35 minutes, 1 second
#308 Conference season is heating up
Topics covered in this episode:
It’s PyCon US 2023 CFP time
Any.io
How to propose a winning conference talk
Sanic release adds background workers
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/308
11/1/2022 • 34 minutes, 37 seconds
#307 Your Python just got faster (3.11 is out!)
Topics covered in this episode:
Python 3.11 is released
Installing Python 3.11 on Mac or Windows
Bossie 2022 Awards
Textual 0.2.0
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/307
10/26/2022 • 44 minutes, 54 seconds
#306 Some Fun pytesting Tools
Topics covered in this episode:
Awesome pytest speedup
Strive to travel without a laptop
Some fun tools from the previous testing article
Refurb
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/306
10/19/2022 • 46 minutes, 22 seconds
#305 Decorators need love too
Topics covered in this episode:
Pyscript 2022.09.1 is out
Decorator shortcuts
Panel (of Holoviz) on Pyscript
auto-walrus
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/305
10/13/2022 • 32 minutes, 58 seconds
#304 Build your own text adventure language in Python
Topics covered in this episode:
Ten tasty ingredients for a delicious pull request
textX
Reasoning about asyncio.Semaphore
Turnstile
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/304
10/5/2022 • 38 minutes, 24 seconds
#303 This title is required or is it optional?
Topics covered in this episode:
Human regular expressions revisited
Implicit Optional Types Will Be Disabled by Default
cython-lint
difftastic - structural diff
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/303
9/29/2022 • 37 minutes, 56 seconds
#302 The Blue Shirt Episode
Topics covered in this episode:
Can Amazon’s CodeWhisperer write better Python than you?
Related and worth listening to: * Stable Diffusion breaks the internet w/ Simon Willison*
Apache Superset
Recipes from Python SQLite docs
-ffast-math and indirect changes
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/302
9/20/2022 • 33 minutes, 2 seconds
#301 PyTorch Grows Up and Moves Out
Topics covered in this episode:
PythonAnywhere: Our Commitment to Providing Free Accounts
ruff: An extremely fast Python linter, written in Rust.
Meta spins off PyTorch Foundation to make AI framework vendor neutral
Two string resources
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/301
9/15/2022 • 31 minutes, 10 seconds
#300 A Jupyter merge driver for git
Topics covered in this episode:
Test your packages and wheels
The Jupyter+git problem is now solved
Help us test system trust stores in Python
Making plots in your terminal with plotext
jinja2-fragments
SLSA 3 Generic Builder for GitHub Actions GA
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/300
9/6/2022 • 55 minutes, 21 seconds
#299 Will McGugan drops by
Topics covered in this episode:
Careful with that PyPI email
IEEE Top Programming Languages 2022: Python’s still No. 1, but employers love to see SQL skills
Django 4.1
You Should Be Using Python's Walrus Operator - Here’s Why
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/299
9/3/2022 • 46 minutes, 7 seconds
#298 "Unstoppable" Python
Topics covered in this episode:
Uncommon Uses of Python in Commonly Used Libraries
Skyplane Cloud Transfers
7 things I've learned building a modern TUI framework
‘Unstoppable’ Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/298
8/24/2022 • 32 minutes, 22 seconds
#297 I AM the documentation
Topics covered in this episode:
SQLCodeGen
The death of setup.py*, long live pyproject.toml
aiocache
Hatch: a modern, extensible Python project manager
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/297
8/16/2022 • 22 minutes, 36 seconds
#296 pip: Constrain your excitement
Topics covered in this episode:
Pip constraints files
async-cache
Organize Python code like a PRO
keyring
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/296
8/9/2022 • 32 minutes, 31 seconds
#295 Flutter + Python GUI Apps?
Topics covered in this episode:
Faster routing for Flask & Quart
Quarto: an open-source scientific and technical publishing system built on Pandoc
Flet UI
Building an authenticated Python CLI
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/295
8/4/2022 • 36 minutes, 16 seconds
#294 Specializing Adaptive Interpreters in Full Color
Topics covered in this episode:
Specialist: Python 3.11 perf highlighter
tomli “A lil’ TOML parser”
Pydantic V2 Plan
pikepdf
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/294
7/26/2022 • 35 minutes, 26 seconds
#293 And if I pull this open source Jenga block...
Topics covered in this episode:
PSF security key giveaway for critical package maintainers
PyLeft-Pad
FastAPI Filter
AutoRegEx
Anaconda Acquires PythonAnywhere
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/293
7/20/2022 • 47 minutes, 34 seconds
#292 Thursday, it's always a Thursday
Topics covered in this episode:
rich-codex
Pydastic
3 Things to Know Before Building with PyScript
disnake
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/292
7/11/2022 • 28 minutes, 36 seconds
#291 Wait, you have how many licenses?!?
Topics covered in this episode:
Python License tracker
undataclass
Qutebrowser
asyncio and web applications
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/291
7/6/2022 • 32 minutes, 27 seconds
#290 Sentient AI? If so, then what?
Topics covered in this episode:
picologging
CheekyKeys
richbench
typeguard
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/290
6/28/2022 • 49 minutes, 34 seconds
#289 Textinator is coming for your text, wherever it is
Topics covered in this episode:
beanita
The Good Research Code Handbook
Textinator
Handling Concurrency Without Locks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/289
6/21/2022 • 46 minutes, 14 seconds
#288 Performance benchmarks for Python 3.11 are amazing
Topics covered in this episode:
Polars: Lightning-fast DataFrame library for Rust and Python
PSF Survey is out
Gin Config: a lightweight configuration framework for Python
Performance benchmarks for Python 3.11 are amazing
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/288
6/14/2022 • 33 minutes, 5 seconds
#287 Surprising ways to use Jupyter Notebooks
Topics covered in this episode:
auto-py-to-exe
8 surprising ways how to use Jupyter Notebook
piptrends
Is it a class or a function? It's a callable!
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/287
6/7/2022 • 27 minutes, 22 seconds
#286 Unreasonable f-strings
Topics covered in this episode:
The Python GIL: Past, Present, and Future
Announcing the PyOxy Python Runner
The unreasonable effectiveness of f-strings and re.VERBOSE
PyCharm PR Management
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/286
6/3/2022 • 26 minutes, 22 seconds
#285 Where we talk about UIs and Python
Topics covered in this episode:
libgravatar
JSON to Pydantic Converter
PEP 690 – Lazy Imports
Two small items
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/285
5/25/2022 • 50 minutes, 54 seconds
#284 Spicy git for Engineers
Topics covered in this episode:
distinctipy
Soda SQL
Python in Nature
Supercharging GitHub Actions with Job Summaries
Language Summit is write up out
AllSpice is Git for EEs
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/284
5/18/2022 • 41 minutes, 12 seconds
#283 The sports episode
Topics covered in this episode:
Pathy: a Path interface for local and cloud bucket storage
Robyn
Termshot
When Python can’t thread: a deep-dive into the GIL’s impact
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/283
5/12/2022 • 32 minutes, 58 seconds
#282 Don't Embarrass Me in Front of The Wizards
Topics covered in this episode:
pyscript
Memray from Bloomberg
pytest-parallel
Pooch: A friend for data files
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/282
Topics covered in this episode:
Take Your Github Repository To The Next Level 🚀️
Fastero
Watchfiles
Slipcover: Near Zero-Overhead Python Code Coverage
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/281
4/28/2022 • 46 minutes, 34 seconds
#280 Easy terminal scripts by sourcing your Py
Topics covered in this episode:
BTW, don’t make a public repo private
The counter-intuitive rise of Python in scientific computing
Dashboards in Python
sourcepy
Xonsh
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/280
4/21/2022 • 37 minutes, 36 seconds
#279 Autocorrect and other Git Tricks
Topics covered in this episode:
OpenBB wants to be an open source challenger to Bloomberg Terminal
Python f-strings
JSON Web Tokens @ jwt.io
Autocorrect and other Git Tricks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/279
4/15/2022 • 41 minutes, 52 seconds
#278 Multi-tenant Python applications
Topics covered in this episode:
dunk - a prettier git diff
Is your Python code vulnerable to log injection?
Building multi tenant applications with Django
Should you pre-allocate lists in Python?
mockaroo and tonic
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/278
4/8/2022 • 33 minutes, 34 seconds
#277 It's a Python package showdown!
Topics covered in this episode:
March Package Madness
nbpreview
strenum
Code Review Guidelines for Data Science Teams
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/277
4/2/2022 • 45 minutes, 1 second
#276 Tracking cyber intruders with Jupyter and Python
Topics covered in this episode:
gensim.parsing.preprocessing
DevDocs
The Right Way To Compare Floats in Python
Pypyr
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/276
3/23/2022 • 45 minutes, 4 seconds
#275 Airspeed velocity of an unladen astropy
Topics covered in this episode:
Async and await with subprocesses
Typesplainer
ASV
perflint
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/275
3/16/2022 • 42 minutes, 43 seconds
#274 12 Questions You Should Be Asking of Your Dependencies
Topics covered in this episode:
The Adam Test: 12 Questions for New Dependencies
Validate emails with email-validator
The Python on Microcontrollers Newsletter
Git Organized: A Better Git Flow
CPython issues moving to GitHub soon
* MicroPython, CircuitPython and GitHub*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/274
3/9/2022 • 39 minutes, 54 seconds
#273 Getting dirty with __eq__(self, other)
Topics covered in this episode:
Physics Breakthrough as AI Successfully Controls Plasma in Nuclear Fusion Experiment
PEP 680 -- tomllib: Support for Parsing TOML in the Standard Library
What is a generator function?
dirty-equals
Commitizen
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/273
3/4/2022 • 37 minutes, 5 seconds
#272 The tools episode
Topics covered in this episode:
Why your mock still doesn’t work
pls
Kitty
Futures and easy parallelisation
pgMustard
bpytop
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/272
2/24/2022 • 48 minutes, 9 seconds
#271 CPython: Async Task Groups in Python 3.11
Topics covered in this episode:
fastapi-events
Ways I Use Testing as a Data Scientist
py-overload
Next-generation seaborn interface
Compile CPython to Web Assembly
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/271
2/16/2022 • 57 minutes, 21 seconds
#270 Can errors really be beautiful?
Topics covered in this episode:
A Better Pygame Mainloop
awesome sqlalchemy
ThreadPoolExecutor in Python: The Complete Guide
Chaining comparison operators
Create Beautiful Tracebacks with Python’s Exception Hooks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/270
2/10/2022 • 47 minutes, 25 seconds
#269 Get Rich and replace your cat
Topics covered in this episode:
rich-cli
Documentation unit tests
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/269
2/3/2022 • 40 minutes, 35 seconds
#268 Wait, you can Google that?
Topics covered in this episode:
(draft) PEP 679 -- Allow parentheses in assert statements
Everything I googled as a dev
PyCascades 2022!
Strict Python function parameters
mureq - vendored requests
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/268
1/27/2022 • 45 minutes, 9 seconds
#267 Python on the beach
Topics covered in this episode:
Box: Python dictionaries with advanced dot notation access
Reading tracebacks in Python
Raspberry Pi: These two new devices just went live on the International Space Station
Make Simple Mocks With SimpleNamespace
* Extra, extra, exta*
3 Things You Might Not Know About Numbers in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/267
1/21/2022 • 32 minutes, 50 seconds
#266 Python has a glossary?
Topics covered in this episode:
Python glossary and FAQ
Any.io
Vaex : a high performance Python library for lazy Out-of-Core DataFrames
Django Community Survey Results
* Extra, Extra, Extra, Extra:*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/266
1/13/2022 • 26 minutes, 46 seconds
#265 Get asizeof pympler and muppy
Topics covered in this episode:
* Survey results*
Modern attrs API
Yamele - A schema and validator for YAML
pympler
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/265
1/5/2022 • 47 minutes, 46 seconds
#264 We're just playing games with Jupyter at this point
Topics covered in this episode:
Jupyter Games
Canary Tokens
A reverse chronology of some Python features
Hyperactive GCs and ORMs/ODMs
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/264
12/22/2021 • 53 minutes, 2 seconds
#263 It’s time to stop using Python 3.6
Topics covered in this episode:
Django 4.0 released
python-minifier
It’s time to stop using Python 3.6
How to Visualize the Formula 1 Championship in Python
nbdime: Jupyter Notebook Diff and Merge tools
Using AI to analyse and recommend software stacks for Python apps
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/263
12/15/2021 • 50 minutes, 7 seconds
#262 So many bots up in your documentation
Topics covered in this episode:
pytest 7.0.0rc1
PandasTutor
* Apache Airflow*
textwrap.dedent
pip-audit
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/262
12/9/2021 • 43 minutes, 6 seconds
#261 Please re-enable spacebar heating
Topics covered in this episode:
rClone
check-wheel-contents
xarray
JetBrains Remote Development
The XY Problem
kerchunk - Making data access fast and invisible
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/261
12/3/2021 • 42 minutes, 21 seconds
#260 It's brutally simple: made just from pickle and zip
Topics covered in this episode:
Using cog to update --help in a Markdown README file
An oral history of Bank Python
C Pyxel
How to Ditch Codecov for Python Projects
tiptop (like glances)
pyc64
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/260
11/23/2021 • 48 minutes, 49 seconds
#259 That argument is a little late-bound
Topics covered in this episode:
pypi-changes
Late-bound argument defaults for Python
pandas.read_sql
pyjion
Tips for debugging with print()
SHAP (and beeswarm plot)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/259
11/17/2021 • 47 minutes, 24 seconds
#258 Python built us an anime dog!
Topics covered in this episode:
stale: github bot to “Close Stale Issues and PRs”
jut - JUpyter notebook Terminal viewer
JupyterLyte
Feature comparison of ack, ag, git-grep, GNU grep and ripgrep
Python Client for Airtable: pyairtable
Black can now format notebooks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/258
Topics covered in this episode:
Django 4.0 beta 1 released
* py - The Python launcher*
Model bakery
Coverage goals, goals.py
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/257
11/4/2021 • 40 minutes, 25 seconds
#256 And the best open source project prize goes to ...
Topics covered in this episode:
* It’s episode 2^8 (nearly 5 years of podcasting)*
Where does all the effort go?: Looking at Python core developer activity
Why you shouldn't invoke setup.py directly
By Paul Ganssle (from Talk Unlock the mysteries of time, Python's datetime that is!)
OpenTelemetry is going stable soon
Understanding all of Python, through its builtins
FastAPI, Dask, and more Python goodies win best open source titles
Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/256
10/29/2021 • 59 minutes, 36 seconds
#255 Closember eve, the cure for Hacktoberfest?
Topics covered in this episode:
Wrapping C++ with Cython
tbump : bump software releases
Closember by Matthias Bussonnier
scikit learn goes 1.0
Using devpi as an offline PyPI cache
PyPi command line
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/255
10/20/2021 • 46 minutes, 49 seconds
#254 Do Excel things, get notebook Python code with Mito
Topics covered in this episode:
yaml, GH Actions, and Python 3.10
Beating C and Java, Python Becomes the #1 Most Popular Programming Language, Says TIOBE
Newspaper3k: Article scraping & curation
PEP 660, pip 21.3, flit 3.4 -> easy editable installs
Mito - a JupterLab Extension - generates Python code while you work on your analysis
troposphere
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/254
10/13/2021 • 31 minutes, 2 seconds
#253 A new Python for you, and for everyone!
Topics covered in this episode:
awesome-htmx
Python 3.10 is here !!!!
Prospector (almost) All Python analysis tools together
Rich Pandas DataFrames
Union types, baby!
Make your code darker - Improving Python code incrementally
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/253
10/7/2021 • 44 minutes, 57 seconds
#252 Jupyter is now a desktop app!
Topics covered in this episode:
* Changing themes to DIY*
SQLFluff
JupyterLab Desktop
Requests Cache
pypi-rename
Django 4 coming with Redis Adapter
PEP 612
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/252
9/29/2021 • 44 minutes, 25 seconds
#251 A 95% complete episode (wait for it)
Topics covered in this episode:
auto-optional
Making World-Class Docs Takes Effort
Starship
JMESPath
pedalboard - audio effects library
PEP 665 (and the journey so far)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/251
9/22/2021 • 55 minutes, 33 seconds
#250 skorch your scikit-learn together with PyTorch
Topics covered in this episode:
Exciting New Ways To Be Told That Your Python Code is Bad
GitHub Readme Stats
Nox
Two tools for dealing with text
MPIRE (MultiProcessing Is Really Easy)
skorch
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/250
9/15/2021 • 41 minutes, 52 seconds
#249 All of Linux as a Python API
Topics covered in this episode:
Fickling
Python Project-Local Virtualenv Management
Testcontainers
jc
What is Python's Ellipsis Object?
PyTorch Forecasting
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/249
9/9/2021 • 37 minutes, 12 seconds
#248 while True: stand up, sit down
Topics covered in this episode:
Why I use attrs instead of pydantic
mclfy
* Textual and* boilerplate removal
xdoctest
Automate the standing desk with python
Hypermodern Python Cookiecutter
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/248
9/2/2021 • 52 minutes, 9 seconds
#247 Do you dare to press "."?
Topics covered in this episode:
Keep your computer awake during long processing
How to write a great Stack Overflow question
Github.dev - press ‘.’ to edit code in any GitHub repo
Log analyzer (minus google analytics)
KMK: Clackety Keyboards Powered by Python
SQLModel - use the same models for SQL and FastAPI
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/247
8/26/2021 • 46 minutes, 12 seconds
#246 Love your crashes, use Rich to beautify tracebacks
Topics covered in this episode:
mktestdocs
Redis powered queues (QR3)
25 Pandas Functions You Didn’t Know Existed
FastAPI and Rich Tracebacks in Development
Dev in Residence
Dagster
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/246
8/11/2021 • 46 minutes, 19 seconds
#245 Fire up your Python time machine (and test some code)
Topics covered in this episode:
State of the community (via Jet Brains)
Cornell - record & replay mock server
pyinstrument
Python 3.10 is now in Release Candidate phase. RC1 just released.
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/245
8/4/2021 • 41 minutes, 56 seconds
#244 vendorizing your Python podcast
Topics covered in this episode:
pip Environmental Variables
* Extra, Extra, 6x Extra, hear all about it*
Building and testing Python with GitHub Actions
python-vendorize
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/244
7/30/2021 • 34 minutes, 43 seconds
#243 Django unicorns and multi-region PostgreSQL
Topics covered in this episode:
MongoDB 5
Python 3.11: Enhanced error locations in tracebacks
fly.io multi-region PostgreSQL and last mile Redis
django-unicorn
Blue: The somewhat less uncompromising code formatter than black
Organize and Index Your Screenshots (OCR) on macOS
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/243
7/21/2021 • 42 minutes, 19 seconds
#242 from lib import * but less
Topics covered in this episode:
just
Strong Typing
testbook
auto-all
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/242
7/15/2021 • 39 minutes, 18 seconds
#241 f-yes we want some f-string tricks!
Topics covered in this episode:
Autosync all branches of a fork
Measuring memory usage in Python: it’s tricky!
Python f-strings can do more than you thought. f'{val=}', f'{val!r}', f'{dt:%Y-%m-%d}'
10 Tips and Tools You Can Adopt in 15 minutes or Less To Level Up Your Dev Productivity
How to Start a Production-Ready Django Project
Bunch
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/241
7/7/2021 • 39 minutes, 53 seconds
#240 This is GitHub, your pilot speaking...
Topics covered in this episode:
Subclassing in Python Redux
* Extra, Extra, Extra7, Hear all about it!**
klib
Don’t forget about functools
GitHub Copilot
Kats
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/240
7/2/2021 • 51 minutes, 58 seconds
#239 No module named pythonbytes
Topics covered in this episode:
ormar: an async mini ORM for Python, with support for Postgres, MySQL, and SQLite.
No module named
JupyterLite
Lot of plots
Monty, Mongo tinified. MongoDB implemented in Python
Exhaustiveness Checking with Mypy
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/239
6/23/2021 • 43 minutes, 9 seconds
#238 A cloud-based file system for Python and a new GUI!
Topics covered in this episode:
Practical SQL for Data Analysis
Git Blame in your Python Tracebacks
fsspec: a unified file system library
The need for slimmer containers
PandasGUI: A GUI for analyzing Pandas DataFrames
xarray: pandas-like API for labeled N-dimensional data
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/238
6/15/2021 • 47 minutes, 7 seconds
#237 Separate your SQL and Python, asynchronously with aiosql
Topics covered in this episode:
Textual
Pinning application dependencies with pip-tools compile
Pynguin
Python Advisory DB
Function Overloading with singledispatch and multipledispatch
Aiosql
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/237
6/9/2021 • 39 minutes, 41 seconds
#236 Fuzzy wuzzy wazzy fuzzy was faster
Topics covered in this episode:
Using accessible colors, monolens & CMasher
rapidfuzz: Rapid fuzzy string matching in Python and C++
Structlog to improve your logs
xfail now works with pytest-subtests
BaseSettings in Pydantic
Take care of the documentation on your team will thank you later
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/236
6/2/2021 • 37 minutes, 24 seconds
#235 Flask 2.0 Articles and Reactions
Topics covered in this episode:
Flask 2.0 articles and reactions
Python 3.11 will be 2x faster?
3 Tools to Track and Visualize the Execution of your Python Code
DuckDB + Pandas
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/235
5/26/2021 • 46 minutes, 5 seconds
#234 The Astronomy-filled edition with Dr. Becky
Topics covered in this episode:
Powering the Python Package Index in 2021
The Leuven Star Atlas
TI-84 Plus CE Python graphing calculator
Python Package CI/CD with GitHub Actions
SpaceX is using Python for prototyping their Starlink satellite software
: A beginner’s guide to working with astronomical data
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/234
5/19/2021 • 49 minutes, 36 seconds
#233 RaaS: Readme as a Service
Topics covered in this episode:
readme.so
Wafer-scale Python
datefinder and dateutil
Cinder - Instagram's performance oriented fork of CPython
PyCon US 2021
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/233
5/12/2021 • 50 minutes, 58 seconds
#232 PyPI in a box and a revolutionary keyboard
Topics covered in this episode:
Sphinx Themes Gallery update
Mongita - Like SQLite but for MongoDB
World Plone Day 2021 - Over 50 Videos from 16 Countries
The social contract of open source: view every commit as a gift
PyPI in a box
Film simulations from scratch using Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/232
5/5/2021 • 38 minutes, 16 seconds
#231 Go Python, Go!
Topics covered in this episode:
For-Else: A Weird but Useful Feature in Python
Tortoise ORM
Faster Python with Go Shared objects
Learn by reading code: Python standard library design decisions explained (for advanced beginners)
Gradio: Create UIs for prototyping your machine learning model in 3 minutes
Use basketball stats to optimize game play with Visual Studio Code
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/231
4/28/2021 • 44 minutes, 13 seconds
#230 PyMars? Yes! FLoC? No!
Topics covered in this episode:
calmcode.io
Natural sort (aka natsort)
Python controlling a helicopter on Mars.
Pydantic, FastAPI, Typer will all run on 3.10, 3.11, and into the future
* Extra, Extra, Extra, Extra hear all about it*
Build Python books with Jupyter-Book
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/230
4/21/2021 • 45 minutes, 30 seconds
#229 Has one of your dependencies died?
Topics covered in this episode:
Coverage.py (5.6b1) and third-party code
So you want your own PaaS? Piku!
Web3.py
Deadpendency
All The Important Features and Changes in Python 3.10
freeCodeCamp’s Python Curriculum
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/229
4/15/2021 • 42 minutes, 55 seconds
#228 Supreme Court decides API copyright battle
Topics covered in this episode:
How to make an awesome Python package in 2021
Kubestriker
wasmtime
Depend-a-lot-bot
Supreme Court sides with Google in API copyright battle with Oracle
RedisAI
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/228
4/7/2021 • 43 minutes, 34 seconds
#227 No more awaiting, async comes to SQLAlchemy
Topics covered in this episode:
Number One, that's "retract plank," not "remove plank."
SQLAlchemy 1.4.0 Released
django-tenants
pre-commit ci
Snyk (Python) Package Advisor
PyWebIO
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/227
3/31/2021 • 33 minutes, 8 seconds
#226 Teaching Python podcast on the podcast!
Topics covered in this episode:
DataClass vs NamedTuple vs Object: A Battle of Performance in Python
Can My Water Cooled Raspberry Pi Cluster Beat My MacBook?
There is an app for that!
New packaging security funding & NYU
* Extra x8, hear all about it*
Using Development Containers with VS Code for Students
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/226
3/25/2021 • 46 minutes, 3 seconds
#225 SELECT Pydantic FROM MongoDB
Topics covered in this episode:
Raspberry Pi Pico
New MongoDB ODM: Beanie
Sourcery
Neomodel
Conference radar
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/225
3/17/2021 • 39 minutes, 18 seconds
#224 Join us on a Python adventure back to 1977
Topics covered in this episode:
AWSimple
coverage and installed packages
Finding Mona Lisa in the Game of Life with JAX
Python Package Index nukes 3,653 malicious libraries uploaded soon after security shortcoming highlighted
python-adventure
Exciting New Features in Django 3.2
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/224
3/10/2021 • 37 minutes, 58 seconds
#223 Beware: A ninja is shadowing Sebastian from FastAPI
Topics covered in this episode:
Python Developers Survey 2020 Results
Django Ninja - Fast Django REST Framework
Pydantic 1.8
Google, Microsoft back Python and Rust programming languages
Semantic Versioning Will Not Save You
OpenAPI 3.1.0
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/223
3/3/2021 • 50 minutes, 48 seconds
#222 Autocomplete with type annotations for AWS and boto3
Topics covered in this episode:
boto type annotations
How to have your code reviewer appreciate you
REPODASH - Quality Metrics for Github repositories
* Extra, extra, extra, extra, hear all about it*
testcontainers-python
The Python Ecosystem is relentlessly improving price-performance every day
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/222
2/24/2021 • 38 minutes, 21 seconds
#221 Pattern matching and accepting change in Python with Brett Cannon
Topics covered in this episode:
Keeping up with Rich
12 requests per second
Python Launcher for Unix reaches RC (probably 😉)
Build a text editor with Python and curses
Pattern matching and accepting change in Python
A Quick Intro to Structural Pattern Matching in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/221
2/19/2021 • 59 minutes, 5 seconds
#220 What, why, and where of friendly errors in Python
Topics covered in this episode:
We Downloaded 10,000,000 Jupyter Notebooks From Github – This Is What We Learned
pytest-pythonpath
Thinking in Pandas
Quickle
what(), why(), where(), explain(), more() from friendly-traceback console
Bandit
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/220
2/11/2021 • 47 minutes, 27 seconds
#219 HTMX: Dynamic and live HTML without JavaScript
Topics covered in this episode:
Do you really need a virtualenv?
Copier - like cookiecutter
* Pandarallel - run pandas apply in parallel!*
Stop Using Print to Debug in Python. Use icecream Instead
HTMX: Dynamic and live HTML without JavaScript
* PyLDAvis - Interactive Topic Model Visualisation*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/219
2/3/2021 • 39 minutes, 12 seconds
#218 Keyboards for developers, Python, and some history
Topics covered in this episode:
Constant Folding in Python
Update All Packages With pip-review
Quantum Mechanical Keyboard Firmware
Reinventing the Python Logo
Private PyPI with Serverless Computing
Beyond the Basic Stuff w/Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/218
1/27/2021 • 43 minutes, 34 seconds
#217 Use your cloud SSD for fast, cross-process caching
Topics covered in this episode:
diskcache
TOML is 1.0.0 now.
* pyqtgraph*
Parler + Python = Insurrection in public
Best-of Web Development with Python
* Assorted*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/217
1/19/2021 • 38 minutes, 38 seconds
#216 Container: Sort thyself!
Topics covered in this episode:
pip search. Just don’t.
QPython - Scripting for Android with Python
Thesis: Deep Learning assistant for designers/engineers
sortedcontainers
Łukasz Langa Typed Twitter Thread
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/216
1/13/2021 • 35 minutes, 33 seconds
#215 A Visual Introduction to NumPy
Topics covered in this episode:
5 ways I use code as an astrophysicist
A Visual Intro to NumPy and Data Representation
Qt 6 release (including PySide2)
Is your GC hyper active? Tame it!
Top 10 Python libraries of 2020
Adoption of pyproject.toml — why is this so darned controversial?
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/215
1/6/2021 • 43 minutes, 25 seconds
#214 Python year in review (2020 edition)
See the full show notes for this episode on the website at pythonbytes.fm/214
12/28/2020 • 1 hour, 10 minutes, 28 seconds
#213 Uh oh, Vulcans have infiltrated Flask
Topics covered in this episode:
Django Ledger Project
Flask-Meld: simple JavaScript interactive features without all of the JavaScript.
Bitwise operators in Python (RealPython)
Why should you use an ORM (Object Relational Mapper)?
sqlite-utils: a Python library and CLI tool for building SQLite databases
Online conferences are not working for me. But this was a good talk,
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/213
12/23/2020 • 45 minutes
#212 SQLite as a file format (like docx)
Topics covered in this episode:
pytest 6.2 is out
SQLite as a file format (like docx)
A Day in Code: Python – A picture book written in code
PythonLabs is now hosted by Azure. and “Yes, Barry, there is a PythonLabs”
* Extra, extra, extra, extra, extra, extra, hear all about it*
OpenMV
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/212
12/16/2020 • 36 minutes, 16 seconds
#211 Will a black hole devour this episode?
Topics covered in this episode:
Introducing FARM Stack - FastAPI, React, and MongoDB
py-applescript
airspeed velocity
visidata
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/211
12/7/2020 • 44 minutes, 32 seconds
#210 Analyzing Kickstarter Campaigns with Python
Topics covered in this episode:
Analyzing Kickstarter Campaigns with Python Data Science Tools
GPU Accelerated Python for Machine Learning on Cross-Vendor Graphics Cards
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/210
12/3/2020 • 31 minutes, 8 seconds
#209 JITing Python with .NET, no irons in sight
Topics covered in this episode:
Running Python on .NET 5
PEP 621 -- Storing project metadata in pyproject.toml
GitHub revamps copyright takedown policy after restoring YouTube-dl
Install & Configure MongoDB on the Raspberry Pi
* Extra! extra! extra!, hear all about it!*
A Python driven AI Stylist Inspired by Social Media
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/209
11/27/2020 • 33 minutes, 13 seconds
#208 Dependencies out of control? Just pip chill.
Topics covered in this episode:
pip-chill - Make requirements with only the packages you need
Windows update broke NumPy
Build Plugins with Pluggy
LINQ in Python
Klio: a framework for processing audio files or any binary files, at large scale
Collapsing code cells in Jupyter Notebooks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/208
11/19/2020 • 30 minutes, 6 seconds
#207 FastAPI as a web platform (not just APIs)
Topics covered in this episode:
fastapi-chameleon (and fastapi-jinja)
Django REST API in a single file, without using DRF
2020 StackOverflow survey results
A Visual Guide to Regular Expression
Taking credit
Raspberry Pi 400
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/207
11/13/2020 • 33 minutes, 27 seconds
#206 Python dropping old operating systems is normal!
Topics covered in this episode:
Making Enums (as always, arguably) more Pythonic
Python 3.10 will be up to 10% faster
Python 3.9 and no more Windows 7
Writing Robust Bash Shell Scripts
Ideas for 5x faster CPython
CPython core developer sprints
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/206
11/8/2020 • 42 minutes, 56 seconds
#205 This is going to be a little bit awkward
Topics covered in this episode:
Awkward arrays
Ordered dict surprises
jupyter lab autocomplete and more
Open Source Tools & Data for Music Source Separation
Pass by Reference in Python: Background and Best Practices
Visualizing Git Concepts
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/205
10/31/2020 • 34 minutes, 18 seconds
#204 Take the PSF survey and Will & Carlton drop by
Topics covered in this episode:
nbQA: Quality Assurance for Jupyter Notebooks
The PSF yearly survey is out, go take it now!
From Prototype to Production in Django
Deployment: Getting your app online
All Contributors
MovingPandas
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/204
10/23/2020 • 40 minutes, 2 seconds
#203 Scripting a masterpiece for Python web automation
Topics covered in this episode:
Introducing DigitalOcean App Platform
Announcing Playwright for Python
Asynchronously Opening and Closing Files in asyncio
Excel: Why using Microsoft's tool caused Covid-19 results to be lost
locust.io
Fixing Hacktoberfest
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/203
10/16/2020 • 40 minutes, 45 seconds
#202 Jupyter is back in black!
Topics covered in this episode:
New in Python 3.9
jupyter-black
Understanding and preventing DoS in web applications
bbox-visualizer
How to NEVER use lambdas.
Uncommon Contributions: Making impact without touching the core of a library
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/202
10/9/2020 • 33 minutes, 24 seconds
#201 Understand git by rebuilding it in Python
Topics covered in this episode:
Under the hood of calling C/C++ from Python
* ugit: DIY Git in Python*
Things I Learned to Become a Senior Software Engineer
Profiling Django Views
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/201
10/2/2020 • 40 minutes, 26 seconds
#200 No dog-piling please (it's episode 200!)
Topics covered in this episode:
How to be helpful online
* blackcellmagic*
Test smarter, not harder
US: The Greatest Package in the World
Think Like A Coder
Costs of running a Python web app for 55k monthly users
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/200
9/25/2020 • 32 minutes, 19 seconds
#199 Big news for a very small Python runtime
Topics covered in this episode:
micropython updated
respx: A utility for mocking out the Python HTTPX library
GetPy - A Vectorized Python Dict/Set
isort and black now play nice together easily
Scientists rename human genes to stop Microsoft Excel from misreading them as dates
Never Run ‘python’ In Your Downloads Folder
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/199
9/17/2020 • 29 minutes, 28 seconds
#198 There's a beaver in your database and Anna-Lena drops by
Topics covered in this episode:
Easily create Python scripts using argparse
DBeaver Database UI Tool
Anna- pdp++ debugger
Markdown toys
Python Malware and obfuscation
Anna- attrs package
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/198
9/11/2020 • 34 minutes, 42 seconds
#197 Structured concurrency in Python
Topics covered in this episode:
Structured concurrency in Python with AnyIO
The Consortium for Python Data API Standards
Ask for Forgiveness or Look Before You Leap?
myrepos
A deep dive into the official Docker image for Python
“Only in a Pandemic” section
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/197
9/5/2020 • 36 minutes, 8 seconds
#196 Version your SQL schemas with git + automatically migrate them
Topics covered in this episode:
Surviving Django (if you care about databases)
* Python Numbers and the Flyweight design pattern*
What Are Python Wheels and Why Should You Care?
* Pandas_Alive*
How To Use the Python Map Function
Version your SQL schemas with git + automatically migrate them
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/196
8/27/2020 • 31 minutes, 5 seconds
#195 Runtime type checking for Python type hints
Topics covered in this episode:
watchdog
Status code 418
pydantic’s new Validation decorator
Building Python Extension Modules in Assembly
easy property
Non Blocking Assertion Failures with pytest-check
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/195
8/18/2020 • 33 minutes, 7 seconds
#194 Events and callbacks in the Python language!
Topics covered in this episode:
An introduction to mutation testing in Python
asynq
redis: Beyond the Cache
LittleTable
pytest-timeout
Events
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/194
8/10/2020 • 28 minutes, 30 seconds
#193 Break out the Django testing toolbox
Topics covered in this episode:
* Start using pip install --use-feature=2020-resolver if you aren’t already*
Profiling Python import statements
Django Testing Toolbox
Pandas-profiling
Interfaces, Mixins and Building Powerful Custom Data Structures in Python
Pickle’s 9 flaws
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/193
8/6/2020 • 34 minutes, 10 seconds
#192 Calculations by hand, but in the compter, with Handcalcs
Topics covered in this episode:
Building a self-updating profile README for GitHub
Handcalcs
The (non-)return of the Python print statement
FastAPI for Flask Users
Tweet deleting with tweepy
Clinging to memory: how Python function calls can increase your memory usage
* No local variable at all*
* Re-use the local variable*
* Transfer object ownership*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/192
8/2/2020 • 30 minutes, 29 seconds
#191 Live from the Manning Python Conference
Topics covered in this episode:
VS Code Device Simulator
pytest 6.0.0rc1
What is the core of the Python programming language?
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/191
7/22/2020 • 52 minutes, 33 seconds
#190 You will now be notified if the Python zipper is broken
Topics covered in this episode:
Python async frameworks - Beyond developer tribalism
commitizen
International PyCons go online (kind of)
PEP 618 -- Add Optional Length-Checking To zip
* timedelta and division?*
Pylance released for Microsoft VS Code
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/190
7/16/2020 • 43 minutes, 34 seconds
#189 What does str.strip() do? Are you sure?
Topics covered in this episode:
Improving Python exception chaining with raise-from
Create and publish interactive reports in Python
Pickle’s nine flaws
PEP 602 -- Annual Release Cycle for Python
More git Resources:
PEP 616 -- String methods to remove prefixes and suffixes
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/189
7/9/2020 • 31 minutes, 57 seconds
#188 Will there be a "switch" in Python the language?
Topics covered in this episode:
Making a trading bot asynchronous using Python’s “unsync” library
Fruit salad scrum estimation scale
Math to Code
PEP 622 -- Structural Pattern Matching
CodeArtifact from AWS
invoke
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/188
7/3/2020 • 31 minutes, 30 seconds
#187 Ready to find out if you're git famous?
Topics covered in this episode:
LEGO Mindstorms Robot Inventor supports Python
Step-by-step guide to contributing on GitHub
sneklang
Oh sh*t git
Why I don't like SemVer anymore
git fame
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/187
6/26/2020 • 29 minutes, 25 seconds
#186 The treebeard will guard your notebook
Topics covered in this episode:
sidetable - Create Simple Summary Tables in Pandas
tabulate
treebeard - ci for notebooks
Upcoming features in venv/virtualenv
PEP 582 now!
awesome pyproject.toml projects
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/186
6/18/2020 • 24 minutes, 51 seconds
#185 This code is snooping on you (a good thing!)
Topics covered in this episode:
MyST - Markedly Structured Text
direnv
Convert a Python Enum to JSON
Pendulum: Python datetimes made easy
PySnooper - Never use print for debugging again
Fil: A New Python Memory Profiler for Data Scientists and Scientists
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/185
6/12/2020 • 24 minutes, 39 seconds
#184 Too many ways to wait with await?
Topics covered in this episode:
Waiting in asyncio
virtualenv is faster than venv
Latency in Asynchronous Python
How to Deprecate a PyPI Package
Another progress bar library: Enlighten
Code Ocean
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/184
6/5/2020 • 36 minutes, 2 seconds
#183 Need a beautiful database editor? Look to the Bees!
Topics covered in this episode:
fastpages: An easy to use blogging platform, with enhanced support for Jupyter Notebooks.
BeeKeeper Studio Open Source SQL Editor and Database Manager
2nd Annual Python Web Conference
Mimesis - Fake Data Generator
Schemathesis
Finding secrets by decompiling Python bytecode in public repositories
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/183
5/29/2020 • 31 minutes, 51 seconds
#182 PSF Survey is out!
Topics covered in this episode:
PSF / JetBrains Survey
Hypermodern Python
Open AI Jukebox
The Curious Case of Python's Context Manager
nbstripout
Write ups for The 2020 Python Language Summit
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/182
5/19/2020 • 25 minutes, 52 seconds
#181 It's time to interrogate your Python code
Topics covered in this episode:
interrogate: checks your code base for missing docstrings
Streamlit: Turn Python Scripts into Beautiful ML Tools
Why You Should Document Your Tests
HoloViz project
A cool new progress bar for python
Awesome Panel
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/181
5/14/2020 • 31 minutes, 2 seconds
#180 Transactional file IO with Python and safer
Topics covered in this episode:
Ubuntu 20.04 is out!
Working with warnings in Python
Safer file writer
codespell
Austin profiler
Numbers in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/180
5/8/2020 • 32 minutes, 58 seconds
#179 Guido van Rossum drops in on Python Bytes
Topics covered in this episode:
New governance model for the Django project
missingno
Announcements from the language summit.
Codes of Conduct and Enforcement
Myths about Indentation
Parsers and LibCST
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/179
4/30/2020 • 44 minutes, 54 seconds
#178 Build a PyPI package from a Jupyter notebook
Topics covered in this episode:
Pandas-Bokeh
Stop naming your python modules “utils”
From 1 to 10,000 test cases in under an hour: A beginner's guide to property-based testing
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/178
4/22/2020 • 38 minutes, 18 seconds
#177 Coding is 90% Google searching or is it?
Topics covered in this episode:
Announcing a new Sponsorship Program for Python Packaging
energy-usage
Coding is 90% Google Searching — A Brief Note for Beginners
Using WSL to Build a Python Development Environment on Windows
A Pythonic Guide to SOLID Design Principles
Types for Python HTTP APIs: An Instagram Story
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/177
4/16/2020 • 41 minutes, 43 seconds
#176 How python implements super long integers
Topics covered in this episode:
* Quick chat about COVID 19*
What the heck is pyproject.toml?
Awesome Python Bytes Awesome List
Publishing package distribution releases using GitHub Actions CI/CD workflows
Rich text for terminals
psutil: Cross-platform lib for process and system monitoring in Python
How python implements super long integers
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/176
4/7/2020 • 29 minutes, 32 seconds
#175 Python string theory with superstring.py
Topics covered in this episode:
* Quick chat about COVID 19.*
Dictionary Merging and Updating in Python 3.9
superstring
New pip resolver to roll out this year
Why does all() return True if the iterable is empty?
pytest-monitor
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/175
4/1/2020 • 32 minutes, 43 seconds
#174 Happy developers use Python 3
Topics covered in this episode:
* Quick chat about COVID 19.*
Documentation as a way to build Community
The Django Speed Handbook: making a Django app faster
dacite: simplifies creation of data classes from dictionaries
How we retired Python 2 and improved developer happiness
The Troublesome Active Record Pattern
Types at the edges in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/174
3/26/2020 • 47 minutes, 44 seconds
#173 Your test deserves a fluent flavor
Topics covered in this episode:
Advanced usage of Python requests - timeouts, retries, hooks
Fluent Assertions
Python in GitHub Actions
VCR.py
8 Coolest Python Programming Language Features
Bento
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/173
3/19/2020 • 28 minutes, 38 seconds
#172 Floating high above the web with Helium
Topics covered in this episode:
Python in Production Hynek
* How to cheat at unit tests with pytest and Black*
Goodbye Microservices: From 100s of problem children to 1 superstar
Helium makes Selenium-Python 50% easier
uncertainties package
Personalize your python prompt
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/172
3/13/2020 • 32 minutes, 54 seconds
#171 Chilled out Python decorators with PEP 614
Topics covered in this episode:
PEP 614 – Relaxing Grammar Restrictions on Decorators
Create a macOS Menu Bar App with Python (Pomodoro Timer)
Conditional Coverage
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/171
Topics covered in this episode:
Python visualization graph
Awesome Zen of Python
Jupytext
Tour of Python Itertools
justpy.io
Modularity for Maintenance
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/170
2/25/2020 • 29 minutes, 5 seconds
#169 Jupyter Notebooks natively on your iPad
Topics covered in this episode:
D-Tale
Carnets
BeeWare Podium
pytest-mock-resources
How James Bennet is testing in 2020
Python and PyQt: Building a GUI Desktop Calculator
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/169
2/19/2020 • 25 minutes, 44 seconds
#168 Race your donkey car with Python
Topics covered in this episode:
donkeycar
RIP Pipenv: Tried Too Hard. Do what you need with pip-tools.
str.casefold()
Virtualenv
Property-based tests for the Python standard library (and builtins)
PyCon US Tutorial Schedule & Registration
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/168
2/11/2020 • 33 minutes, 34 seconds
#167 Cheating at Kaggle and uWSGI in prod
Topics covered in this episode:
clize: Turn functions into command-line interfaces
How to cheat at Kaggle AI contests
* Configuring uWSGI for Production Deployment*
* Thinc: A functional take on deep learning, compatible with Tensorflow, PyTorch, and MXNet*
* pandas-vet*
* NumPy beginner documentation*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/167
2/3/2020 • 28 minutes, 30 seconds
#166 Misunderstanding software clocks and time
Topics covered in this episode:
Amazon is now offering quantum computing as a service
A quick-and-dirty guide on how to install packages for Python
Say No to the no code movement
What I learned going from prison to Python
A real QUICK → Qt5 based gUI generator for ClicK
Falsehoods programmers believe about time
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/166
1/27/2020 • 28 minutes, 21 seconds
#165 Ranges as dictionary keys - oh my!
Topics covered in this episode:
iterators, generators, coroutines
requests-toolbelt
Pandas Validation
qtpy
pylightxl
python-ranges
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/165
1/21/2020 • 28 minutes, 45 seconds
#164 Use type hints to build your next CLI app
Topics covered in this episode:
* Data driven journalism via* cjworkbench
remi: A Platform-independent Python GUI library for your applications.
Typer
Effectively using Matplotlib
Django Simple Task
PyPI Stats at pypistats.org
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/164
1/16/2020 • 29 minutes, 2 seconds
#163 Meditations on the Zen of Python
Topics covered in this episode:
Meditations on the Zen of Python
* nginx raided by Russian police*
I'm not feeling the async pressure
codetiming from Real Python
Making Python Programs Blazingly Fast
LocalStack
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/163
1/9/2020 • 23 minutes, 49 seconds
#162 Retrofitting async and await into Django
See the full show notes for this episode on the website at pythonbytes.fm/162
1/3/2020 • 23 minutes, 9 seconds
#161 Sloppy Python can mean fast answers!
Topics covered in this episode:
Larry Hastings - Solve Your Problem With Sloppy Python - PyCon 2018
Introduction to ASGI: Emergence of an Async Python Web Ecosystem
Python Insights
Assembly
Building a Standalone GPS Logger with CircuitPython using @Adafruit and particle hardware
10 reasons python is good to learn
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/161
12/18/2019 • 30 minutes, 15 seconds
#160 Your JSON shall be streamed
Topics covered in this episode:
Type Hints for Busy Python Programmers
auto-py-to-exe
How to document Python code with Sphinx
Snek is a cross-platform PowerShell module for integrating with Python
How to use Pandas to access databases
ijson — Iterative JSON parser with a standard Python iterator interface
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/160
12/12/2019 • 28 minutes, 43 seconds
#159 Brian's PR is merged, the src will flow
Topics covered in this episode:
Final type
flit 2
Pint
8 great pytest plugins
* 11 new web frameworks*
Raise Better Exceptions in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/159
12/3/2019 • 33 minutes, 18 seconds
#158 There's a bounty on your open-source bugs!
Topics covered in this episode:
GitHub launches 'Security Lab' to help secure open source ecosystem
pybit.es now has some test challenges
pyhttptest - a command-line tool for HTTP tests over RESTful APIs
xarray
Animated SVG Terminals
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/158
11/27/2019 • 26 minutes, 5 seconds
#157 Oh hai Pandas, hold my hand?
Topics covered in this episode:
pydantic
Coverage.py 5.0 beta 1 adds context support
* PSF is seeking developers for paid contract improving pip*
dovpanda - Directions OVer PANDAs
removestar
pytest-quarantine : Save the list of failing tests, so that they can be automatically marked as expected failures on future test runs.
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/157
11/20/2019 • 23 minutes, 32 seconds
#156 All the programming LOLs
Topics covered in this episode:
* Why You Should Use* python -m pip
Visual Studio Online: Web-Based IDE & Collaborative Code Editor
Black 19.10b0 Released — stable release coming soon
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/156
11/15/2019 • 28 minutes, 27 seconds
#155 Guido van Rossum retires
Topics covered in this episode:
Guido retires
SeleniumBase
Reimplementing a Solaris command in Python gained 17x performance improvement from C
20 useful Python tips and tricks you should know
* Complexity Waterfall*
Plynth
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/155
11/6/2019 • 32 minutes, 6 seconds
#154 Code, frozen in carbon, on display for all
Topics covered in this episode:
Lesser Known Coding Fonts
Django Admin Handbook
Your Guide to the CPython Source Code
Six Django template tags not often used in tutorials
Beautiful code snippets with Carbon
Researchers find bug in Python script may have affected hundreds of studies
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/154
10/29/2019 • 32 minutes, 19 seconds
#153 Auto format my Python please!
Topics covered in this episode:
Building a Python C Extension Module
What’s New in Python 3.8 - docs.python.org
UK National Cyber Security Centre (NCSC) is warning developers of the risks of sticking with Python 2.7, particularly for library writers
Pythonic News
Deep Learning Workstations, Servers, Laptops, and GPU Cloud
* Auto formatters for Python*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/153
10/23/2019 • 26 minutes, 57 seconds
#152 You have 35 million lines of Python 2, now what?
Topics covered in this episode:
JPMorgan’s Athena Has 35 Million Lines of Python 2 Code, and Won’t Be Updated to Python 3 in Time
organize
PEP 589 – TypedDict: Type Hints for Dictionaries With a Fixed Set of Keys
gazpacho
How pip install Works
daily pandas tricks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/152
10/15/2019 • 26 minutes, 1 second
#151 Certified! It works on my machine
Topics covered in this episode:
Python alternative to Docker
How to support open-source software and stay sane
MATLAB vs Python: Why and How to Make the Switch
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/151
10/10/2019 • 25 minutes, 47 seconds
#150 Winning the Python software interview
Topics covered in this episode:
How to Stand Out in a Python Coding Interview
The Python Software Foundation has updated its Code of Conduct
The Interview Study Guide For Software Engineers
re-assert : “show where your regex match assertion failed”
awesome-python-typing
Developer Advocacy: Frequently Asked Questions
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/150
10/5/2019 • 23 minutes, 57 seconds
#149 Python's small object allocator and other memory features
Topics covered in this episode:
Dropbox: Our journey to type checking 4 million lines of Python
Setting Up a Flask Application in Visual Studio Code
Multiprocessing vs. Threading in Python: What Every Data Scientist Needs to Know
ORM - async ORM
Getting Started with APIs
Memory management in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/149
9/25/2019 • 37 minutes, 18 seconds
#148 The ASGI revolution is upon us!
Topics covered in this episode:
Annual Release Cycle for Python - PEP 602
awesome-asgi
Asynchronous Django
Sunsetting Python 2
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/148
9/18/2019 • 24 minutes, 3 seconds
#147 Mocking out AWS APIs
Topics covered in this episode:
rapidtables
Quick and dirty mock service with Starlette
Mocking out AWS APIs
Single Responsibility Principle in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/147
9/11/2019 • 25 minutes, 19 seconds
#146 Slay the dragon, learn the Python
Topics covered in this episode:
Positional-only arguments in Python
django-stubs
CodeCombat
Four Use Cases for When to Use Celery in a Flask Application
pytest-steps
docassemble
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/146
9/8/2019 • 23 minutes, 35 seconds
#145 The Python 3 “Y2K” problem
Topics covered in this episode:
friendly-traceback
* Pandas Users Survey*
* python3 “Y2K” problem (python3.10 / python4.0)*
pypi research
* DaPy*
python-remote-pdb
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/145
8/31/2019 • 34 minutes, 24 seconds
#144 Are you mocking me? It won't work!
Topics covered in this episode:
Why your mock doesn’t work
The nonlocal statement in Python
twitter.com/brettsky/status/1163860672762933249
pre-commit now has a quick start guide
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/144
8/23/2019 • 25 minutes, 46 seconds
#143 Spike the robot, powered by Python!
Topics covered in this episode:
Keynote: Python 2020 - Łukasz Langa - PyLondinium19
My oh my, flake8-mypy and pytest-mypy
Python 3 at Mozilla
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/143
8/14/2019 • 33 minutes, 19 seconds
#142 There's a bandit in the Python space
Topics covered in this episode:
Writing sustainable Python scripts
Static Analysis and Bandit
jupyter-black
Report Generation workflow with papermill, jupyter, rclone, nbconvert, …
How — and why — you should use Python Generators
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/142
8/6/2019 • 30 minutes, 31 seconds
#141 Debugging with f-strings coming in Python 3.8
Topics covered in this episode:
Debugging with f-strings in Python 3.8
Am I "real" software developer yet?
Debugging with local variables and snoop
New home for Humans
The Backwards Commercial License
Switching Python Parsers?
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/141
7/29/2019 • 30 minutes, 45 seconds
#140 Becoming a 10x Developer (sorta)
Topics covered in this episode:
Becoming a 10x Developer: 10 ways to be a better teammate
quasar & vue.py
Regular Expressions 101
python-diskcache
The Python Help System
Python Architecture Graphs
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/140
7/23/2019 • 24 minutes, 39 seconds
#139 f"Yes!" for the f-strings
Topics covered in this episode:
Simplify Your Python Developer Environment
New fast.ai course: A Code-First Introduction to Natural Language Processing
Cloning the human voice
Ab(using) pyproject.toml and stuffing pytest.ini and mypy.ini content into it
Polyaxon
Flynt for f-strings
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/139
7/18/2019 • 38 minutes, 42 seconds
#138 Will PyOxidizer weld shut one of Python's major gaps?
Topics covered in this episode:
flake8-comprehensions
PyOxidizer (again)
Using changedir to avoid the need for src
WebRTC and ORTC implementation for Python using asyncio
Apprise - Push Notifications that work with just about every platform!
Websauna web framework
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/138
7/8/2019 • 29 minutes, 39 seconds
#137 Advanced Python testing and big-time diffs
Topics covered in this episode:
Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml
MongoDB 4.2
Deep Difference and search of any Python object/data
Advanced Python Testing
Understanding Python's del
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/137
7/2/2019 • 28 minutes, 5 seconds
#136 A Python kernel rather than cleaning the batteries?
Topics covered in this episode:
Voilà!
Toward a “Kernel Python”
Use _main_.py
The CPython Bytecode Compiler is Dumb
You can play with EdgeDB now, maybe
16 Python libraries that helped a healthcare startup grow
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/136
6/25/2019 • 30 minutes, 27 seconds
#135 macOS deprecates Python 2, will stop shipping it (eventually)
Topics covered in this episode:
Why do Python lists let you += a tuple, when you can’t + a tuple?
macOS deprecates Python 2, will stop shipping it (eventually)
Pythonic Ways to Use Dictionaries
Things you are probably not using in Python 3 But Should
Have a time machine? C++ would get the Python 2 → 3 treatment too
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/135
6/20/2019 • 32 minutes, 24 seconds
#134 Python proves Mercury is the closest planet to Earth
Topics covered in this episode:
Three scientists publish a paper proving that Mercury, not Venus, is the closest planet to Earth. using Python
Github semantics
flake8-black
Python Preview for VS Code
Create and Publish a Python Package with Poetry
Pointers in Python: What's the Point?
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/134
6/12/2019 • 21 minutes, 10 seconds
#133 Github sponsors - The model open source has been waiting for?
Topics covered in this episode:
Python built-ins worth learning
Github sponsors and match
Build a REST API in 30 minutes with Django REST Framework
Dependabot has been acquired by GitHub
spoof “New features planned for Python 4.0”
BlackSheep web framework
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/133
6/5/2019 • 27 minutes, 29 seconds
#132 Algorithms as objects
Topics covered in this episode:
History of CircuitPython
Algorithms as objects
pico-pytest
An Introduction to Cython, the Secret Python Extension with Superpowers
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/132
5/30/2019 • 30 minutes, 19 seconds
#131 Python 3 has issues (over on GitHub)
Topics covered in this episode:
* PEP 581 (Using GitHub issues for CPython) is accepted*
Things you’re probably not using in Python 3 – but should
The Python Arcade Library
Teaching a kid to code with Pygame Zero
Follow up on GIL / PEP 554
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/131
5/21/2019 • 27 minutes, 15 seconds
#130 Python.exe now shipping with Windows 10
Topics covered in this episode:
pgcli
Papermill
Python Language Summit
Python in Windows 10
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/130
5/14/2019 • 24 minutes, 7 seconds
#129 Maintaining a Python Project when it’s not your job
Topics covered in this episode:
* Maintaining a Python Project when it’s not your job*
* Python in 1994*
* Textblob*
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/129
5/6/2019 • 16 minutes, 40 seconds
#128 Will the GIL be obsolete with PEP 554?
Topics covered in this episode:
Solving Algorithmic Problems in Python with pytest
* DepHell -- project management for Python*
Dask
Animations with Matplotlib
PEP 554 -- Multiple Interpreters in the Stdlib
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/128
5/2/2019 • 23 minutes, 1 second
#127 That Python code is on fire!
Topics covered in this episode:
inline_python (for rust)
* Requests3: Under Way!*
* 🔥 Pyflame: *A Ptracing Profiler For Python
* flit + src*
cheat.sh
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/127
4/25/2019 • 24 minutes, 55 seconds
#126 WebAssembly comes to Python
Topics covered in this episode:
Python Used to Take Photo of Black Hole
Wasmer - Python Library for executing WebAssembly binaries
Cooked Input
JetBrains and PyCharm officially collaborating with Anaconda
Building a Serverless IoT Solution with Python Azure Functions and SignalR
multiprocessing.shared_memory — Provides shared memory for direct access across processes
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/126
4/19/2019 • 30 minutes, 10 seconds
#125 Will you conquer the deadlock empire?
Topics covered in this episode:
My How and Why: pyproject.toml & the 'src' Project Structure
The Deadlock Empire: Slay dragons, master concurrency!
Cog 3.0
StackOverflow 2019 Developer Survey Results
Cuv’ner “A commanding view of your test-coverage"
Mobile apps launched
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/125
4/13/2019 • 31 minutes, 46 seconds
#124 This is not the None you're looking for
Topics covered in this episode:
[play:0:29] [pytest 4.4.0](https://docs.pytest.org/en/latest/changelog.html#pytest-4-4-0-2019-03-29)
[play:3:47] [requests-async](https://github.com/encode/requests-async)
[play:7:10] Reasons why PyPI should not be a service
[play:12:35]* Jupyter in the cloud*
[play:16:57] Jupyter Notebook tutorials
[play:19:28]* Unique sentinel values, identity checks, and when to use object() instead of None*
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/124
4/5/2019 • 27 minutes, 41 seconds
#123 Time to right the py-wrongs
Topics covered in this episode:
[play:0:34] [Deconstructing xkcd.com/1987/](https://snarky.ca/deconstructing-xkcd-com-1987/)
[play:3:12] [Python package as a CLI option](https://gehrcke.de/2014/02/distributing-a-python-command-line-application/)
[play:10:29] Refactoring Python Applications for Simplicity
[play:14:15] [FastAPI](https://fastapi.tiangolo.com/)
[play:17:48] Bleach: stepping down as maintainer
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/123
3/29/2019 • 25 minutes, 31 seconds
#122 Give Me Back My Monolith
Topics covered in this episode:
[play:0:55] Combining and separating dictionaries
[play:3:02] [Why I Avoid Slack](https://matthewrocklin.com/blog/2019/02/28/slack-github)
[play:7:57] [Hunting for Memory Leaks in Python applications](https://medium.com/zendesk-engineering/hunting-for-memory-leaks-in-python-applications-6824d0518774)
[play:13:06] [Give Me Back My Monolith](http://www.craigkerstiens.com/2019/03/13/give-me-back-my-monolith/)
[play:18:23] [Famous Laws Of Software Development](https://www.timsommer.be/famous-laws-of-software-development/)
[play:20:54] [Beer Garden Plugins](https://beer-garden.io/)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/122
3/22/2019 • 29 minutes, 6 seconds
#121 python2 becomes self-aware, enters fifth stage of grief
Topics covered in this episode:
[play:0:40] [Futurize](https://python-future.org/automatic_conversion.html) and Auto-Futurize
[play:3:42] [Tech blog writing live stream](https://www.youtube.com/watch?v=vtlaNShM_s0&feature=youtu.be)
[play:8:50] [bullet: Beautiful Python Prompts Made Simple](https://github.com/Mckinsey666/bullet)
[play:11:15] [Hosting private pip packages using Azure Artifacts](https://zerowithdot.com/private-pip-azure/)
[play:13:15] [Async/await for wxPython](https://medium.com/@abulka/async-await-for-wxpython-c78c667e0872)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/121
3/16/2019 • 23 minutes, 34 seconds
#120 AWS, MongoDB, and the Economic Realities of Open Source and more
Topics covered in this episode:
[play:0:53] [The Ultimate Guide To Memorable Tech Talks](https://medium.com/@nnja/the-ultimate-guide-to-memorable-tech-talks-e7c350778d4b)
[play:3:56] [Running Flask on Kubernetes](https://testdriven.io/blog/running-flask-on-kubernetes/?source=4320ef6a6395)
[play:10:51] [Python server setup for macOS 🍎](https://github.com/zachvalenta/nginx-wsgi)
[play:12:52] [Learn Enough Python to be Useful: argparse](https://towardsdatascience.com/learn-enough-python-to-be-useful-argparse-e482e1764e05)
[play:14:56] [AWS, MongoDB, and the Economic Realities of Open Source](https://stratechery.com/2019/aws-mongodb-and-the-economic-realities-of-open-source/)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/120
3/5/2019 • 25 minutes, 25 seconds
#119 Assorted files as Django ORM backends with Alkali
Topics covered in this episode:
[play:0:52] [Incrementally migrating over one million lines of code from Python 2 to Python 3](https://blogs.dropbox.com/tech/2019/02/incrementally-migrating-over-one-million-lines-of-code-from-python-2-to-python-3/)
[play:3:42] Network Automation Development with Python (for fun and for profit)
[play:9:59] [Carnegie Mellon Launches Undergraduate Degree in Artificial Intelligence](https://www.cs.cmu.edu/news/carnegie-mellon-launches-undergraduate-degree-artificial-intelligence)
[play:11:37] [asyncio + PyQt5/PySide2](https://github.com/gmarull/asyncqt)
[play:13:02] [4 things I want to see in Python 4.0](https://hackernoon.com/4-things-i-want-to-see-in-python-4-0-85b853e86a88)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/119
2/26/2019 • 22 minutes, 13 seconds
#118 Better Python executable management with pipx
Topics covered in this episode:
[play:7:52] [Data science is different now](https://veekaybee.github.io/2019/02/13/data-science-is-different/)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/118
2/22/2019 • 25 minutes, 54 seconds
#117 Is this the end of Python virtual environments?
See the full show notes for this episode on the website at pythonbytes.fm/117
2/14/2019 • 28 minutes, 20 seconds
#116 So you want Python in a 3D graphics engine?
Topics covered in this episode:
[play:0:25] [Inside python dict — an explorable explanation](https://just-taking-a-ride.com/insidepythondict/chapter1.html)
[play:2:37] Embed Python in Unreal Engine 4
[play:4:32]* Redirecting stdout with contextlib*
[play:7:56] [Panda3D](https://www.panda3d.org/)
[play:10:32] [Why PyPI Doesn't Know Your Projects Dependencies](https://dustingram.com/articles/2018/03/05/why-pypi-doesnt-know-dependencies/)
[play:13:58]* PyGame series*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/116
2/6/2019 • 17 minutes, 56 seconds
#115 Dataclass CSV reader and Nina drops by
Topics covered in this episode:
[play:1:03] [Great Expectations](https://great-expectations.readthedocs.io/en/latest/)
[play:5:01] Using CircuitPython and MicroPython to write Python for wearable electronics and embedded platforms
[play:11:58] [How to Rock Python Packaging with Poetry and Briefcase](https://dan.yeaw.me/posts/python-packaging-with-poetry-and-briefcase/)
[play:14:59] [awesome-python-security](https://github.com/guardrailsio/awesome-python-security) 🕶🐍🔐, a collection of tools, techniques, and resources to make your Python more secure
[play:18:20]* pydbg*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/115
2/2/2019 • 28 minutes, 58 seconds
#114 What should be in the Python standard library?
Topics covered in this episode:
[play:0:37] [What should be in the Python standard library?](https://lwn.net/Articles/776239/)
[play:9:00] [Data Science portal for Home Assistant launched](https://data.home-assistant.io/)
[play:12:17] [What's the future of the pandas library?](https://www.dataschool.io/future-of-pandas/)
[play:16:17] [PyOxidizer](https://github.com/indygreg/PyOxidizer)
[play:19:31] [Working With Files in Python](https://realpython.com/working-with-files-in-python/)
[play:22:06] [$ python == $ python3?](https://github.com/python/peps/pull/630)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/114
1/26/2019 • 28 minutes, 33 seconds
#113 Python Lands on the Windows 10 App Store
Topics covered in this episode:
[play:1:01] [Advent of Code 2018 Solutions](https://www.michaelfogleman.com/aoc18/)
[play:2:37] [Python Lands on the Windows 10 App Store](https://www.thurrott.com/windows/windows-10/196830/python-lands-on-the-windows-10-app-store#)
[play:7:06] [How I Built A Python Web Framework And Became An Open Source Maintainer](https://blog.florimondmanca.com/how-i-built-a-web-framework-and-became-an-open-source-maintainer)
[play:11:46]* Python maintainability score via* Wily
[play:13:03] A couple fun awesome lists
[play:16:32] [fastlogging](https://brmmm3.github.io/posts/2019/01/08/fastlogging/)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/113
1/18/2019 • 23 minutes, 22 seconds
#112 Don't use the greater than sign in programming
Topics covered in this episode:
[play:0:56] [nbgrader](https://github.com/jupyter/nbgrader)
[play:3:22]* profanity-check*
[play:9:05]* Python Dependencies and IoC*
[play:16:59] [A Gentle Introduction to Pandas](https://medium.com/@wbusaka/a-gentle-introduction-to-pandas-5ed17421a59d)
[play:18:38] [Don't use the greater than sign in programming](http://llewellynfalco.blogspot.com/2016/02/dont-use-greater-than-sign-in.html)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/112
1/11/2019 • 28 minutes, 47 seconds
#111 loguru: Python logging made simple
Topics covered in this episode:
[play:0:46] [loguru:](https://github.com/Delgan/loguru) Python logging made (stupidly) simple
[play:6:08] [Python gets a new governance model](https://mail.python.org/pipermail/python-committers/2018-December/006479.html)
[play:12:16] [Why you should be using pathlib](https://treyhunner.com/2018/12/why-you-should-be-using-pathlib/)
[play:16:00] [Altair](https://github.com/altair-viz/altair) and Altair Recipes
[play:19:43] A couple fun pytest plugins
[play:23:23] [Secure 🔒 headers and cookies for Python web frameworks](https://github.com/cakinney/secure.py)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/111
1/5/2019 • 34 minutes, 16 seconds
#110 Python Year in Review 2018 Edition
See the full show notes for this episode on the website at pythonbytes.fm/110
12/26/2018 • 56 minutes, 54 seconds
#109 CPython byte code explorer
Topics covered in this episode:
[play:1:01] [Python Descriptors Are Magical Creatures](https://pabloariasal.github.io/2018/11/25/python-descriptors/)
[play:3:38] [Data Science Survey 2018 JetBrains](https://www.jetbrains.com/research/data-science-2018/)
[play:8:04] [cache.py](https://github.com/bwasti/cache.py)
[play:11:54] [Setting up the data science tools](https://www.youtube.com/watch?v=Ksu5zZIdfH0)
[play:14:03] [chartify](https://github.com/spotify/chartify)
[play:15:23] [CPython byte code explorer](https://github.com/jtpio/jupyterlab-python-bytecode)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/109
12/18/2018 • 20 minutes, 45 seconds
#108 Spilled data? Call the PyJanitor
Topics covered in this episode:
[play:0:45] [pyjanitor](https://pyjanitor.readthedocs.io/) - for cleaning data
[play:3:12] [What Does It Take To Be An Expert At Python?](https://www.youtube.com/watch?v=7lmCu8wz8ro)
[play:5:38] [Awesome Python Applications](https://github.com/mahmoud/awesome-python-applications)
[play:8:26] [Django Core no more](https://www.b-list.org/weblog/2018/nov/20/core/)
[play:12:06] [wemake django template](https://github.com/wemake-services/wemake-django-template)
[play:15:16] Django Hunter
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/108
12/11/2018 • 21 minutes, 51 seconds
#107 Restructuring and searching data, the Python way
Topics covered in this episode:
[play:0:52] [glom: restructuring data, the Python way](https://glom.readthedocs.io/en/latest/index.html)
[play:5:31] [Scientific GUI apps with TraitsUI](http://docs.enthought.com/traitsui/)
[play:7:49] [Pampy: The Pattern Matching for Python you always dreamed of](https://github.com/santinic/pampy)
[play:11:28] [Google AI better than doctors at detecting breast cancer](https://www.sciencefocus.com/news/google-ai-better-than-doctors-at-detecting-breast-cancer/)
[play:15:37] [2018 Advent of Code](https://adventofcode.com/2018/about)
[play:16:56] [Red Hat Linux 8.0 Beta released, now (finally) updated to use Python 3.6 as default instead of 2.7](https://www.reddit.com/r/Python/comments/9xms3u/redhatlinux80betareleasednow_finally/)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/107
12/7/2018 • 22 minutes, 50 seconds
#106 Fluent query APIs on Python collections
Topics covered in this episode:
[play:0:49] Dependency Management through a DevOps Lens
[play:5:25] [Plugins made simple with](https://github.com/Rockhopper-Technologies/pluginlib) pluginlib
[play:8:00] [How to Test Your Django App with Selenium and pytest](https://pybit.es/selenium-pytest-and-django.html)
[play:12:40]* Fluent collection APIs (flupy and asq)*
[play:16:41] Guido blogging again
[play:21:33]* Web apps in pure Python apps with Anvil*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/106
12/1/2018 • 26 minutes, 21 seconds
#105 Colorizing and Restoring Old Images with Deep Learning
Topics covered in this episode:
[play:1:32] [Colorizing and Restoring Old Images with Deep Learning](https://blog.floydhub.com/colorizing-and-restoring-old-images-with-deep-learning/)
[play:4:25] [PlatformIO IDE for VSCode](https://platformio.org/platformio-ide)
[play:7:35] [Python Data Visualization 2018: Why So Many Libraries?](https://www.anaconda.com/blog/developer-blog/python-data-visualization-2018-why-so-many-libraries/)
[play: 11:21] [coder.com - VS Code in the cloud](https://coder.com/)
[play:14:20] [By Welcoming Women, Python’s Founder Overcomes Closed Minds In Open Source](https://www.forbes.com/sites/oracle/2018/11/20/by-welcoming-women-pythons-founder-overcomes-closed-minds-in-open-source/)
[play:19:40] [Machine Learning Basics](http://alpopkes.com/portfolio/portfolio-2/)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/105
11/23/2018 • 24 minutes, 15 seconds
#104 API Evolution the Right Way
Topics covered in this episode:
[play:4:32] [wily: A Python application for tracking, reporting on timing and complexity in tests and applications.](https://github.com/tonybaloney/wily)
[play:8:00] [Latest VS Code has Juypter support](https://blogs.msdn.microsoft.com/pythonengineering/2018/11/08/python-in-visual-studio-code-october-2018-release/)
[play:11:17] API Evolution the Right Way
[play:16:10] [PySimpleGUI now on Qt](https://github.com/MikeTheWatchGuy/PySimpleGUI/tree/master/PySimpleGUIQt)
[play:19:57] [Comparison of the 7 governance PEPs](https://discuss.python.org/t/comparison-of-the-7-governance-peps/392)
[play:23:54] [Shiboken](http://doc.qt.io/qtforpython/shiboken2/) (from Qt for Python project)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/104
11/17/2018 • 30 minutes, 7 seconds
#103 Getting to 10x (results for developers)
Topics covered in this episode:
[play:1:11] [FEniCS](https://fenicsproject.org/)
[play:5:13] [cursivere](https://github.com/Bogdanp/cursivere)
[play:8:33] pyimagesearch
[play:11:52] [Visualization of Python development up till 2012](https://www.youtube.com/watch?v=cNBtDstOTmA)
[play:14:37] [Getting to 10x (Results): What Any Developer Can Learn from the Best](https://medium.com/javascript-scene/getting-to-10x-results-what-any-developer-can-learn-from-the-best-54b6c296a5ef)
[play:19:55] [Chaos Toolkit](https://chaostoolkit.org)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/103
11/8/2018 • 27 minutes, 6 seconds
#102 Structure of a Flask Project
Topics covered in this episode:
QuantEcon
Structure of a Flask Project
Overusing lambda expressions in Python
Asyncio in Python 3.7
* Giving thanks with* **pip thank**
Getting Started With Testing in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/102
10/31/2018 • 26 minutes, 52 seconds
#101 Nobel Prize awarded to a Python convert
Topics covered in this episode:
Asterisks in Python: what they are and how to use them
responder web framework
* Python Example resource:* pythonprogramming.in
More in depth TensorFlow
MAKERphone - an educational DIY mobile phone
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/101
10/24/2018 • 21 minutes, 34 seconds
#100 The big 100 with special guests
Topics covered in this episode:
poetry
Anthony * pylama *and radon
Nina * *Tools for teaching Python
Dan My favorite tool of 2018: “Black” code formatter by Łukasz Langa
Brett * A Web without JavaScript*: Russell Keith-Magee at PyCon AU
Async WebDriver implementation for asyncio and asyncio-compatible frameworks
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/100
10/19/2018 • 42 minutes
#99 parse - the regex antidote in Python
Topics covered in this episode:
parse
fman Build System
fastjsonschema
IPython 7.0, Async REPL
molten
A Python love letter
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/99
10/16/2018 • 21 minutes, 18 seconds
#98 Python-Electron as a Python GUI
Topics covered in this episode:
Making Etch-a-Sketch Art With Python
Dropbox moves to Python 3
* Resources for PyCon that relate to really any talk venue*
Electron as GUI of Python Applications
pluggy: A minimalist production ready plugin system
How China Used a Tiny Chip to Infiltrate U.S. Companies
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/98
10/8/2018 • 26 minutes, 58 seconds
#97 Java goes paid
Topics covered in this episode:
Making a PyPI-friendly README
Java goes paid
Absolute vs Relative Imports in Python
pyxel - A retro game engine for Python
Click 7.0 Released
How we spent 30k USD in Firebase in less than 72 hours
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/97
9/28/2018 • 24 minutes, 36 seconds
#96 Python Language Summit 2018
Topics covered in this episode:
Plumbum: Shell Combinators and More
Windows 10 Linux subsystem for Python developers
Type hints cheat sheet (Python 3)
Python driving new languages
asyncio documentation rewritten from scratch
The 2018 Python Language Summit
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/96
9/22/2018 • 26 minutes, 33 seconds
#95 Unleash the py-spy!
Topics covered in this episode:
dataset: databases for lazy people
CuPy GPU NumPy
Automate Python workflow using pre-commits
py-spy
SymPy is a Python library for symbolic mathematics
Starlette ASGI web framework
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/95
9/15/2018 • 23 minutes, 33 seconds
#94 Why don't you like notebooks?
Topics covered in this episode:
Python Patterns
Arctic: Millions of rows a sec (time data)
PyCon Australia videos
GAE: Introducing App Engine Second Generation runtimes and Python 3.7
I don’t like notebooks
PEP 8000 -- Python Language Governance Proposal Overview
TIOBE jump https://www.tiobe.com/tiobe-index/
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/94
9/6/2018 • 23 minutes, 49 seconds
#93 Looking like there will be a PyBlazor!
Topics covered in this episode:
Replacing Bash Scripting with Python.
pyodide
The subset of reStructuredText worth committing to memory
bandit
Learn Python 3 within Jupyter Notebooks
detect-secrets
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/93
8/31/2018 • 24 minutes, 15 seconds
#92 Will your Python be compiled?
Topics covered in this episode:
IEEE Survey Ranks Programming Languages
MyPyC
Beyond Interactive: Notebook Innovation at Netflix
How to create a Windows Service in Python
An Overview of Packaging for Python
PEP 505 -- None-aware operators
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/92
8/25/2018 • 26 minutes, 57 seconds
#91 Will there be a PyBlazor?
Topics covered in this episode:
What makes the Python Cool
Django 2.1 released
Awesome Python Features Explained Using Harry Potter
Executing Encrypted Python with no Performance Penalty
icdiff and pytest-icdiff
* Will there be a PyBlazor?*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/91
8/15/2018 • 20 minutes, 28 seconds
#90 A Django Async Roadmap
Topics covered in this episode:
Reproducible Data Analysis in Jupyter
PySimpleGUI - For simple Python GUIs
Useful tricks you might not know about Git stash
A Django Async Roadmap
pydub
Molten: Modern API framework
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/90
8/7/2018 • 25 minutes, 18 seconds
#89 A tenacious episode that won't give up
Topics covered in this episode:
tenacity
Why is Python so slow?
A multi-core Python HTTP server (much) faster than Go (spoiler: Cython)
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/89
8/4/2018 • 28 minutes, 50 seconds
#88 Python has brought computer programming to a vast new audience
Topics covered in this episode:
Documenting Python Code: A Complete Guide
* Security vulnerability alerts for Python at Github*
How virtual environment libraries work in Python
Learning (not) to Handle Exceptions
Python has brought computer programming to a vast new audience
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/88
7/27/2018 • 23 minutes, 8 seconds
#87 Guido van Rossum steps down
See the full show notes for this episode on the website at pythonbytes.fm/87
7/17/2018 • 33 minutes, 20 seconds
#86 Make your NoSQL async and await-able with uMongo
Topics covered in this episode:
responses
29 common beginner Python errors on one page
μMongo
Basic Statistics in Python: Descriptive Statistics
Strings and Character Data in Python
PEP 572: Assignment expressions accepted
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/86
7/13/2018 • 26 minutes, 4 seconds
#85 Visually debugging your Jupyter notebook
Topics covered in this episode:
the state of type hints in Python
Flaskerizer
PixieDebugger
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/85
7/3/2018 • 24 minutes, 40 seconds
#84 Vibora web framework: It's fast, async, and means viper
Topics covered in this episode:
Correcting Documentation for a Deployed Python Package
Flask Mega Tutorial
pre-commit
* Python 3.7 release and PSF board members*
Vibora web framework
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/84
6/28/2018 • 26 minutes, 29 seconds
#83 from __future__ import braces
Topics covered in this episode:
Code with Mu: a simple Python editor for beginner programmers.
Python parenthesis primer
Python for Qt Released
Itertools in Python 3, By Example
Python Sets and Set Theory
Python 3.7 is coming soon!
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/83
6/22/2018 • 29 minutes, 22 seconds
#82 Let's make a clear Python 3 statement
Topics covered in this episode:
Building and Documenting Python REST APIs With Flask and Connexion
MyPy + PyCharm
* Automatic code/doc conversion*
python3statement
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/82
6/15/2018 • 25 minutes, 55 seconds
#81 Making your C library callable from Python by wrapping it with Cython
Topics covered in this episode:
* Learning about Machine Learning*
Making your C library callable from Python by wrapping it with Cython
Taming Irreversibility with Feature Flags (in Python)
pretend: a stubbing library
The official Flask tutorial
An introduction to Python bytecode
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/81
6/5/2018 • 17 minutes
#80 Dan Bader drops by and we found 30 new Python projects
Topics covered in this episode:
Packaging Python Projects
gidgethub — An async library for calling GitHub’s API
pystemd
PyCharm 2018.2 EAP 1 includes improved pytest support
30 amazing Python projects (2018 edition)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/80
5/29/2018 • 30 minutes, 45 seconds
#79 15 Tips to Enhance your Github Flow
Topics covered in this episode:
pytest 3.6.0
* Hello* Qt for Python
MongoDB 4.0.0-rc0 available
Pipenv review, after using it in production
Pandas goes Python 3 only
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/79
5/25/2018 • 27 minutes, 31 seconds
#78 Setting Expectations for Open Source Participation
Topics covered in this episode:
The Forgotten Optional else in Python Loops
libraries.io
The other (great) benefit of Python type annotations
Setting Expectations for Open Source Participation
ngrok
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/78
5/18/2018 • 26 minutes, 7 seconds
#77 You Don't Have To Be a Workaholic To Win
Topics covered in this episode:
Why Senior Devs Write Dumb Code
GeoAlchemy 2
You Don't Have To Be a Workaholic To Win: 13 Alternative Ways To Stand Out
Project Beeware AppStore
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/77
5/12/2018 • 21 minutes, 4 seconds
#76 Goodbye zero-versioning
Topics covered in this episode:
Unlearning toxic behaviors in a code review culture
Flask 1.0 Released
How to have a great first PyCon
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/76
5/4/2018 • 30 minutes, 40 seconds
#75 pypi.org officially launches
Topics covered in this episode:
numba
pip 10 is out!
* Pandas only like modern Python*
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/75
4/28/2018 • 19 minutes, 51 seconds
#74 Contributing to Open Source effectively
Topics covered in this episode:
* Contributing to Open Source effectively*
Jupyter, Mathematica, and the Future of the Research Paper
Depression AI
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/74
4/19/2018 • 24 minutes, 51 seconds
#73 This podcast comes in any color you want, as long as it's black
Topics covered in this episode:
Set Theory and Python
Trio: async programming for humans and snake people
black: The uncompromising Python code formatter
gain: Web crawling framework based on asyncio
Generic Function in Python with Singledispatch
Unsync: Unsynchronizing async/await in Python 3.6
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/73
4/12/2018 • 18 minutes, 35 seconds
#72 New versioning: Episode 0.0.7.2 (with 72 releases)
Topics covered in this episode:
ZeroVer: 0-based Versioning
GitHub Security Alerts Detected over Four Million Vulnerabilities
Markdown Descriptions on PyPI
Concurrency comparison between NGINX-unit and uWSGI
Loop better: A deeper look at iteration in Python
Misconfigured Django Apps Are Exposing Secret API Keys, Database Passwords
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/72
4/5/2018 • 22 minutes, 54 seconds
#71 We can migrate to Python 3, careful please
Topics covered in this episode:
The Conservative Python 3 Porting Guide
World-Class Software Companies That Use Python
Stop Writing Classes
PyPi.org is alive
pygame on pypy usable
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/71
3/28/2018 • 24 minutes, 1 second
#70 Have you seen my log? It's cute!
Topics covered in this episode:
Online CookieCutter Generator
cutelog – GUI for Python's logging module
wagtail 2.0
peewee 3.0 is out
Machine Learning Basics
Cerberus
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/70
3/23/2018 • 15 minutes, 51 seconds
#69 Digging into StackOverflow's 2018 survey results
Topics covered in this episode:
pynb: Jupyter Notebooks as plain Python code with embedded Markdown text
Microsoft’s quantum computing language is now available for macOS
* pytest talk in Spanish*
StackOverflow Developer Survey Results 2018
demoshell
* Clear statement on Python 2 EOL*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/69
3/18/2018 • 24 minutes
#68 Python notebooks galore!
Topics covered in this episode:
dumb-pypi
Requests-HTML: HTML Parsing for Humans
A phone number proxy
* Notebooks galore part 1:* Datalore
bellybutton
Notebooks galore part 2
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/68
3/6/2018 • 19 minutes, 9 seconds
#67 Result of moving Python to Github
Topics covered in this episode:
Building a blog with Pelican
Notifiers
Using Makefiles in Python projects
Result of moving Python to Github
Self-Deprecation Needs to Stop
5 speed improvements in Python 3.7
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/67
3/1/2018 • 21 minutes, 56 seconds
#66 Wait, NoSQL with ACID and transactions?
Topics covered in this episode:
Object-Oriented Programming (OOP) in Python 3
ScriptedForms
MongoDB to add multi-document transactions and ACID
Python packaging pitfalls
Blogging principles
pipenv is officially official
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/66
2/23/2018 • 21 minutes, 43 seconds
#65 Speed of your import statements affecting performance?
Topics covered in this episode:
pygal : Simple Python Charting
Thoughts on becoming a self-taught programming
How to speed up Python application startup time (timing imports in 3.7)
AnPyLar - The Python web front-end framework
Migrating to Python 3 with pleasure
Moving to Python 3
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/65
2/14/2018 • 27 minutes, 7 seconds
#64 The GUI phoenix rises with wxPython
Topics covered in this episode:
* wxPython 4,* Pheonix is now live and supports Python 3
typeshed
Coverage 4.5 adds configurator plug-ins
Python integrated into Unreal Engine
Python 3.7.0b1 : Beta means we should be testing it!!!
* Releases abound!*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/64
2/9/2018 • 21 minutes, 1 second
#63 We're still on a desktop GUI kick
Topics covered in this episode:
A brief tour of Python 3.7 data classes
SQLite [The Databaseology Lectures - CMU Fall 2015]
dryable : a useful dry-run decorator for python
PEP Explorer - Explore Python Enhancement Proposals
TKInter Tutorial
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/63
2/1/2018 • 21 minutes, 12 seconds
#62 Wooey and Gooey are simple Python GUIs
Topics covered in this episode:
Dan Bader takes over Real Python
* Still more Python GUIs*
Python’s misleading readability
warp2 access
Help! My tests can’t see my code!
Cement - Framework for CLI
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/62
1/26/2018 • 28 minutes, 41 seconds
#61 On Being a Senior Engineer
Topics covered in this episode:
PEP 412's dict key sharing for classes
Python Hunter
Ten Things I Wish I’d Known About bash
Snakefooding Python Code For Complexity Visualization
On Being a Senior Engineer
* Python UI frameworks*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/61
1/16/2018 • 22 minutes, 22 seconds
#60 Don't dismiss SQLite as just a starter DB
Topics covered in this episode:
Who's at nine?
Retiring Python as a teaching language
Don't dismiss SQLite as just a starter DB
Chalice: Python Serverless Microframework for AWS
Fastest way to uniquely a list in Python >=3.6
* PyTexas and PyCon AU vidoes are up*
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/60
1/11/2018 • 26 minutes, 29 seconds
#59 Instagram disregards Python's GC (again)
Topics covered in this episode:
gc.freeze() and Copy-on-write friendly Python garbage collection
SpeechPy - A Library for Speech Processing and Recognition
PyBites Code Challenges: Bites of Py
How big is the Python Family
Dramatiq: simple task processing
Controlling Python Async Creep
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/59
1/5/2018 • 25 minutes, 39 seconds
#58 Better cache decorators and another take on type hints
Topics covered in this episode:
Instagram open sources MonkeyType
cachetools
Going Fast with SQLite and Python
* The graphing calculator that makes learning math easier.*
Installing Python Packages from a Jupyter Notebook
Videos from PyConDE 2017 are online
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/58
12/26/2017 • 15 minutes, 27 seconds
#57 Our take on Excel and Python
Topics covered in this episode:
Testing Python 3 and 2 simultaneously with retox
Robo 3T / RoboMongo
regular expressions
MongoEngine
Introducing PrettyPrinter for Python
Excel and Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/57
12/21/2017 • 15 minutes, 48 seconds
#56 The pendulum of time swings beautifully in PyPI
Topics covered in this episode:
Pendulum for datetimes
Flask asynchronous background tasks with Celery and Redis
Building a Simple Web App With Bottle, SQLAlchemy, and the Twitter API
Python extension for VSCode updated, now brought to you by Microsoft
A Comprehensive Guide To Web Design
Requestium
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/56
12/14/2017 • 16 minutes, 29 seconds
#55 Flask, Flask, Flask, 3x Flask
Topics covered in this episode:
Django 2.0 Released
The Big Ol' List of Rules
requests-staticmock
PEP 557 -- Data Classes have been approved
Quart: 3x faster Flask
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/55
12/7/2017 • 20 minutes, 18 seconds
#54 PyAnnotate your way to the future
Topics covered in this episode:
The PSF awarded $170,000 grant from Mozilla Open Source Program to improve sustainability of PyPI
Dropbox releases PyAnnotate
pytest-annotate is now open-source!
Run Python script as systemd service
pytest 3.3.0 released
Why d = {} is faster than d = dict()
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/54
11/29/2017 • 18 minutes, 51 seconds
#53 Getting started with devpi and Git Virtual FS
Topics covered in this episode:
Exploring Line Lengths in Python Packages
NumPy: Plan for dropping Python 2.7 support
How to Learn Pandas
Microsoft and GitHub team up to take Git virtual file system to macOS, Linux
Getting started with devpi
Marketing-for-Engineers
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/53
11/22/2017 • 22 minutes, 10 seconds
#52 Call your APIs with uplink and test them in the tavern
Topics covered in this episode:
Restful API testing with Tavern
Uplink
Using json-schema for REST API endpoint tests
Live coding to music!
Weekly Python Chat
10 common beginner mistakes in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/52
11/16/2017 • 21 minutes, 40 seconds
#51 How to make your code 80 times faster
Topics covered in this episode:
Exploring United States Policing Data with Python
How to make your code 80 times faster
Giving Open-Source Projects Life After a Developer's Death
Solar Powered Internet Connected Lawn Sprinkler Project
Talk MicroPython and Open Source Hardware at Adafruit: https://talkpython.fm/108
Some New Python Books
Anaconda Distribution 5.0 released
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/51
11/9/2017 • 21 minutes, 33 seconds
#50 Bundling , shipping, and protecting Python applications
Topics covered in this episode:
Think Like a Pythonista
Serpent.AI - Game Agent Framework
MkDocs
PyInstaller 3.3 released
PEX: A library and tool for generating .pex (Python EXecutable) files
Using Cython to protect a Python codebase
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/50
11/2/2017 • 19 minutes, 17 seconds
#49 Your technical skills are obsolete: now what?
Topics covered in this episode:
* Conference videos for DjangoCon 2017 and PyGotham 2017*
* Python 3.6.3 released on Tue. All machines at FB are already running it (3 days)*
Your technical skills are obsolete: now what?
Visualizing Garbage Collection Algorithms
pathlib — Filesystem Paths as Objects
LUMINOTH: Open source Computer Vision toolkit
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/49
10/25/2017 • 25 minutes, 57 seconds
#48 Garbage collection and memory management in Python
Topics covered in this episode:
The Python Graph Gallery
pynesis
Things you need to know about garbage collection in Python
* WSGI Is Not Enough Anymore,* part 1 and part 2
Queues in Python
Using Reflection: A Podcast About Humans Engineering
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/48
10/19/2017 • 17 minutes, 50 seconds
#47 PyPy now works with way more C-extensions and parking your package safely
Topics covered in this episode:
WTF Python?
Python Exercises
Exploiting misuse of Python's "pickle"
A Complete Beginner's Guide to Django
pypi-parker
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/47
10/12/2017 • 16 minutes, 44 seconds
#46 Spicy lecture notes and unicorn console spinners
Topics covered in this episode:
Scipy lecture notes
Building a desktop notification tool for Linux using python
Alice in Python projectland
How to teach technical concepts with cartoons
Halo: Beautiful terminal spinners in Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/46
10/5/2017 • 16 minutes, 51 seconds
#45 A really small web API and OS-level machine learning
Topics covered in this episode:
pico
High Sierra ships, first major OS with machine learning built in?
A guide to logging in Python
Let me introduce: slots
pipenv revisited
Stack Overflow gives an even closer look at developer salaries
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/45
9/29/2017 • 19 minutes, 33 seconds
#44 pip install malicious-code
Topics covered in this episode:
Ten Malicious Libraries Found on PyPI
* PyPI migration to Warehouse is in progress*
Live coding in a presentation
* Notable REST / Web Frameworks*
tox
* flake8-tidy-imports* deprecated imports
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/44
9/20/2017 • 26 minutes, 35 seconds
#43 Python string theory, v2
Topics covered in this episode:
future-fstrings
The Fun of Reinvention
Sound Pattern Recognition with Python
PEP 550: Execution Context
Intro to Threads and Processes in Python
Alternative filesystems for Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/43
9/14/2017 • 18 minutes, 48 seconds
#42 Behold: The Python 2 death clock
Topics covered in this episode:
What Kenneth Did Last Week (well, recently)
Python 2 Death Clock
Small Functions considered Harmful
Why Python 3
EANABs
The Incredible Growth of Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/42
9/8/2017 • 23 minutes, 52 seconds
#41 Python Concurrency From the Ground Up and Caring for our Community
Topics covered in this episode:
lolviz
Odo for data transforms
Python Concurrency From the Ground Up
FAT Python: the next chapter in Python optimization
sshuttle
Node.js forks again – this time it's a war of words over codes of conducts
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/41
8/31/2017 • 23 minutes, 21 seconds
#40 Packet Manipulation with Scapy
Topics covered in this episode:
DevOps Automation Tool: Ansible
Python Practices for Efficient Code: Performance, Memory, and Usability
Packet Manipulation Program: Scapy
Using Headless Chrome with Selenium
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/40
8/24/2017 • 22 minutes, 59 seconds
#39 The new PyPI
Topics covered in this episode:
[more] [The New PyPI](https://pypi.org/)
CircuitPython Snakes its Way onto Adafruit Hardware
Dataclasses
Pandas in a Nutshell
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/39
8/17/2017 • 43 minutes, 6 seconds
#38 Hacking Classic Nintendo Games with Python
Topics covered in this episode:
[more]* Hacking Classic Nintendo Games with Python *
Bokeh
Mosh (mobile shell)
(bonus) Twilio Voices
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/38
8/9/2017 • 24 minutes, 57 seconds
#37 Rule over the shells with Sultan
Topics covered in this episode:
[more] [New URL for Python Developer’s Guide](https://devguide.python.org/)
Sultan: Command and Rule Over Your Shell
Flake8Lint
Magic Wormhole
Python Virtual Environments Primer
How Rust can replace C, with Python's help
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/37
8/2/2017 • 18 minutes, 15 seconds
#36 Craft Your Python Like Poetry and Other Musings
Topics covered in this episode:
Craft Your Python Like Poetry
The Fedora Python Classroom Lab
How a VC-funded company is undermining the open-source community
Newspaper Python Package
IEEE Spectrum: The Top Programming Languages 2017
SciPy 2017 videos are out
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/36
7/28/2017 • 22 minutes, 34 seconds
#35 How developers change programming languages over time
Topics covered in this episode:
[more] [Python Quirks](https://medium.com/@PhilipTrauner/python-quirks-comments-324bbf88612c) : Comments
Python 3.6.2 is out!
Contributing to Open Source Projects: Imposter Syndrome Disclaimer
The Dark Secret at the Heart of AI
Arrange Act Assert pattern for Python developers
Analyzing GitHub, how developers change programming languages over time
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/35
7/19/2017 • 24 minutes, 44 seconds
#34 The Real Threat of Artificial Intelligence
Topics covered in this episode:
Easy Python logging with daiquiri
The Real Threat of Artificial Intelligence
The three laws of config dynamics
Five Tips To Get You Started With Jupyter Notebook
Cost of Coupling Versus Cost of De-coupling
100 Days of Code at PyBites
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/34
7/13/2017 • 22 minutes, 57 seconds
#33 You should build an Alexa skill
Topics covered in this episode:
Linting as Lightweight Defect Detection for Python
You should build an Alexa skill
RISE
Closer
Checklist for Python libraries APIs
Fades
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/33
7/6/2017 • 17 minutes, 49 seconds
#32 8 ways to contribute to open source when you have no time
Topics covered in this episode:
[more] Introducing Dash
Keeping Python competitive
PyPI Quick and Dirty
Minimal examples of data structures and algorithms in Python
8 ways to contribute to open source when you have no time
NumPy receives first ever funding, thanks to Moore Foundation
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/32
7/1/2017 • 23 minutes, 10 seconds
#31 You should have a change log
Topics covered in this episode:
[more] [TinyMongo](https://github.com/schapman1974/tinymongo)
A dead simple Python data validation library
PuDB
Analyzing Django requirement files on GitHub
Changelogs
Understanding Asynchronous Programming in Python
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/31
6/21/2017 • 21 minutes, 50 seconds
#30 You are not Google and other ruminations
Topics covered in this episode:
Problems and Solutions are different at different scales
Introducing NoDB - a Pythonic Object Store for S3
Elizabeth for mock data
What’s New In Python 3.7
* Hypothesis Testing*
Heroku switching default to v3.6.1
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/30
6/15/2017 • 24 minutes, 37 seconds
#29 Responsive Bar Charts with Bokeh, Flask, and Python 3
Topics covered in this episode:
Responsive Bar Charts with Bokeh, Flask and Python 3
Zappa Serverless Python Web Services
Using a local cache for pip packages
Building game AI using ML: Working with TensorFlow, Keras, and the Intel MKL in Python
Debug Test Failures With Pdb
Monitoring my VOIP provider with Home Assistant
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/29
6/8/2017 • 23 minutes, 4 seconds
#28 The meaning of _ in Python
Topics covered in this episode:
[more] pep8.org: PEP 8 — the Style Guide for Python Code
Tokio: Asyncio event loop written in Rust language
Python Boilerplate
Instagram switching to Python 3 on one branch
The Meaning of Underscores in Python
The future is looking bright for Python
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/28
6/2/2017 • 20 minutes, 59 seconds
#27 The PyCon 2017 recap and functional Python
Topics covered in this episode:
How to Create Your First Python 3.6 AWS Lambda Function
How to Publish Your Package on PYPI
Coconut: Simple, elegant, Pythonic functional programming
Choose a licence
Python for Scientists and Engineers
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/27
5/25/2017 • 19 minutes, 8 seconds
#26 How have you automated your life, or CLI, with Python?
Topics covered in this episode:
* Two part series on interactive terminal applications*
How have you automated your life with python?
Spelling with Elemental Symbols
IDE's for beginners
PDF Plumber
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/26
5/19/2017 • 19 minutes, 44 seconds
#25 Could we have more in-database machine learning please?
Topics covered in this episode:
Python in SQL Server 2017: enhanced in-database machine learning
Stack Overflow Trends tool
We asked 20,000 people who they are and how they’re learning to code
Beeware: A request for your help
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/25
5/12/2017 • 17 minutes, 53 seconds
#24 I have a local PyPI server and so do you!
Topics covered in this episode:
* Learning Python Series by Doug Farrell, published on dbader.org*
Geeking out in your older years
Local package store
Modifying the Python language in 6 minutes
colorful
Five steps to add the bling factor your Python package
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/24
5/3/2017 • 19 minutes, 29 seconds
#23 Can you grok the GIL?
Topics covered in this episode:
Grok the GIL - How to write fast and thread-safe Python
The New NBA by Mark Cuban
Ian Cordasco gets a Community Service Award from PSF
Release of IPython 6.0
Testing & Packaging
AWS Lambda adds Python 3.6 support
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/23
4/26/2017 • 19 minutes, 34 seconds
#22 PYTHONPATH considered harmful
See the full show notes for this episode on the website at pythonbytes.fm/22
4/18/2017 • 15 minutes, 50 seconds
#21 Python has a new star framework for RESTful APIs
See the full show notes for this episode on the website at pythonbytes.fm/21
4/13/2017 • 20 minutes, 57 seconds
#20 Finding similar but not identical images in 128 bits via Python
See the full show notes for this episode on the website at pythonbytes.fm/20
4/5/2017 • 23 minutes, 48 seconds
#19 Put your Python dictionaries in a box and apparently Python is really wanted
See the full show notes for this episode on the website at pythonbytes.fm/19
3/27/2017 • 19 minutes, 37 seconds
#18 Python 3 has some amazing types and you can now constructively insult your shell!
See the full show notes for this episode on the website at pythonbytes.fm/18
3/21/2017 • 18 minutes, 27 seconds
#17 Google's Python is on fire and Simon says you have CPU load Pythonically
See the full show notes for this episode on the website at pythonbytes.fm/17
3/18/2017 • 19 minutes, 31 seconds
#16 Postmodern Python and Open-source Financial Awards
See the full show notes for this episode on the website at pythonbytes.fm/16
3/7/2017 • 19 minutes, 15 seconds
#15 Digging into Python packaging
Topics covered in this episode:
#6 Michael: Talk Python past, present, and future with Guido van Rossum
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/15
2/28/2017 • 16 minutes, 4 seconds
#14 Lots of Python style and Python 3000 is 3000 days old
Topics covered in this episode:
Tiny Python 3.6 Notebook - Matt Harrison
Oh no! This package is Python 2 only - Anthony Shaw
Elements of Python Style - Andrew Montalenti
Python 3 was exactly 3000 days old this past Sunday
mongoaudit
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/14
2/22/2017 • 15 minutes, 39 seconds
#13 Python making the move to GitHub and Dropbox is stepping back from Pyston
See the full show notes for this episode on the website at pythonbytes.fm/13
2/14/2017 • 18 minutes, 6 seconds
#12 Expanding your Python mental model and serving millions of requests per second with Python
Topics covered in this episode:
Why Learn Python? Here Are 8 Data-Driven Reasons by Dan Bader
A million requests per second with Python
Python Top 10 Articles for the Past Year (v.2017)
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/12
2/7/2017 • 19 minutes, 4 seconds
#11 Django 2.0 is dropping Python 2 entirely, pipenv for profile functionality, and Pythonic home automation
See the full show notes for this episode on the website at pythonbytes.fm/11
1/31/2017 • 20 minutes, 55 seconds
#10 Dismissing Python's Garbage Collection, PyPI Name Reservations, and Hackers Exfiltrate US Government Data to Save Itself
See the full show notes for this episode on the website at pythonbytes.fm/10
1/23/2017 • 25 minutes, 45 seconds
#9 Walking with async coroutines, diving deep into requests, and a universe of options (for AIs)
Topics covered in this episode:
Talk CPython Internals and Learning Python with pythontutor.com
Talk Write an Excellent Programming Blog
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/9
1/17/2017 • 23 minutes, 39 seconds
#8 Python gets Grumpy, avoiding burnout, Postman for API testing and more
See the full show notes for this episode on the website at pythonbytes.fm/8
1/10/2017 • 20 minutes, 48 seconds
#7 Python 3.6 is out, Sanic is a blazing web framework, and are failing our open source infrastructure?
See the full show notes for this episode on the website at pythonbytes.fm/7
1/4/2017 • 21 minutes, 13 seconds
#6 Python 3.6 is going to be awesome, Kite: your friendly co-developing AI
See the full show notes for this episode on the website at pythonbytes.fm/6
12/12/2016 • 19 minutes, 33 seconds
#5 Legacy Python vs Python and why words matter and Request's 5 Whys retrospective
See the full show notes for this episode on the website at pythonbytes.fm/5
12/5/2016 • 18 minutes, 30 seconds
#4 Python 3 is just fine for beginners thank you, q is awesome for debugging, and more
See the full show notes for this episode on the website at pythonbytes.fm/4
11/29/2016 • 21 minutes, 8 seconds
#3 Python 3.6 is coming, and it's awesome plus superior text processing with Pynini
Topics covered in this episode:
Shipped: Parsing horrible things with Python
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/3
11/23/2016 • 29 minutes, 41 seconds
#2 PyCon, awesome python, python developer job prospects, and more
Topics covered in this episode:
T& Raphael Pierzina, on cookie cutter, pytest 3.0, and contributing to both: http://pythontesting.net/podcast/24-pytest-raphael-pierzina/
T& Dave Hunt, recorded. Hope to get that out this week. We talk about his work on Selenium, pytest-selenium, pytest-html, tox, and how Mozilla does some of it's testing with these tools.
Extras
Joke
Extras
Joke
See the full show notes for this episode on the website at pythonbytes.fm/2
11/14/2016 • 17 minutes, 38 seconds
#1 Intro to the show and pip 9 is out!
See the full show notes for this episode on the website at pythonbytes.fm/1