Would you like to get more practice working with APIs in Python? How about exploring the globe using the data from OpenStreetMap? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.

We share an article from the Pybites blog about building queries using the Overpass API for OpenStreetMap. The post explores the data structures, tags, query formats, and how to use Overpass in Python.

Christopher discusses a Real Python article by recent guest Stephen Gruppetta about lazy evaluation in Python. The piece covers the advantages of generator expressions or functions and the potential disadvantages of using lazy versus eager evaluation methods.

We also share several other articles and projects from the Python community, including a news roundup, handling control-c in asyncio, preventing data leakage in pandas and scikit-learn, discussing the Django developer survey results, asking developers why they aren’t shipping faster, using UV to install into isolated environments, and a couple of tools for retrying in Python.

This episode is sponsored by Sentry.

Course Spotlight: How to Set Up a Django Project

In this course, you’ll learn the necessary steps that you’ll need to take to set up a new Django project. You’ll learn the basic setup for any new Django project, which needs to happen before programming the specific functionality of your project.

Topics:

  • 00:00:00 – Introduction
  • 00:02:33 – PyPy v7.3.16 Release
  • 00:02:54 – PEP 745: Python 3.14 Release Schedule
  • 00:03:31 – The BASIC programming language turns 60
  • 00:05:24 – Asyncio Handle Control-C (SIGINT)
  • 00:07:37 – OpenStreetMaps, Overpass API and Python
  • 00:11:53 – What’s Lazy Evaluation in Python?
  • 00:16:10 – Sponsor: Sentry
  • 00:17:17 – How to Prevent Data Leakage in pandas & scikit-learn
  • 00:24:09 – Django Developers Survey 2023 Results
  • 00:33:07 – Video Course Spotlight
  • 00:34:21 – I Asked 100 Devs Why They Aren’t Shipping Faster?
  • 00:47:03 – pipxu: Install in Isolated Environments Using UV
  • 00:49:05 – tenacity: Retrying Library for Python
  • 00:50:04 – stamina: Production-Grade Retries for Python
  • 00:52:00 – Thanks and goodbye

News:

Show Links:

  • Asyncio Handle Control-C (SIGINT) – When the user presses CTRL-C on the keyboard, the OS raises an interrupt signal to your program. When writing concurrent code this can get complicated as the signal goes to the process. This article shows you how to handle capturing CTRL-C elegantly when using asyncio.
  • OpenStreetMaps, Overpass API and Python – OpenStreetMaps (OSM) is an open source mapping project that allows people to browse the world map and to plan routes. Not only does it have the expected web interface, but it also has an API known as Overpass. This article shows you two ways to use Python to query Overpass.
  • What’s Lazy Evaluation in Python? – This tutorial explores lazy evaluation in Python and looks at the advantages and disadvantages of using lazy and eager evaluation methods. By the end of this tutorial, you’ll clearly understand which approach is best for you, depending on your needs.
  • How to Prevent Data Leakage in pandas & scikit-learn – How you impute missing values in machine learning data sets can affect the quality of your training. This article teaches you what data leakage is and what steps you should take to avoid it.

Discussion

Projects:

Additional Links:

Level up your Python skills with our expert-led courses:

Support the podcast & join our community of Pythonistas