Real Python Podcast Episode #204 Title Artwork

Episode 204: Querying OpenStreetMaps via API & Lazy Evaluation in Python

The Real Python Podcast

May 10, 2024 53m

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.

Episode Sponsor:

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.

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: