The Real Python Podcast

Make Your Python App Interactive With a Text User Interface (TUI)


Listen Later

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
    • The Python Rich Package: Unleash the Power of Console Text
    • 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
    • Level up your Python skills with our expert-led courses:

      • Grow Your Python Portfolio With 13 Intermediate Project Ideas
      • Command Line Interfaces in Python
      • Rock, Paper, Scissors With Python: A Command Line Game
      • Support the podcast & join our community of Pythonistas

        ...more
        View all episodesView all episodes
        Download on the App Store

        The Real Python PodcastBy Real Python

        • 4.7
        • 4.7
        • 4.7
        • 4.7
        • 4.7

        4.7

        136 ratings


        More shows like The Real Python Podcast

        View all
        Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

        Software Engineering Radio - the podcast for professional software developers

        272 Listeners

        The Changelog: Software Development, Open Source by Changelog Media

        The Changelog: Software Development, Open Source

        283 Listeners

        Thoughtworks Technology Podcast by Thoughtworks

        Thoughtworks Technology Podcast

        41 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        592 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        624 Listeners

        Soft Skills Engineering by Jamison Dance and Dave Smith

        Soft Skills Engineering

        269 Listeners

        Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

        Super Data Science: ML & AI Podcast with Jon Krohn

        298 Listeners

        Python Bytes by Michael Kennedy and Brian Okken

        Python Bytes

        213 Listeners

        Data Engineering Podcast by Tobias Macey

        Data Engineering Podcast

        142 Listeners

        Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

        Syntax - Tasty Web Development Treats

        982 Listeners

        DataFramed by DataCamp

        DataFramed

        266 Listeners

        Kubernetes Podcast from Google by Abdel Sghiouar, Kaslin Fields

        Kubernetes Podcast from Google

        181 Listeners

        Practical AI by Practical AI LLC

        Practical AI

        190 Listeners

        The Stack Overflow Podcast by The Stack Overflow Podcast

        The Stack Overflow Podcast

        64 Listeners

        The Pragmatic Engineer by Gergely Orosz

        The Pragmatic Engineer

        52 Listeners