After all the shenanigans two weeks ago – everyone discovering nasty little problems in release candidate 2 – the last week was suspiciously quiet, and therefore I can finally say: Python 3.13.0 is now available This is the stable release of Python 3.13.0 Python 3.13.0 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. (Compared to the last release candidate, 3.13.0rc3, 3.13.0 contains two small bug and ...
Nice I guess it’s time to check if my daily used libraries have stable 3.12 releases already.
I guess the free-threaded mode and the JIT compiler will be the most important features from what I read, but their significance is out of my expertise.
My absolute favorite with this update is the new REPL! It features Multiline-editing and a paste mode for easier pasting code. It also added the spaces automatically in my example.
Sometimes I want to make some quick tests on some data in the terminal without installing IPython to my environment first, this is great news!
This new error message will also be very useful for beginners and relieve StackOverflow:
AttributeError: module 'numpy' has no attribute 'array' (consider renaming '/home/me/numpy.py' if it has the same name as a third-party module you intended to import)
That last one is going to be so good. Months ago I ran into that while porting the “Crafting Interpreters” java-based interpreter into python. It took me a few hours to figure out that one of my modules was colliding with “token” in the stdlib, a module I didn’t even know existed. Glad it’s being made clearer.