from datetime import date
print(date.today().year, date.today().month)
# 2025 4
Welcome back and I’m glad to see you back reading the second issue of my “This month for Pythonistas” series which curates the news, articles, tutorials and more Python stuff worth noting in this April.
Before we continue, please note that this blog is synced across several platforms:
Ready? Let’s get started!
Events & Social
DjangoCon Europe 2025
Dublin, Ireland is the host city of this year’s DjangoCon Europe, which is held from April 23rd to 27th, 2025.
EuroPython 2025
EuroPython has announced three more Keynote Speakers: SebastiĆ”n RamĆrez (Creator os FastAPI, Typer, SQLModel, etc.), Brett Cannon (Python Core Developer), and Petr BaudiÅ” (co-founder and CTO of Rossum).
Besides, EuroPython will have a booth at PyCon US this year.
Microsoft turns 50
Like it or not, Microsoft had remarkable influence over the past decades and is still making a big impact right at the moment. In this page it celebrates its 50th anniversary by looking back at some iconic moments from the history, sharing some stories, and giving out digital goodies.
Discord server for free-threaded Python
There is a dedicated place to discuss free-threaded python on Discord now.
GvR BDFL (𤔠April Fools š¤”)
BREAKING! Guido van Rossum, the legendary creator of Python, has officially reinstated himself as Benevolent Dictator for Life (BDFL).
New versions
Python 3.13.3 & 3.12.10
It’s another month for Python version updates.
Python 3.14 Alpha 7 is out, and the first beta release is expected soon.
Python 3.13 and 3.12 receive bugfix updates:
The following versions receive only security-related fixes and no binary distributions are provided: 3.11.12, 3.10.17 and 3.9.22.
Visual Studio Code 1.99.0
VS Code joins Claude Desktop and other “AI IDEs”, having Agent Mode and MCP servers support (Preview).
A new open-source and local MCP server is introduced, allowing integration with any LLM tool supporting MCP. Read the details in Vibe coding with GitHub Copilot: Agent mode and MCP support rolling out to all VS Code users.
Update: Agent Mode is now officially turned on for everyone.
Django 5.2 LTS
This LTS version introduces new features (Automatic model imports in the shell, Composite primary keys, etc.) and deprecates some functionalities, and it will receive security updates for the next three years at least. Check its release notes.
PyTorch 2.7
This release introduces support for NVIDIAās new Blackwell GPU architecture and ships pre-built wheels for CUDA 12.8. TorchAudio
is updated to 2.7.0
and TorchVision
is 0.22.0
.
Ubuntu 25.04, Fedora 42, MX 23.6 and Manjaro 25.0
It seems like a big month for Linux distros since several popular distro have major/minor updates:
- Ubuntu 25.04 “Plucky Puffin” introduces Linux 6.14 kernel, GNOME 48, and offers 9 months of support.
- Fedora 42 promotes KDE Plasma variation to “Full Edition”.
- MX Linux is a regular refresh containing bugfixes, kernel updates, and application updates.
- Manjaro 25.0 “Zetar” brings various updates to different desktop environment editions.
Tutorials
- Deeplearning.ai’s Vibe Coding 101 with Replit from replit
Take your own discretion on “Vibe Coding” (there’s an article about it below), but here’s a hands-on tutorial on deeplearning.ai.
Youāll use Replitās cloud environmentā with an integrated code editor, package manager, and deployment toolsāto build and deploy two web applications with the help of an AI coding agent. Along the way, youāll learn strategies for working effectively with agents and improve your development skills in the process.
- Deeplearning.ai’s Getting Structured LLM Output from DotTxt
Youāll gain a fundamental understanding of structured outputs and learn efficient ways to generate outputs in your defined schema or format.
- Deeplearning.ai’s Building AI Browser Agents from AGI Inc.
Learn the fundamentals of autonomous web agents, what they are, how they work, their limitations, and the decision-making strategies taken to optimize their performance.
- Deeplearning.ai’s Building Code Agents with Hugging Face smolagents from HuggingFace
Understand the architecture and benefits of code agents that write code to perform tasks, compare them to traditional tool-calling agents, and learn when to use each approach.
- RealPython’s Introducing DuckDB
The tutorial will equip you with the practical knowledge necessary to get started with DuckDB, including its Online Analytical Processing (OLAP) features, which enable fast access to data through query optimization and buffering.
- freeCodeCamp.org’s Code DeepSeek V3 From Scratch in Python
This is a nearly-4-hours Youtube video tutorial brought by freeCodeCamp.
- HuggingFace’s Agents Course
A series of tutorials introducing various aspects of AI Agents.
Articles
PEP 750 ā Template Strings is accepted. This PEP introduces template strings which are a generalization of f-strings. Putting a t
before a string template would keep it from being evaluated as a normal string but make it an instance of a new type Template
.
In his blog, Dave introduces the motivation behind this PEP and shows how to play with it.
PEP 751 is accepted. This PEP proposes a standard for the format of a file recording the requirements/dependencies of a Python project (ie. a lock file but standardized, agreed across the whole community).
Update:
pip
25.1+ adds experimental pip lock
command:
pip lock -r .\requirements.txt --output pylock.toml
uv
0.6.15+ adds support through uv export
command:
uv export --format pylock.toml --output-file pylock.toml
pdm
2.24+ also supports exporting to pylock.toml
:
pdm export --format pylock --output pylock.toml
Sharing single-file Python scripts with external dependencies is now easy thanks to
uv
and PEP 723, which enable embedding dependency metadata directly within scripts.
This article highlights the simplicity of initializing a project with uv
, which sets up essential files like pyproject.toml
, README.md
, and folder structures. This allows developers to manage dependencies effortlessly and set up virtual environments. It emphasizes the convenience of editable installations, enabling instant updates to package code without needing reinstallation.
Meta has introduced Llama 4, its latest suite of multimodal AI models including “Llama 4 Scout” and “Llama 4 Maverick”, offering significant advancements in personalized AI experiences. Both models utilize a mixture-of-experts (MoE) architecture, allowing efficient use of parameters: Maverick has 17 billion active parameters with 128 experts, while Scout offers a remarkable context length of 10 million tokens. “Llama 4 Behemoth”, a larger model with 288 billion parameters, serves as a teacher for the others, enhancing their capabilities.
Google brings its own agent-building solution by announcing open-source framework Agent Development Kit (ADK) at Google Cloud NEXT 2025, additionally it introduces Agent2Agent (A2A) protocol, Agent Engine as well as Agent Garden.
GPTā4.1, GPTā4.1 mini, and GPTā4.1 nano are available through OpenAI’s API service. These new models appear to focus mainly on coding and instruction following.
Update: They are also available through Github Models.
OpenAI then release o3 and o4-mini of the o-series models, claiming they are their “smartest” models to date.
This article discusses the role of developer skills in agentic coding with AI assistants. The author categorizes AI missteps into three impact radius: time to commit, team flow, and long-term maintainability. The article emphasizes the need for developer oversight, caution against “good enough” solutions, and the importance of code quality practices and team communication.
Model Context Protocol is a way for LLMs to integrate with external tools. It is useful as it makes LLMs act more like developers. Behind the scenes, providers create MCP-compliant wrappers. Resources for MCP are also provided.
In the author’s point of view, while MCP is popular, its success is uncertain. Middleware like MCP often fails to live up to expectations. It may face issues such as monetization problems if widely adopted or exclusion by a key platform. Vendors may lose interest due to market realities.
Despite its benefits, such as standardized APIs and persistent sessions, MCP has significant security risks. These risks include potential side-channels into shells, secrets, or infrastructure when agents are connected to arbitrary servers without proper security measures. The author emphasizes the need for better security in MCP to prevent these vulnerabilities.
MCP standardizes how applications integrate with large language models (LLMs), while A2A facilitates communication between agents across different systems. Although MCP currently excels in establishing context for LLMs, it lacks essential features like security and task management, which A2A addresses. As both protocols evolve, their roles may intertwine, but A2A appears poised for dominance in inter-agent communication, potentially overshadowing MCP’s relevance in the future.
To celebrate two decades of Git, the author sat down with Linus himself to revisit those early days, explore the key design decisions behind Gitās lasting success, and discuss how it forever changed software development. The full video interview is also included in the blog.
The author argues that Karpathy’s “vibe coding” is harmful. It leads to hidden costs, exponential technical debt, and security risks. A better approach is to use AI with a clear vision, break down AI-generated code, provide context, test thoroughly, and review code to maintain understanding.
In this blogpost, the author shows how to use sentence-transformers to finetune a reranker model that beats all existing options on exactly your data. This method can also train extremely strong new reranker models from scratch.
Podcasts
š„ core.py
š RealPython Podcast
- Episode 245: GUIs & TUIs: Choosing a User Interface for Your Python Project
- Episode 246: Learning Intermediate Python With a Deep Dive Course
- Episode 247: Exploring DuckDB & Comparing Python Expressions vs Statements
š„§ Python Bytes Podcast
- #426 Committing to Formatted Markdown
- #427 Rise of the Python Lord
- #428 How old is your Python?
- #429 Nitpicking Python
- #430 Or you go to jail
š¦ Talk Python to me
- #499: BeeWare and the State of Python on Mobile
- #500: Django Simple Deploy and other DevOps Things
- #501: Marimo - Reactive Notebooks for Python
- #502: Django Ledger: Accounting with Python
- #503: The PyArrow Revolution
š Pybites Podcast
- #185: Expanding the world of Pybites with cohort coaching, book platforms and more!
- #186: Rethinking the art of coding
- #187: Beyond the resume - how to stand out in the competitive world of tech
- #188: Career crossroads - navigating the path to job fulfillment
Repositories
google/adk-python
(Apache-2.0)
awslabs/mcp
(Apache-2.0)
github-mcp-server
(MIT)
InternVL3-78B
moonshotai/Kimi-VL-A3B-Thinking
THUDM/GLM-Z1-32B-0414
Qwen 3
Have time for some fun?
Nintendo Switch 2 has a launch date
Nintendo reveals in their “Direct” livestream event that Switch 2 is available on June 5th, 2025 worldwide with starting price ~$449.99 outside Japan (multi-language version) and a much lower price inside Japan (Japanese-only version). Read more about it on their official website.
Clair Obscur: Expedition 33 sets sail on April 24th
In this dark fantasy RPG inspired by JRPG and Soul-like games and made by a small French team “Sandfall Interactive”, players will explore the mysterious city of LumiĆØre and engage in immersive turn-based battles with unique mechanics. After playing it for around 30 hours I must say I really enjoyed the visual style and the rewarding action part in the battles. Check their official website for more info.
Alright, that concludes the second issue of “This Month of Pythonistas”. Thank you again for reading my post. I hope you enjoy it or find something useful, and see you in May!