Real Python Podcast Episode #164 Title Artwork

Episode 164: Constructing Python Library APIs & Tackling Jinja Templating

The Real Python Podcast

Jul 14, 2023 50m

What principles should you consider when designing a Python library? How do you construct a library API that’s understandable and easy to use? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.

Episode Sponsor:

We share an article about building library APIs. The piece provides advice for package structure, naming, error handling, and more. The author guides you toward Pythonic principles by comparing clunky vs elegant design examples.

Christopher discusses his recent video course on Jinja templating. The course covers creating text files with programmatic content and employing rich templates to structure the front end of Python web applications.

We cover several other articles and projects from the Python community, including several news updates, reasons why membership tests are fast for the range() function, CLI tools hidden in the Python standard library, a thread about the right way to install Python, recipes for using the Polars library, and a project for feature flags within Django.

This week’s episode is brought to you by Snyk.


  • 00:00:00 – Introduction
  • 00:02:16 – PyLadies Conference (Dec 2023) Call for Volunteers
  • 00:02:32 – PSF Board Election Results
  • 00:03:47 – PSF Announces New Security Developer in Residence
  • 00:04:39 – Django Security Releases Issued
  • 00:04:50 – Deprecation of bdist_egg Uploads to PyPI
  • 00:05:54 – Why Are Membership Tests So Fast for range() in Python?
  • 00:11:51 – CLI Tools Hidden in the Python Standard Library
  • 00:15:59 – Sponsor: Snyk
  • 00:16:49 – Designing Pythonic Library APIs
  • 00:28:27 – Jinja Templating
  • 00:32:49 – Kill a Developer in 4 Words or Less
  • 00:37:28 – Video Course Spotlight
  • 00:38:51 – What is “the right way” to install Python on a new M2 MacBook?
  • 00:44:11 – polars-cookbook: Recipes for Using Python’s Polars Library
  • 00:46:48 – waffle: Feature Flags for Django
  • 00:49:54 – Thanks and goodbye


Show Links:

  • Why Are Membership Tests So Fast for range() in Python? – In Python, range() is most commonly used in for loops. However, ranges have some other use cases too, as they share many properties with lists. In this tutorial, you’ll explore why it’s so fast to perform a membership test on a Python range.
  • CLI Tools Hidden in the Python Standard Library – There are several modules in Python that are directly callable from the command line, including the ability to gzip and pretty-print JSON. This article introduces you to what options are available and how Simon discovered them.
  • Designing Pythonic Library APIs – This article summarizes principles that Ben has found useful when designing Python library APIs. Topics include structure, naming, error handling, and type annotations.
  • Jinja Templating – With Jinja, you can build rich templates that power the front end of your web applications. But you can use Jinja without a web framework running in the background. Anytime you want to create text files with programmatic content, Jinja can help you out.



Additional Links: