Claim Ownership


Subscribed: 0Played: 0


Think about the different APIs and databases your application works with. Every one of them requires either an API key or a database connection string that itself contains a password. How do you let your application access this sensitive information without storing it in source code or putting in other compromising locations? We have Glyph Lefkowitz on the show to share his security fable as well as just good advice for keeping secrets out of Python code.
Large language models and chat-based AIs are kind of mind blowing at the moment. Many of us are playing with them for working on code or just as a fun alternative to search. But others of us are building applications with AI at the core. And when doing that, the slightly unpredictable nature and probabilistic nature of LLMs make writing and testing Python code very tricky. Enter promptimize from Maxime Beauchemin and Preset. It's a framework for non- deterministic testing of LLMs inside our applications. Let's dive inside the AIs with Max.
If you're looking for fun data sets for learning, for teaching, maybe a conference talk, or even if you're just really into them, sports offers up a continuous stream of rich data that many people can relate to. Yet, accessing that data can be tricky. Sometimes it's locked away in obscure file formats. Other times, the data exists but without a clear API to access it. On this episode, we talk about PySport - something of an awesome list of a wide range of libraries (mostly but not all Python) for accessing a wide variety of sports data from the NFL, NBA, F1, and more. We have Koen Vossen, maintainer of PySport to talk through some of the more popular projects.
The release of Pydantic 2.0, its partial rewrite in Rust, and its refactoring into Pydantic core and top-level Pydantic in Python is big news. In fact, the alpha of Pydantic 2 was just released. Of course, these changes will have potentially wide ranging (and positive!) effects on libraries that are built upon Pydantic such as FastAPI, Beanie, and others. That's why this chance I had to catch up with Samuel Colvin from Pydantic and Sebastián Ramírez from FastAPI together, live from PyCon 2023. It's a super fun and wide ranging interview I'm sure you'll enjoy. Plus, there is a bit of an easter egg in the middle.
At PyCon 2023, there was a section of the expo floor dedicated to new Python- based companies called Startup Row. I wanted to bring their stories and the experience of talking with these new startups to you. So in this episode, we'll talk with founders from these companies for 5 to 10 minutes each.
Did you make this year's PyCon event in the US? There was a lot of excitement this time around in Salt Lake City. In this episode I'll bring you a bunch of experiences we had this year. It starts where frequent guest Jay Miller turns the tables and interviews me at the Microsoft booth on the expo hall floor in front of a live audience. Then you'll hear from Mario Munoz, Nick Muoh, Chris Williams, Ray McLendon, and Sean Tibor about their time at the conference.
What if we distributed CPython, the runtime, in the same way we distributed Python packages - as prebuilt binary wheels that only need to be downloaded and unzipped to run? For starters, that would mean we could ship and deploy Python apps without worrying whether Python itself is available or up-to-date on the platform. Nathaniel Smith has just proposed a PEP to do just that, PEP 711. And we'll dive into that with him next.
What advice would you give someone just getting into Python? What did you learn over time through hard work and a few tears that would have really helped you? It's a fun game to play and we have Jason McDonald on the podcast to give us his take. Enjoy!
AI has taken the world by storm. It's gone from near zero to amazing in just a few years. We have ChatGPT, we have Stable Diffusion. But what about Jupyter Notebooks and pandas? In this episode, we meet Justin Waugh, the creator of Sketch. Sketch adds the ability to have conversational AI interactions about your pandas data frames (code and data). It's pretty powerful and I know you'll enjoy the conversation.
We all know that privacy regulations are getting more strict. And that many of our users no longer believe that "privacy is dead". But for even medium-sized organizations, actually tracking how we are using personal info in our myriad of applications and services is very tricky and error prone. On this episode, we have Thomas La Piana from the Fides project to discuss privacy in our applications and how Fides can enforce and track privacy requirements in your Python apps.
In recent years, there has been a lot of experimenting how we work with dependencies and external libraries for our Python code. There is pip, pip- tools, Poetry, pdm, pyenv, pipenv, Hatch and others workflows. We dove into this deeply back on episode 406: Reimagining Python's Packaging Workflows. We're back with Ofek Lev to take a deeper look at Hatch.
If you're like most people, the simplicity and easy of getting started is a big part of pytest's appeal. But beneath that simplicity, there is a lot of power and depth. We have Brian Okken on this episode to dive into his latest pytest tips and tricks for beginners and power users.
The great power of Python is its over 400,000 packages on PyPI to serve as building blocks for your app. How do you get those needed packages on to your dev machine and managed within your project? What about production and QA servers? I don't even know where to start if you're shipping built software to non-dev end users. There are many variations on how this works today. And where we should go from here has become a hot topic of discussion. So today, that's the topic for Talk Python. I have a great panel of guests: Steve Dower, Pradyun Gedam, Ofek Lev, and Paul Moore.
So you know about dependencies and testing, right? If you're talking to a DB in your app, you have to decide how to approach that with your tests. There are lots of solid options you might pick and they vary by goals. Do you mock out the DB layer for isolation or do you use a test DB to make it as real as possible? Do you just punt and use the real DB for expediency? What if your dependency was a huge array of radio telescopes and a rack of hundreds of bespoke servers? That's the challenge on deck today were we discuss testing radio astronomy with pytest with our guest James Smith. He's a Digital Signal Processing engineer at the South African Radio Astronomy Observatory and has some great stories and tips to share.
#404: Clean Code in Python

#404: Clean Code in Python


Clean code is one of those aspects of your programming career that's easy to put on the back burner (sometimes by management more than yourself). But it's important in the short term for writing more debuggable and readable code. And important in the long run for avoiding having your program take on the dreaded "legacy code" moniker. We're fortunate to have Bob Belderbos back on the show. He's been thinking and writing about clean code and Python a lot lately and we'll dive into a bunch of tips you can use right away to make your code cleaner.
Imagine a world with free and unlimited clean energy. That's the musings of a great science fiction story. But nuclear fusion (the kind that powers the sun) has always been close at hand, we see the sun every day, and yet impossibly far away as a technology. We took a major step towards this becoming a reality with the folks at the Lawrence Livermore National Labratory in the US achieved "ignition" where they got significantly more energy out than they put in. And Python played a major role in this research and experiment. We have Jay Salmonson here to give us a look at the science and the Python code of this discovery.
When you think about processing tabular data in Python, what library comes to mind? Pandas, I'd guess. But there are other libraries out there and Polars is one of the more exciting new ones. It's built in Rust, embraces parallelism, and can be 10-20x faster than Pandas out of the box. We have Polars' creator, Ritchie Vink here to give us a look at this exciting new data frame library.
At some point, you've probably migrated an app from one framework or major runtime version to another. For example, Django to Flask, Python 2 to Python 3, or even Angular to Vue.js. This can be a big challenge. If you had 100s of active devs and millions of lines of code, it's a huge challenge. We have Ben Bariteau from Yelp here to recount their story moving 3.8M lines of code from Python 2 to Python 3. But this is not just a 2-to-3 story. It has many lessons on how to migrate code in many situations. There are plenty of gems to take from his experience.
Our code quality tools (linters, test frameworks, and others) play an important role in keeping our code error free and conforming to the rules our teams have chosen. But when these tools become sluggish and slow down development, we often avoid running them or even turn them off. On this episode, we have Charlie Marsh here to introduce Ruff, a fast Python linter, written in Rust. To give you a sense of what he means with fast, common Python linters can take 30-60 seconds to lint the CPython codebase. Ruff takes 300 milliseconds. I ran it on the 20,000 lines of Python code for our courses web app at Talk Python Training, and it was instantaneous. It's the kind of tool that can change how you work. I hope you're excited to learn more about it.
#399: Monorepos in Python

#399: Monorepos in Python


Monorepos are contrary to how many of us have been taught to use source control. To start a project or app, the first thing we do is create a git repo for it. This leads to many focused and small repositories. A quick check of my GitHub account shows there are 179 non-fork repositories. That's a lot but I think many of us work that way. But it's not like this with monorepos. There you create one (or a couple) repositories for your entire company. This might have 100s or 1,000s of employees working on multiple projects within the single repo. Famously, Google, Meta, Microsoft, and Airbnb all employ very large monorepos with varying strategies of coordination.
Comments (35)



Dec 25th

Vlad Bezden

Great podcast! The best part was about deployment tools py2app and PyInstaller. That is exactly what I was looking for. After listening about it, I just used PyInstaller at the company and it worked like a charm. Thank you for doing it and keep up a good work!

Oct 4th

Javad Hamidi

voice quality is terrible

Jul 29th

Hamza Senhaji Rhazi

this episode is gold, the article submitted with it is gold too

Apr 27th

Joshua Tasker

yo so I'm barely starting to get into this or I really want to learn how to code what do you recommend for me to start I have very little knowledge just being honest

Feb 10th


nix the intro music

Feb 1st

Antonio Andrade

It was fun, thanks for having me over

Dec 28th



Feb 24th

Magnus Lamont

Carlton's talk is on YouTube as "DjangoCon 2019 - Using Django as a Micro-Framework: Hacking on the HTTP handlers.. by Carlton Gibson" Couldn't find it in the show notes.

Feb 3rd

Kit Macleod


Dec 31st

Pat Decker

Michael, At the end of each episode you could ask "Is it Gif or Jif?" Just for the fun of it.

Sep 9th

Carl Littlejohns

great podcast - testing your tests all night (without even being there) - some good coding discipline there for us noobs

Jun 20th

J Bit

great episode! I've been using Python on Windows for the past two years and I love it. I've never had any problems specific to Windows.

Dec 19th
Reply (1)

Hossein Fakhari

at the 53:12 what is the package name? pip install eo? eil?

Sep 16th

Dan Stromberg

Pyodide is undeniably cool. There's also a micropython port to wasm that might make sense for basic webapps.

May 18th

Antonio Andrade

ummm. But the mic sounds terrible hahah

Apr 22nd

Kelechi Emenike

you remind me of me! excellent Googler, master of science, business-related experience, passionate about teaching... the only thing I've not done like you is actually create my own course... you wanna take on a mentee? I'm game please ^--^

Apr 6th

Patryk Siewiera

I listen for a year, I fell like Michael Kennedy is my best friend, im so grateful for showing me that excitement and possibilities with this language, this is my new road in life. thanks so much 10/10

Mar 7th



Feb 16th

Ketan Ramteke

Stackoverflow users are really mean but I still love it, there is no better alternative to it and the meanness keeps bad contents at bay. So it's good to be mean I guess.

Dec 11th
Download from Google Play
Download from App Store