The Real Python Podcast

Constructing Python Library APIs & Tackling Jinja Templating

07.14.2023 - By Real PythonPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

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.

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.

Course Spotlight: 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.

Topics:

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

News:

PyLadies Conference (Dec 2023) Call for Volunteers

PSF Board Election Results

PSF Announces New Security Developer in Residence

I Am the First PSF Security Developer-in-Residence – Seth was recently hired as the first security developer in residence at the PSF. His blog post talks about what his responsibilities are and how he defines success for the position.

Deputy CPython Developer in Residence - Python Software Foundation - Career Page

Django Security Releases Issued: 4.2.3, 4.1.10, and 3.2.20

Deprecation of bdist_egg Uploads to PyPI – PEP 715 has been accepted and as of August 1, 2023, the .egg format will no longer be accepted as an upload. Existing eggs on PyPI will remain in place.

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.

Discussion:

Kill a Developer in 4 Words or Less - Twitter

What is “the right way” to install Python on a new M2 MacBook? - Twitter

Projects:

polars-cookbook: Recipes for Using Python’s Polars Library

waffle: Feature Flags for Django

Additional Links:

PSF Board of Directors Nominees - 2023 - YouTube

pandas-cookbook: Recipes for using Python’s pandas library

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

Get Started With Django: Build a Portfolio App

Deploy Your Python Script on the Web With Flask

Jinja Templating

Support the podcast & join our community of Pythonistas

More episodes from The Real Python Podcast