Episode 118: Creating Documentation With MkDocs & When to Use a Python dict
The Real Python Podcast
Jul 22, 2022 54m
How do you start building your project documentation? What if you had a tool that could do the heavy lifting and automatically write large portions directly from your code? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
Episode Sponsor:
We talk about a Real Python step-by-step project from Martin Breuss about MkDocs. The project walks you through generating nice-looking and modern documentation from Markdown files and your existing code’s docstrings. The final step is to deploy your freshly generated documentation to a GitHub repository.
Christopher talks about a pair of articles arguing for and against using Python dictionaries. The first article, “Just Use Dictionaries,” pushes to keep things simple, while the second article, “Don’t Let Dicts Spoil Your Code,” contends that complex projects require something more specific.
We cover several other articles and projects from the Python community, including discussing the recent beta release of Python 3.11, 2FA for PyPI, procedural music composition with arvo, building a tic-tac-toe game with Python and Tkinter, common issues encountered while coding in Python, a type-safe library to generate SVG files, and a lightweight static analysis tool for your projects.
Course Spotlight: Dictionaries and Arrays: Selecting the Ideal Data Structure
In this course, you’ll learn about two of Python’s data structures: dictionaries and arrays. You’ll look at multiple types and classes for both of these and learn which implementations are best for your specific use cases.
Topics:
- 00:00:00 – Introduction
- 00:02:39 – Python 3.11 Release May Be Delayed
- 00:03:39 – The cursed release of Python 3.11.0b4 is now available
- 00:05:01 – PyPI 2FA Security Key Giveaway
- 00:08:01 – Build Your Python Project Documentation With MkDocs
- 00:14:12 – Don’t Let Dicts Spoil Your Code
- 00:16:22 – Just Use Dictionaries
- 00:20:12 – Sponsor: Snyk.io
- 00:20:51 – Procedural Music Composition With arvo
- 00:29:10 – Build a Tic-Tac-Toe Game With Python and Tkinter
- 00:33:59 – Video Course Spotlight
- 00:35:35 – Most Common Issue You Have Coding With Python?
- 00:45:00 – svg.py: Type-Safe Library to Generate SVG Files
- 00:48:27 – semgrep: Lightweight Static Analysis for Many Languages
- 00:53:46 – Thanks and goodbye
News:
- Python 3.11 Release May Be Delayed
- The cursed release of Python 3.11.0b4 is now available - Python.org.
- “We’ve begun rolling out a 2FA requirement”: PyPI on Twitter
- PyPI 2FA Security Key Giveaway
Topic Links:
- Build Your Python Project Documentation With MkDocs – In this tutorial, you’ll learn how to build professional documentation for a Python package using MkDocs and mkdocstrings. These tools allow you to generate nice-looking and modern documentation from Markdown files and, more importantly, from your code’s docstrings.
- Don’t Let Dicts Spoil Your Code – The
dict
is the go-to data structure for Python programmers, but its loose relationship to the data can be problematic in large data streams. Learn more about why and when you might choose a different data structure. - Just Use Dictionaries – Using simple data structures is an important part of keeping it simple, and Python is all about simplicity. Less code means fewer problems. Just use dictionaries. You probably don’t need classes.
- Procedural Music Composition With arvo – By using the
music21
andavro
libraries, you can create musical scores programmatically. This article runs you through which libraries you need and how you can compose your own music. - Build a Tic-Tac-Toe Game With Python and Tkinter – In this step-by-step project, you’ll learn how to create a tic-tac-toe game using Python and the Tkinter GUI framework. Tkinter is cross-platform and is available in the Python standard library. Creating a game in Python is a great and fun way to learn something new and exciting!
Discussion:
Projects:
- svg.py: Type-Safe Library to Generate SVG Files
- semgrep: Lightweight Static Analysis for Many Languages
Additional Links:
- Getting 2FA Right in 2019 | Trail of Bits Blog
- autoDocstring - Python Docstring Generator - Visual Studio Marketplace
- styleguide | Style guides for Google-originated open-source projects
- Writing docstrings — Sphinx-RTD-Tutorial documentation
- Django Ninja
- arvo: Python library for procedural music composition
- Getting Started with arvo: a Procedural Music Composition Library - YouTube
- music21: a Toolkit for Computer-Aided Musicology
- music21: GitHub
- Free music composition and notation software | MuseScore
- Code Generation | MusicXML 4.0
- Python GUI Programming With Tkinter – Real Python
- Tcl Developer Site
- tkinter — Python interface to Tcl/Tk — Python 3.10.5 documentation
- svg-xsd-schema: XSD schema for SVG
- SVG: Scalable Vector Graphics | MDN