Textual UIs, Tail-Call Performance, Bidirectional Generators, and More

#673 – MARCH 18, 2025 VIEW IN BROWSER
The PyCoder’s Weekly Logo
Python Textual: Build Beautiful UIs in the Terminal
Textual is a Python library for building text-based user interfaces (TUIs) that support rich text, advanced layouts, and event-driven interactivity in the terminal. This tutorial showcases some of the ways you can design an appealing and engaging UI using Textual.
REAL PYTHON

Quiz: Python Textual: Build Beautiful UIs in the Terminal
REAL PYTHON

Performance of the Python 3.14 Tail-Call Interpreter
Prior reports of 10% speed-up from the tail-call interpreter coming in Python 3.14 may be overstated. This article breaks down where that number came from and what the reality may be.
NELSON ELHAGE

Postman AI Agent Builder Is Here: The Quickest Way to Build AI Agents. Start Building
Postman AI Agent Builder is a suite of solutions that accelerates agent development. With centralized access to the latest LLMs and APIs from over 18,000 companies, plus no-code workflows, you can quickly connect critical tools and build multi-step agents — all without writing a single line of code →
POSTMANsponsor

Binary Search as a Bidirectional Generator
Python generators support a .send() method, allowing you to receive data within the generator itself. This post talks about how to use this to implement a binary search algorithm.
RODRIGO GIRÃO SERRÃO

PSF Distinguished Service Award for Thomas Wouters
PYTHON SOFTWARE FOUNDATION

PyOhio July 26-27, Call for Papers
PRETALX.COM • Shared by Keith Murray


Articles & Tutorials


Providing Multiple Constructors in Your Python Classes
In this step-by-step tutorial, you’ll learn how to provide multiple constructors in your Python classes. To this end, you’ll learn different techniques, such as checking argument types, using default argument values, writing class methods, and implementing single-dispatch methods.
REAL PYTHON

Getting to Know Duck Typing in Python
In this video course, you’ll learn about duck typing in Python—a type system based on an object’s behavior rather than inheritance. By taking advantage of duck typing, you can create flexible and decoupled sets of Python classes that work together or independently.
REAL PYTHON course

Detect and Localize Anomalies With Intel AI, Powered by OpenVINO
Discover Anomalib, a library of ready-to-use algorithms for efficient anomaly detection. Optimized to run locally and open source, it’s designed to help you spot the odd one out. Get the code on GitHub.
INTEL CORPORATIONsponsor

Satellogic’s Open Satellite Feed
This post explores the “Satellogic EarthView” data feed, starting with determining where the satellites are, and moving to the corresponding ground imagery. The post uses a combination of Python and DuckDB to achieve its objectives.
MARK LITWINTSCHIK

The Hierarchy of Controls
This article, subtitled “how to stop devs from dropping prod” takes an idea from mechanical engineering used to ensure safety around machinery and brings it to the software world to prevent accidental destruction of data.
HILLEL WAYNE

Build a Dice-Rolling Application With Python
In this step-by-step project, you’ll build a dice-rolling simulator app with a minimal text-based user interface using Python. The app will simulate the rolling of up to six dice. Each individual die will have six sides.
REAL PYTHON

“Rules” That Terminal Programs Follow
The conventions that most terminal programs follow mean that you can more easily know how to control them. Julia’s post talks about “rules” that terminal programs tend to follow, and so should yours.
JULIA EVANS

Sustainable Coding: How Do I Apply It as a Cloud Engineer?
Choices we make as programmers effect the amount of processing power required in production and ultimately that has a carbon cost. Ed’s post talks about how he thinks about this larger picture.
ED CREWE

Font Ligatures for Your Code Editor and Terminal
A font ligature combines two characters into a single rendering, allowing “>=” to look like a single symbol. This article shows you how you can do this with common terminals and editors.
MIGUEL GRINBERG

Python Discord 2024 Survey Report
The Python Discord server does an annual survey. This page is a giant notebook showing the results for the last four years along with the code that generates the corresponding graphs.
PYTHON DISCORD

The Boolean Trap
Often when using a Boolean in an API you are making the API harder to understand. This post explains why most of the time you should use enums instead.
ENGINEER’S CODEX

Faster Branch Coverage Measurement
After nearly two years, Ned thinks this is finally ready: coverage.py can use sys.monitoring to more efficiently measure branch coverage.
NED BATCHELDER


Projects & Code


Brought to you by Real Python for Teamssponsor
Online Python training created by a community of experts. Give your team the real-world Python skills they need to succeed →

djoser: REST Implementation of Django Authentication System
GITHUB.COM/SUNSCRAPERS

html5lib-python: Parse HTML Documents and Fragments
GITHUB.COM/HTML5LIB

stumpy: Modern Time Series Analysis
GITHUB.COM/TDAMERITRADE

poetry-dockerize-plugin: Generate a Docker Image From Poetry
GITHUB.COM/NICOLOBOSCHI

opendbc: A Python API for Your Car
GITHUB.COM/COMMAAI

📆🐍 Upcoming Python Events


Weekly Real Python Office Hours Q&A (Virtual)
March 19, 2025

Creating Python Communities and Outreach
March 20 to March 21, 2025

PyData Bristol Meetup
March 20, 2025

PyLadies Dublin
March 20, 2025

PyCamp Argentina 2025
March 21 to March 25, 2025
Happy Pythoning!
Copyright © 2025 PyCoder’s Weekly, All rights reserved.
You are receiving this email because you opted in on our website at pycoders.com
Our mailing address: DevCademy Media Inc. · #720-999 West Broadway, Vancouver BC V5Z 1K5, Canada

Unsubscribe | Update Email Address

Older messages

Binary Data, Tail Calls, Pickles, and More

Tuesday, March 11, 2025

Bytes Objects: Handling Binary Data in Python #672 – MARCH 11, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo Bytes Objects: Handling Binary Data in Python In this tutorial, you'll learn about

Underscore Naming, Flask-SQLAlchemy, Kivy, and More

Tuesday, March 4, 2025

Single and Double Underscore Naming Conventions in Python #671 – MARCH 4, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo Single and Double Underscore Naming Conventions in Python In this video

Joining Strings, MongoDB in Django, Mobile Wheels, and More

Thursday, February 27, 2025

How to Join Strings in Python #669 – FEBRUARY 18, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo How to Join Strings in Python In this tutorial, you'll learn how to use Python's built-in .

pyproject.toml, DuckDB, Flet, and More

Thursday, February 27, 2025

How to Manage Python Projects With `pyproject.toml` #670 – FEBRUARY 25, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo How to Manage Python Projects With pyproject.toml Learn how to manage Python

NumPy, Compiling Python 1.0, BytesIO, and More

Friday, February 14, 2025

NumPy Techniques and Practical Examples #668 – FEBRUARY 11, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo NumPy Techniques and Practical Examples In this video course, you'll learn how to use

You Might Also Like

Software Testing Weekly - Issue 262

Tuesday, March 18, 2025

Is BDD dying? 🤔 View on the Web Archives ISSUE 262 March 18th 2025 COMMENT Welcome to the 262nd issue! Behaviour-Driven Development hasn't had much good news over the past years. First, Cucumber

JSK Daily for Mar 18, 2025

Tuesday, March 18, 2025

JSK Daily for Mar 18, 2025 View this email in your browser A community curated daily e-mail of JavaScript news Hope AI By Bit. - Developer teams build with AI and composable software. ✅ Build full-

Ranked | Visualizing the Magnificent Seven's Revenue Growth in 2024 📊

Tuesday, March 18, 2025

From Nvidia's 114% rise to Tesla's modest 1% increase, we show the revenue growth of the Magnificent Seven stocks in 2024. View Online | Subscribe | Download Our App Get our app and see

Daily Coding Problem: Problem #1721 [Hard]

Tuesday, March 18, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Facebook. Given a string and a set of delimiters, reverse the words in the string while

Report Available: The Age of Data 📈

Tuesday, March 18, 2025

Explore the world's most critical resource with Visual Capitalist's latest report. ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏

LW 174 - Interview with Shopify's Head of Engineering

Tuesday, March 18, 2025

Interview with Shopify's Head of Engineering ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ Shopify Development news and articles Issue 174

WEBINAR - Streamline Your DNS Management with DNSimple's Terraform Integration

Tuesday, March 18, 2025

Join the team at DNSimple for an exclusive webinar in collaboration with Hashicorp and DNSimple, on April 2, 2025 at 1:30 PM EST. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Vibe coding isn't for everyone

Tuesday, March 18, 2025

5 Chromecast tips; Handy USB-C; Free iPhone 16 deal -- ZDNET ZDNET Tech Today - US March 18, 2025 colorful LED diodes close-up What is AI vibe coding? It's all the rage but it's not for

⚙️ Can Nvidia rebound?

Tuesday, March 18, 2025

Plus: China's latest bit of AI competition ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌