I found some interesting trends today while working with the simplify function from #Sympy as part of an experimental project for @formak. A large portion of the time is spent in list comprehensions and calling simplify recursively, which seems to “confuse” the flame graph representation.
@buck@formak If you're not already, you could compare Python 3.12:
"Dictionary, list, and set comprehensions are now inlined, rather than creating a new single-use function object for each execution of the comprehension. This speeds up execution of a comprehension by up to two times."
@hugovk I ran the same script on 3.10, 3.11 and 3.12, all on Sympy 1.12 . 3 samples of the cumulative time for each (in seconds):
3.10: [50.9, 50.7, 49.2]
3.11: [51.6, 53.9, 51.8]
3.12: [58.9, 59.4, 60.3]
Even based on this not very precise profiling with a small sample size, it seems like there's a material slow down from 3.10 -> 3.12 and a possible slowdown for 3.10 -> 3.11 (but the distributions are closer).
A new ImageOps.cover method has been added, that a resized version of the image, so that the requested size is covered, while maintaining the original aspect ratio.
Pillow had a “better than nothing” default font. Now, if FreeType is available, a version of Aileron Regular is loaded, which can be drawn at chosen font sizes.
And according to https://pyreadiness.org/3.12/ nearly twice as many of the top 360 packages are ready for 3.12 than were on release day for 3.11 or 3.10.
It's likely most will work for 3.12, thanks to everyone who tested early.
2023-10-02:
68 packages (18.9%) support Python 3.12
2022-10-24:
39 packages (10.8%) support Python 3.11
2021-10-04:
38 packages (10.6%) support Python 3.10
"You basically have a couple of days to make sure that your library will have no hiccups when Python 3.12 ships in a week. You want to make sure that your stuff just works, so here's your chance and a few steps on how to do that."
The second and final Python 3.12 release candidate is out! 🎉
🚨 This means we have under a month before the big release on 2023-10-02 to test our packages and get them ready. And we might help iron out last-minute bugs in Python itself!