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!
This means no new features are allowed in and it's now time to start testing your code. You might find things in your code to fix, or even better, you might find things to fix in Python itself!
"Because there are a number of important bugs being worked on that impede the testing of 3.12, it would be a shame to delay all that by a month, and it’s only been a week since beta 1, I’m delaying beta 2 until next week."