Juha-Matti Santala
Community Builder. Dreamer. Adventurer.

What’s coming to Python in 3.13 and 3.14

Batteries included is a blog series about the Python Standard Library. Each day, I share insights, ideas and examples for different parts of the library. Blaugust is an annual blogging festival in August where the goal is to write a blog post every day of the month.

Over the past month, I’ve looked into the great standard library stuff that comes built in with Python. And I only scratched the surface! As the month is coming close to the end, I wanted to take a quick look into the future versions and what standard library related improvements are coming.

The development of Python is always happening and the following October we’re getting Python 3.13 and with it, a couple of nice improvements to the things I’ve written about.

The interactive REPL gets an overhaul with a ton of goodies. I’m excited as I almost always have a REPL session open for quick interactive Python. The new development brings multiline editing with history, colored prompts and tracebacks, interactive help and more.

The error messages keep getting better. Ever since 3.10, Python has taken big steps forward in having better experience with errors and I’m amazed at how much they keep improving each time.

On the 16th day, I wrote about the random module and in 3.13 it gets a command line interface with which you can roll a D6 die with python -m random 6.

argparse, which I wrote about in day 26 gets a way to mark arguments, options and subcommands as deprecated.

A lot of “dead batteries” have also been cleared out. These have been depracated for a couple of years now since 3.11

Python 3.14 is still a year away in the future but one mention-worthy change is a great improvement: using json module from command line no longer requires the .tool part and you will be able to call it with python -m json which is more intuitive and easy to remember.