Episode 178: Guiding Scientific Python Library Development
The Real Python Podcast
Oct 27, 2023 57m
How do you prepare a scientific Python project for sharing with others? Could you use some best practices and guidance for packaging, documentation, and testing? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We talk about the creation of the Scientific Python Library Development Guide. The guide was finalized during the 2023 Scientific Python Developer Summit and is a resource for modern packaging. It includes sections of tutorials, principles, templates, and common patterns.
Christopher shares a recent Real Python tutorial about sorting Unicode strings in Python. He covers some of the pitfalls and ways to avoid them. The tutorial includes multiple third-party libraries to assist in wrangling Unicode characters.
We also share several other articles and projects from the Python community, including a couple of release announcements, information on namespaces and variable scope in Python, benchmark comparisons of Numba and Mojo, a discussion of recent so-called AI fails, a TUI for log files with a merged timeline, a cross-platform GUI building tool similar to HyperCard, and a project for reproducing exact argparse
arguments.
Course Spotlight: Exploring Scopes and Closures in Python
In this Code Conversation video course, you’ll take a deep dive into how scopes and closures work in Python. To do this, you’ll use a debugger to walk through some sample code, and then you’ll take a peek under the hood to see how Python holds variables internally.
Topics:
- 00:00:00 – Introduction
- 00:02:30 – Python 3.13.0 alpha 1 is now available
- 00:03:20 – core.py - Podcast
- 00:03:53 – PEP 730 - Adding iOS as a supported platform
- 00:05:22 – Mojo🔥 is now available on Mac
- 00:06:28 – How to Sort Unicode Strings Alphabetically in Python
- 00:11:48 – Python Variables: Namespaces and Variable Scope
- 00:18:18 – Mojo: Head-to-Head With Python and Numba
- 00:27:25 – Video Course Spotlight
- 00:28:50 – The Scientific Python Library Development Guide
- 00:32:47 – I’m banned for life from advertising on Meta
- 00:48:03 –
logmerger
: TUI for Log Files With Merged Timeline - 00:50:34 – CardStock: Cross-Platform GUI Building Tool
- 00:54:24 –
reverse_argparse
: Tell the User What They Ran - 00:56:25 – Thanks and goodbye
News:
- Python Insider: Python 3.13.0 alpha 1 is now available
- core.py - Podcast by Pablo Galindo and Łukasz Langa
- PEP 730 - Adding iOS as a supported platform - peps.python.org
- Modular: Mojo🔥 is now available on Mac
Show Links:
- How to Sort Unicode Strings Alphabetically in Python – In this tutorial, you’ll learn how to correctly sort Unicode strings in Python while avoiding common pitfalls. You’ll explore powerful third-party libraries implementing the complete Unicode Collation Algorithm (UCA), as well as standard library modules and a few handmade solutions.
- Python Variables: Namespaces and Variable Scope – This post is a comprehensive guide on namespaces and variable scope. Learn about the four different namespaces and how to access each.
- Mojo: Head-to-Head With Python and Numba – This article covers a Mandelbrot-based benchmark of Python, variations of Numba, and the newly available Mojo. Although Mojo is fast, it takes a lot more work than the author expected to translate Python to it, and with the right parameters, Numba still beats it.
- The Scientific Python Development Guide – This article talks about the release of the Scientific Python Development Guide, which documents Python package development. It includes cookie-cutter templates and repo tools.
Discussion:
- I’m banned for life from advertising on Meta. Because I teach Python. — Reuven Lerner
- ‘Life or Death:’ AI-Generated Mushroom Foraging Books Are All Over Amazon
Projects:
logmerger
: TUI for Log Files With Merged Timeline- CardStock: Cross-Platform GUI Building Tool
reverse_argparse
: Tell the User What They Ran
Additional Links:
- Write once. Deploy everywhere. - BeeWare
- Python Scope & the LEGB Rule: Resolving Names in Your Code - Real Python
- Exploring Scopes and Closures in Python - Real Python
- Thonny, Python IDE for beginners
- Scikit-HEP - About
- Episode #39: Generators, Coroutines, and Learning Python Through Exercises - The Real Python Podcast
- 30-plus years of HyperCard, the missing link to the Web - Ars Technica
- CardStock.run - Quickly and easily build apps on the web