A weekly Python podcast hosted by Christopher Bailey with interviews, coding tips, and conversation with guests from the Python community. The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
Make Your Python App Interactive With a Text User Interface (TUI)
Have you wanted to create a Python application that goes further than a command-line interface? You would like it to have a friendly interface but don’t want to make a GUI (Graphical User Interface) or web application. Maybe a TUI (Text User Interface)would be a perfect fit for the project. This week on the show, we have Will McGugan to talk about his projects Textual and Rich.
Rich is a Python library for writing rich text to the terminal with color and style. It’s a great tool if you want to display advanced content such as tables, markdown, and syntax-highlighted code. We talk about how Will started on the project and how it’s developed over the years.
We also talk about Will’s new project Textual, a TUI using much of Rich at its core. He shares how the project is coming along and what are challenges in developing this type of application. We discuss how a TUI has more in common with CSS and web development than command line or graphical interfaces.
We also have a quick announcement at the top of the show from CPython Developer in Residence Łukasz Langa about next week’s release of Python 3.10.
Course Spotlight: Rock, Paper, Scissors With Python: A Command Line Game
In this course, you’ll learn to program rock paper scissors in Python from scratch. You’ll learn how to take in user input, make the computer choose a random action, determine a winner, and split your code into functions.
Topics:
- 00:00:00 – Introduction
- 00:02:08 – Python 3.10 Release Party - Announcement
- 00:03:32 – Will McGugan and the background of the Rich library
- 00:10:11 – Moya framework
- 00:21:38 – Sponsor: DataStax Astra DB
- 00:22:10 – The spark that started Textual
- 00:26:31 – Needing AsyncIO for a TUI
- 00:28:07 – Describing a TUI (Text User Interface)
- 00:33:57 – Scrolling, resizing, and similarities with CSS
- 00:36:37 – Video Course Spotlight
- 00:38:03 – What areas were difficult in developing Textual?
- 00:39:42 – Similarities to game development
- 00:41:47 – Testing across different terminals
- 00:45:01 – What were you excited to include in the project?
- 00:47:04 – Are there particular uses you foresee for Textual?
- 00:49:21 – Career changes and open source reviewing
- 00:54:21 – Version numbers and Textual
- 00:55:49 – What are you excited about in the world of Python?
- 00:58:27 – What do you want to learn next?
- 01:00:57 – Shoutouts and plugs
- 01:01:47 – Thanks and goodbye
Show Links
- Will McGugan’s Blog
- Will McGugan’s GitHub
- Rich Documentation
- Pygments: Python Syntax Highlighter
object.__repr__ (self)
: Python docs- Regular Expressions: Regexes in Python (Part 1) - Real Python
- Moya: Open source web development platform built with Python
- Building Rich terminal dashboards: Will’s blog
- Textual: A TUI (Text User Interface) framework for Python inspired by modern web development
- The 2021 Python Language Summit: Making CPython Faster
- Episode 69: Planning a Faster Future at the Python Language Summit
- Python 3.10 Release Party Announcement
- Łukasz Langa’s twitter: Developer in Residence
- Pablo Galindo Salgado’s twitter: Python 3.10 and 3.11 release manager
- Will McGugan’s Twitter
- Why I’m working on Open Source full time