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.
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