I am pleased to announce that scikit-survival 0.26.0 has been released. This is a maintainance release that adds support for Python 3.14 and includes updates to make scikit-survival compatible with new versions of pandas and osqp. It adds support for the pandas string dtype, and copy-on-write, which is going to become the default with pandas 3. In addition,sksurv.preprocessing.OneHotEncoder now supports converting columns with the object dtype.
Most importantly, it adds support for Python 3.14. It also adds support for many 3.x features that were not yet implemented, in addition to basic support for the base64 module. It also optimizes a few more common code patterns. Paul Boddie was able to add support for libpcre2, and in the process updated conan to version 2. Thanks to Shakeeb and now Paul, Shed Skin has had first-class Windows support for the last few releases.
In this article I walk through a practical example showing how UUIDv7 works in Python first and then in PostgreSQL using Django ORM and migrations only. No manual SQL is needed and every step shows real code and migration output. What is a UUID A UUID is a 128 bit identifier that aims to be globally unique without coordination. It works well in distributed systems because it removes the need for a central sequence generator. This makes UUIDs ideal for many modern architectures.
Last month's headline news was the release of Python 3.14-a milestone update that introduces significant enhancements to the language itself and its runtime. Meanwhile, hot on its heels, the core team has begun development of Python 3.15. As Python continues to evolve, we must also bid farewell to an older release. Python 3.9 has reached its end of life, reminding everyone to keep their environments up to date for safety and support.
How does Python 3.14 perform under a few hand-crafted benchmarks? Does the performance of asyncio scale on the free-threaded build? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects. At the top of the show, we have a mountain of release news and Python Enhancement Proposals to cover. Then, we dig into a couple of articles covering the performance of Python 3.14.
Python 3.14 is here. If you haven't done so, it's time to update your projects to test against 3.14. The following procedure is what I'm following for a handful of projects. Your process of course may be different if you use different tools. Honestly, I'm partly writing this down so I don't have to remember it all in a year when 3.15 rolls around.
In this quiz, you'll test your understanding of Python 3.14: Cool New Features for You to Try. By working through this quiz, you'll review the key updates and improvements in this version of Python. The quiz contains 11 questions and there is no time limit. You'll get 1 point for each correct answer. At the end of the quiz, you'll receive a total score. The maximum score is 100%. Good luck!
Introduction The upcoming Python 3.14 release is packed with exciting features and improvements. A release candidate for 3.14 is now available. Regular Python users are encouraged to download and try it to ensure it is well tested before the final release. It contains significant improvements to the free-threaded version of Python, which allows Python to run without the Global Interpreter Lock (GIL). Here at Quansight, I have implemented several optimizations to the garbage collector (GC) for this new Python build.
Move beyond chatbots to build durable MCP servers that run for days, survive failures, and orchestrate elicitations and LLM sampling. Learn remote MCP trade-offs and patterns for Anthony Shaw poses the question: Python has had async for 10 years, so why isn't it more popular? He dives deep on where async is useful and where it is limited. Associated Don't miss Glean's product launch on Sept 25th.
The new Placeholder, added in Python 3.14, only makes sense in the context of functools.partial, so in order to understand Placeholder you will need to understand how functools.partial works and how to use it. In a nutshell, partial allows you to perform partial function application, by "freezing" arguments to functions. How to pass arguments to functools.partial Up until Python 3.13, you could use partial to freeze arguments in two types of ways: you could pass positional arguments to partial, which would be passed in the same order to the function being used with partial; or you could pass keyword arguments to partial, which would be passed with the same name to the function being used with partial.