Python’s December 2025 Roundup: Lazy Imports, Django 6.0, and AI Advancements
Explore Python's December 2025 news: explicit lazy imports, Django 6.0 release, critical PyPI security updates, PSF's financial outlook, and major AI model launches from Google and Anthropic, alongside community highlights.

The world of Python saw significant activity last month! Core developers advanced Python 3.15, notably accepting PEP 810 to introduce explicit lazy imports. PyPI strengthened account security, Django 6.0 debuted with new features while celebrating twenty years of releases, and the Python Software Foundation (PSF) outlined its financial outlook, launching a year-end fundraiser. This roundup dives into the biggest Python news from the past month!
Python Releases and PEP Highlights
Last month brought progress on Python 3.15, with a new alpha release and a major PEP acceptance. Windows users also received an update to the new Python install manager.
Python 3.15.0 Alpha 2 Keeps the Train Moving
Python 3.15’s second alpha, 3.15.0a2, was released on November 19, following the language’s regular annual release cadence. This early developer preview is not for production but showcases 3.15’s direction and provides a testing ground for library authors. Similar to alpha 1, this release is light on user-visible features but continues work on:
- Making UTF-8 the default text encoding for files without specified encodings, via PEP 686.
- Providing a dedicated profiling API designed to work better with modern profilers and monitoring tools, via PEP 799.
- Exposing lower-level C APIs for creating
bytesobjects more efficiently, via PEP 782.
Package maintainers are encouraged to start running tests against these alphas in isolated environments to catch regressions early. You can confirm your Python version with python -VV:
$ python -VV
Python 3.15.0a2 (main, Nov 19 2025, 10:42:00) [GCC ...]
Remember to keep alpha builds separate from daily projects!
PEP 810 Accepted: Explicit Lazy Imports
A pivotal decision for the language this month was the acceptance of PEP 810 – Explicit lazy imports, which was previously discussed. The Python Steering Council accepted the proposal on November 3, just a month after its formal creation. With its status changing from Draft to Accepted, PEP 810 is now targeted for inclusion in Python 3.15!
One of the PEP’s authors, Pablo Galindo Salgado, has been a frequent guest on the Real Python Podcast.
PEP 810 introduces new syntax for imports that are evaluated only upon first use, rather than at module import time. Conceptually, you can write:
lazy import json
def parse():
return json.loads(payload)
In this scenario, Python loads the json module only if parse() is called.
The goals of explicit lazy imports include:
- Improving startup time for large applications with many rarely used imports.
- Breaking complex import cycles without relying on local imports within functions.
- Offering frameworks and tools a clear, explicit method to defer expensive imports.
Lazy imports are opt-in; only those explicitly marked lazy will behave differently. The PEP meticulously details how lazy modules interact with attributes like __all__, exception reporting, and tools such as debuggers.
The implementation work is ongoing, so the new syntax is not yet in 3.15.0a2.
If you maintain a framework, CLI tool, or large application, reviewing the PEP is recommended to consider how lazy imports could streamline your startup processes or reduce cold-start latency.
Python’s New Install Manager Moves Forward on Windows
For Windows users, a new Python install manager build, version 25.1 beta 2, was released last month. This tool aims to simplify installing Python on Windows and managing multiple Python versions, providing a modern alternative to traditional MSI and EXE installers.
The announcement reiterated that starting with Python 3.16, the older .exe installer format will be removed in favor of the new install manager. Windows users relying on manual installer workflows should test the manager now and report any issues before the legacy path is deprecated.
Packaging and Infrastructure: Security and Sustainability
The Python ecosystem's infrastructure saw several crucial updates, including new PyPI security measures, a transparent financial outlook from the PSF, and the first transparency report from the Code of Conduct Working Group.
PyPI Adds Email Verification for TOTP Logins
For those publishing packages to the Python Package Index (PyPI) using Time-based One-Time Passwords (TOTP) for two-factor authentication, a new security step has been added to the login process. On November 14, the PyPI team announced email verification for TOTP-based logins from unrecognized devices or browsers.
Previously, a correct TOTP code was sufficient for login. Now, when logging in with TOTP from a new device, PyPI sends an email titled “Unrecognized login to your PyPI account” with a link that must be clicked to complete the login. Once a device is confirmed, subsequent logins from it proceed normally.
Users with WebAuthn security keys or passkeys will not experience this change, as these methods are inherently phishing-resistant. The blog post explicitly recommends migrating to passkeys or hardware keys when possible, as TOTP codes remain vulnerable to phishing.
If you maintain packages, now is a good time to:
- Confirm your PyPI email address is current.
- Verify backup 2FA methods are configured.
- Consider upgrading to passkeys or hardware keys for enhanced protection.
Even if your library seems small, the growing importance and interconnectedness of open-source Python packages mean it might be used in critical areas. Prioritizing security is always prudent.
PSF Shares Its Financial Outlook and Calls for Support
On November 4, the Python Software Foundation (PSF) published Connecting the Dots: Understanding the PSF’s Current Financial Outlook, a detailed blog post explaining the organization’s financial state and its rationale for a more prominent year-end fundraiser.
This post consolidated previous updates on grants, PyCon US finances, and sustainability efforts. Key takeaways:
- The PSF’s assets and annual revenue have decreased, while costs have risen.
- PyCon US has incurred losses for three consecutive years despite cost-cutting and strong volunteer support.
- New revenue streams, such as PyPI Organizations and sponsorship outreach, are helping but have not yet closed the financial gap.
- The Foundation currently has just over six months of operating runway, which, while not an immediate crisis, is shorter than the preferred twelve-plus months.
To address this, the PSF launched a year-end fundraiser and membership drive on November 12, encouraging individuals to:
- Donate directly.
- Become supporting members.
- Persuade their employers to sponsor the PSF or upgrade existing sponsorships.
PSF funding is vital for PyPI, PyCon US, developers-in-residence, and other infrastructure relied upon daily by most Python projects. Teams shipping Python code should consider whether their company's contributions align with its reliance on the language and ecosystem.
Code of Conduct Working Group Publishes First Transparency Report
Transparency in community safety advanced this month. On November 25, the PSF’s Code of Conduct Working Group released its first annual transparency report, detailing cases handled during the 2024 calendar year.
The one-page report explains the working group's enforcement of the PSF’s Code of Conduct, summarizes incident types, and outlines improved record-keeping to facilitate faster future reports. The group plans to publish these reports in the first quarter of each year. This reporting enhances community understanding of how the Code of Conduct is applied, signaling a positive step for transparency within the broader Python community.
Django and Web Framework News
Django had a significant month, releasing version 6.0, issuing security patches for older versions, and commemorating twenty years of releases with a retrospective post.
Django 6.0 Released
The Django team shipped Django 6.0 on December 3, concluding a development cycle that included several betas and a release candidate.
For those who followed the pre-releases, headline features include:
- Built-in Content Security Policy (CSP) support.
- A new tasks framework for defining and enqueuing background work (requires a worker mechanism like Celery).
- Template partials for more composable templates.
- A modernized email backend and closer alignment with recent Python releases.
Refer to the release notes for a comprehensive list of changes, deprecations, and upgrade considerations. If you haven't tested your projects against the pre-releases, now is the time to upgrade!
Security Releases and Django’s CNA Status
Earlier in the month, Django issued security releases for 5.2.8, 5.1.14, and 4.2.26. These addressed two vulnerabilities: a Windows NFKC redirect denial-of-service issue and a high-severity SQL injection via the QuerySet Q._connector attribute. New and final security releases 5.2.9 and 5.1.15 also shipped in early December.
For users on any supported 5.2, 5.1, or 4.2 version, upgrading to the latest patch as soon as possible is recommended. Even if your application doesn’t explicitly expose the affected code paths, staying up-to-date with security fixes is crucial.
On the vulnerability management front, Django formalized its role as a CVE Numbering Authority (CNA). This means the project can now directly assign CVE identifiers for security issues in Django and related components, bypassing intermediate organizations. For maintainers and security teams, this should result in clearer, more timely CVE entries for Django vulnerabilities.
Django Celebrates Twenty Years of Releases
Django turned 20 this summer, and this month marked twenty years of Django releases. The team celebrated this milestone with a short retrospective blog post.
Over these two decades, Django’s consistent release cadence and long-term support policy have instilled confidence in organizations to build large, enduring systems with it.
If you're new to Python web development and curious about Django, consider building your portfolio with it.
If you already build web apps with Django, celebrating this 20th anniversary is fitting. Revisiting this summer’s birthday page and the State of Django 2025 survey results from JetBrains can offer insights into ecosystem trends, such as the strong adoption of tools like Wagtail and Django Ninja.
Community and Ecosystem Highlights
Several trends and projects emerged from community discussions. These include performance optimization tips, MicroPython’s use in video games, Advent of Code’s new format, and updates to Python’s voting system governance.
Performance: From Code to Tooling
JetBrains published Why Performance Matters in Python Development at the end of October, followed by a piece in early November titled 10 Smart Performance Hacks for Faster Python Code. These articles emphasize that significant performance gains can often be achieved before resorting to exotic optimizations by:
- Choosing appropriate data structures and algorithms.
- Effectively using built-in modules like
itertools,functools, andcollections. - Measuring code paths with modern profiling tools instead of relying on guesswork.
On the tooling side, coverage.py’s maintainer, Ned Batchelder, shared insights into a week involving three releases and a move to a new GitHub organization. This serves as an excellent case study for managing breaking changes, user feedback, and semantic versioning in a widely used testing tool.
Hardware, Games, and MicroPython
A particularly engaging story involved MicroPython being embedded in a PlayStation game titled Tibor: Tale of a Kind Vampire. In a GitHub discussion, a developer detailed how MicroPython was integrated into Unreal Engine 5 to port the game to PlayStation 5, Nintendo Switch, and Xbox. Players can even open a built-in scripting console and modify game behavior using Python code running within the engine! This highlights Python and its microcontroller-friendly variants continuing to appear in unexpected places, from embedded devices to consumer games, thereby lowering the barrier to experimentation and modding.
Big-Ticket Libraries
In machine learning, PyTorch 2.9 was released, featuring performance improvements, expanded quantization options, and enhancements for distributed and generative-AI workflows. While specific details are most relevant to PyTorch users, the broader trend persists: major ML frameworks continuously refine their Python APIs and tooling to simplify production deployments, even as their internal complexities grow.
Advent of Code 2025: Fewer Puzzles, Same Holiday Spirit
The popular Advent of Code puzzle event returned for its eleventh year on December 1, with notable changes. Creator Eric Wastl announced that this year's event would feature just 12 puzzles instead of the traditional 25, and the global leaderboard has been retired.
From the FAQ:
It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change.
Puzzles still release daily from December 1 but now conclude mid-December. Discussions on Hacker News were largely positive, with many participants noting they often dropped off around the halfway point anyway due to increasing difficulty coinciding with busy holiday schedules. If you've never tried Advent of Code, this might be the perfect year to start! Resources like Real Python’s "Advent of Code: Solving Your Puzzles With Python" tutorial, the Real Python Podcast episode on solving AoC puzzles, or the Advent of Code video course can help you get started.
BLOC STAR Voting Adopted for Python Steering Council Elections
After months of community discussion, the Python community has chosen BetterVoting.com, run by the Equal Vote Coalition, to provide BLOC STAR voting for future Steering Council elections.
The switch to BLOC STAR voting was approved last year, with implementation details worked out since then. In a Discourse discussion initiated by Guido van Rossum, developers tested the platform and collaborated with the BetterVoting team to add features like editable ballots and candidate hyperlinks.
Adam Masiarek, a Real Python community member, contributed significantly to this effort as a contributor to starpy, the Python implementation of STAR Voting. His work included adding test cases, setting up CI pipelines, and reorganizing the project structure. PEP 8107, governing the 2026 term Steering Council election, is now in place with the new voting configuration. Tim Peters suggested that if this election proceeds smoothly, the PSF might consider adopting BLOC STAR for Board elections as well.
AI and Machine Learning Highlights
It was a busy month for major AI labs, with Google and Anthropic both releasing flagship models within a week. The rapid pace of AI developments is challenging to track, but here’s what Python developers should know.
Google Launches Gemini 3
Google officially launched Gemini 3 on November 18. This model pushes the boundaries of multimodal reasoning with a 1-million-token context window and is now accessible via Google AI Studio (formerly Google AI Platform), Vertex AI, and the Gemini API. Its image generation capabilities through Nano Banana Pro also garnered attention.
Alongside Gemini 3, Google released Google Antigravity, a Gemini-powered coding interface. This tool enables multi-pane agentic coding, similar to tools like Cursor, by combining a "vibe-coding"-style prompt window with a command-line interface and a browser pane. The tight integration with Google's Chrome browser is a major advantage, allowing agents in Antigravity to directly test web applications in the browser, collect feedback via screen recordings and screenshots, and then autonomously iterate and improve.
The name Antigravity might be a nod to Python’s
antigravityEaster egg module!
The new Gemini model can also be tried with Google’s CLI-focused AI coding tool, Gemini CLI, or through third-party platforms like GitHub Copilot.
Anthropic Releases Claude Opus 4.5
Less than a week after Gemini 3, Anthropic released Claude Opus 4.5 on November 24. Anthropic states it is their best model yet for coding, agents, and computer use. Pricing has significantly dropped compared to the previous Opus model, making it more appealing for developers building LLM-powered applications.
If you use Claude Code, Simon Willison’s experience using a preview to complete a new alpha release of sqlite-utils might be of interest. These new releases mark another significant leap forward for AI coding tools. If you haven’t recently reviewed your AI coding assistant setup or are looking to experiment, these releases are worth exploring.
Real Python Roundup
Big news this month: live Python cohorts are returning for early 2026, offering courses for beginners and intermediate developers. These programs provide structured lessons, expert instructors, and the accountability of peer learning. More details and the full curriculum are available at realpython.com/live.
Beyond that, the site continued its usual activity with new tutorials, courses, and podcast episodes covering topics from AI assistants to terminal UIs.
Tutorials
- A Close Look at a FastAPI Example Application
- Python MarkItDown: Convert Documents Into LLM-Ready Markdown
- The Python Standard REPL: Try Out Code and Ideas Quickly
- How to Serve a Website With FastAPI Using HTML and Jinja2
- Build a Python MCP Client to Test Servers From Your Terminal
- How to Properly Indent Python Code
- How to Convert Bytes to Strings in Python
Video Courses
- Building UIs in the Terminal With Python Textual
- Python Operators and Expressions
- Break Out of Loops With Python’s break Keyword
- Getting Started With Claude Code
Quizzes
- A Close Look at a FastAPI Example Application
- Using Python Optional Arguments When Defining Functions
- What Can I Do With Python?
Podcast Episodes
The Real Python Podcast, hosted by Christopher Bailey, published three new episodes:
- Episode 273: Advice for Writing Maintainable Python Code
- Episode 274: Preparing Data Science Projects for Production
- Episode 275: Building a FastAPI Application & Exploring Python Concurrency
In this month’s Office Hours—the weekly community meetup with Real Python team experts—community members explored using AI coding tools like Claude Code, Cursor, and Google Antigravity to build real projects.
If you missed last month’s news, which covered Python 3.14’s release and the start of the 3.15 alpha series, you can read "Python 3.14 Released and Other Python News for November 2025".
What’s Next for Python?
Looking ahead to the end of 2025 and into 2026:
- The Python 3.15 alpha series will continue into 2026, with PEP 810 and other features landing during the alpha phase. Now is an excellent time to start testing against early builds.
- The PSF’s year-end fundraiser and membership drive will run through December.
- PyCon US 2026’s call for proposals is still open, offering a chance to share your work with the broader community.
That concludes this month’s roundup. Happy Pythoning! If lazy imports or Django 6.0 spark inspiration for a cool project, consider documenting it or proposing a talk. The Python community thrives on its diverse voices and stories!