The Real Python Podcast

Querying OpenStreetMaps via API & Lazy Evaluation in Python

05.10.2024 - By Real PythonPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

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:

PyPy v7.3.16 Release

PEP 745: Python 3.14 Release Schedule

The BASIC programming language turns 60 - Ars Technica

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

Django Developers Survey 2023 Results

I Asked 100 Devs Why They Aren’t Shipping Faster? – Daksh asked 100 developers why they aren’t shipping faster and this blog post shares what he learned. Problems include dependency bugs, overly complicated code bases, waiting on requirements, and more.

Projects:

pipxu: Install in Isolated Environments Using UV

tenacity: Retrying Library for Python

stamina: Production-Grade Retries for Python

Additional Links:

NASA’s Voyager 1 spacecraft finally phones home after 5 months of no contact - Space

Python & APIs: A Winning Combo for Reading Public Data – Real Python

Loading Data from OpenStreetMap with Python and the Overpass API - Nikolai Janakiev

Leakage (machine learning) - Wikipedia

Djangonaut Space - Where Contributors launch!

Debris That Fell Off a Boeing 767 Found Outside the House of Lawyer

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

Get Started With Django: Build a Portfolio App

Python Generators 101

How to Set Up a Django Project

Support the podcast & join our community of Pythonistas

More episodes from The Real Python Podcast