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

        139 ratings


        More shows like The Real Python Podcast

        View all
        The Changelog: Software Development, Open Source by Changelog Media

        The Changelog: Software Development, Open Source

        288 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        625 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        581 Listeners

        Soft Skills Engineering by Jamison Dance and Dave Smith

        Soft Skills Engineering

        289 Listeners

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

        Super Data Science: ML & AI Podcast with Jon Krohn

        302 Listeners

        Python Bytes by Michael Kennedy and Brian Okken

        Python Bytes

        213 Listeners

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

        Syntax - Tasty Web Development Treats

        988 Listeners

        Darknet Diaries by Jack Rhysider

        Darknet Diaries

        8,091 Listeners

        Tech Brew Ride Home by Morning Brew

        Tech Brew Ride Home

        969 Listeners

        Practical AI by Practical AI LLC

        Practical AI

        200 Listeners

        AWS Podcast by Amazon Web Services

        AWS Podcast

        206 Listeners

        Django Chat by William Vincent and Carlton Gibson

        Django Chat

        75 Listeners

        Last Week in AI by Skynet Today

        Last Week in AI

        309 Listeners

        Machine Learning Street Talk (MLST) by Machine Learning Street Talk (MLST)

        Machine Learning Street Talk (MLST)

        99 Listeners

        The Pragmatic Engineer by Gergely Orosz

        The Pragmatic Engineer

        69 Listeners