Skip to content

Weblog

📡 Python radar - February/March 2025

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

🐍 The Mutable Trap: Avoiding Unintended Side Effects In Python (pybit.es)
A good reminder on why mutable default parameters in function should be avoided/ In summary, don't do this: f(args=[])

⚙️ Using uv to build and install Python CLI apps (mathspp.com)
A nice and quick workflow to setup and install your own CLI app using uv

🧠 The surprising way to save memory with BytesIO (pythonspeed.com)
TL;DR BytesIO getvalue() method does not copy the content as long as you just read from it, that's it !

🤖 kdunee/intentguard: A Python library for verifying code properties using natural language assertions (github.com)
What's interesting with this project is that it embeds a small local LLM "fine-tuned from Llama-3.2-1B-Instruct" which runs locally using llamafile, just "pip-install-it". Disclaimer: I haven't tested it so I don't how good it is, but I like the idea.

📡 Python radar - January 2025

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

🛠️ Cowboy Debugging Python Memory Leaks (rtpg.co)
A recipe for monitoring your app's memory usage live in production, a somewhat cavalier approach but effective!

🚀 Better Python Developer Productivity with RDD (REPL Driven Development) (davidvujic.blogspot.com)
The author expands on one of his previous articles (davidvujic.blogspot.com) (which is worth a read) about what could be referred to as "interactive" development, meaning code that is re-executed live during editing with results displayed in overlay in the IDE, I like the concept.

⚠️ Mistakes engineers make in large established codebases (seangoedecke.com)
We slightly diverge from Python here, but here are some relevant recommendations when starting to develop in a "big" complex codebase, notably the main recommendation which is to maintain consistency across the project, illustrated by the author as: You must resist the urge to make your little corner of the codebase nicer than the rest of it.

📊 Python tools for data visualization (pyviz.org)
A site that lists various Python data visualization tools and aims to help users choose the tool best suited for their needs.

🔍 How to Use Regular Expressions in Python (blog.appsignal.com)
A quite useful and well-made tutorial that helps you understand a bit better how to use regex in Python.

📡 Python radar - December 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

⚙️ google/python-fire: automatically generate CLIs from any Python object (github.com)
This tool allows you to automatically create a command line interface (with arguments, options, help, etc.) from a simple Python object, minimalistic and practical.

🖼️ pyvista/pyvista: streamlined interface for the Visualization Toolkit (VTK) (github.com)
Here’s a Pythonic interface to the famous scientific visualization library VTK that relies on Numpy to manipulate datasets and integrates well with Jupyter to quickly create beautiful interactive displays, not necessarily new but it popped up on my radar.

🕹️ kitao/pyxel: A retro game engine for Python (github.com)
Okay, this one may not be very relevant in a professional context, but I’m throwing it here for the nostalgic ones 😉

📝 Advanced Python Development Workflow in Emacs (blog.serghei.pl)
A very detailed article on how to set up a complete Python development environment in Emacs

📦 uv: An In-Depth Guide to Python's Fast and Ambitious New Package Manager (saaspegasus.com)
And yet another article about uv, but I recommend reading this one which clearly describes two types of development workflows with uv: one that’s closer to the classic workflow (uv venv, uv pip install, etc.), and a simpler native uv workflow (uv sync, uv add, uv run) that masks some complexities.

📡 Python radar - October/November 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

📦 uv IS the Future of Python Packaging! 🐍📦 (youtube.com)
We’ve heard a lot about the new tool “uv” lately, and here’s a video that explains well why!

🔬 Numpy QuadDType: Quadruple Precision for Everyone (quansight.org)
The author presents a new Numpy type for quadruple precision that addresses the limitations of the "longdouble" type, with two example usages at the end.

🦆 DuckDB in Python in the Browser with Pyodide, PyScript, and JupyterLite (duckdb.org)
There’s a lot of interesting stuff in this one article! First, PyScript and JupyterLite allow you to work in a Python environment right from your browser without needing to install anything. Then, DuckDB can be summed up as “SQLite in super fast columnar mode”; I admit that’s a bit of a rough description but it should resonate with those familiar with SQLite and databases.

📁 init.py files are optional. Here’s why you should still use them (dev.arie.bovenberg.net)
If, like me, you always wonder why we carry these empty __init__.py files in all packages, here’s a bit of an answer.

📡 Python radar - September 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

🔧 Please don't hijack my Python root logger (rednafi.com)
For those developing packages used by others, here’s a good practice for configuring logging in your library.

🧩 pocketpy/pocketpy: Portable Python 3.x Interpreter in Modern C (github.com)
A tiny Python interpreter that is easy to embed in a project to offer scripting capabilities in a familiar language.

📦 uv under discussion on Mastodon (simonwillison.net)
There's a lot of talk about the tool uv lately and its potential to be the future of Python packaging, but a small controversy is still stirring the community regarding the fact that this open-source tool comes from a private startup; this article summarizes a discussion on this subject (note: the author Simon Willison is a prolific and interesting blogger to follow, I recommend it).

🖨️ Improved print readability with pprint (hamatti.org)
A handy Python standard module for displaying standard Python objects in a readable manner (for example, nested structures of dictionaries, lists, etc.).

📡 Python radar - July/August 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

🔎 PyPI Scout (pypiscout.com)
Here is a natural language search engine for Python packages on PyPI, very useful!

📊 Introducing the Anaconda Code add-in for Microsoft Excel (anaconda.com)
Anaconda is offering a beta version of an add-in for Excel that allows you to run Python code from Excel locally on your machine (unlike Microsoft’s Python In Excel which sends all computations to its cloud).

🌐 FastHTML - Modern web applications in pure Python (fastht.ml)
And here’s a new project that proposes to create web applications in "pure" Python, which is quite trendy these days (following the recent ones like reflex, taipy, rio).

📚 What's the deal with setuptools, setup.py, pyproject.toml and wheels? (bitecode.dev)
An article that traces the history of Python tooling for package management, it’s always useful to remember where we came from to understand the mess we are in (as perfectly illustrated by the famous xkcd 1987).

🧰 uv: Unified Python packaging (simonwillison.net)
But here comes this newcomer (which we have already discussed here) that could well change the game: a single Python tool to do everything, and quickly too! It's fresh, just released, to be experimented with but quite promising.

📡 Python radar - May/June 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

🪲 jendrikseipp/vulture: Find dead Python code (github.com)
As the name suggests, this tool helps detect "dead code" in your program, which means unused code. However, be careful, as Python's dynamic nature makes this type of tool not always very reliable, which is well explained in the documentation.

🐍 What’s New In Python 3.13 (docs.python.org)
Here are the notable new features in Python 3.13, including an improved interactive interpreter (see this article for more details), clearer error messages, an embedded yet experimental just-in-time (JIT) compiler that is not enabled by default (Python compilation option), and an experimental mode without the famous Global Interpreter Lock (GIL) that could speed up certain programs.

🧠 Python: Show all subclasses of a class (adamj.eu)
A small piece of code that illustrates the use of the magic method subclasses() to recursively retrieve all subclasses of a parent class, handy for implementing a registry of classes, for example.

🛠️ pyinfra-dev/pyinfra (github.com)
A tool for deploying and managing infrastructure on an inventory of machines with SSH access; according to the documentation, it’s like an equivalent to ansible that is manipulated in Python rather than YAML and is supposed to be much faster.

📡 Python radar - April 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

⚠️ Typosquatting Campaign Targets Python Developers (phylum.io)
Similar to an article previously cited in this newsletter, this one describes a very recent ongoing attack that pushes hundreds of malicious Python packages to PyPI (to steal personal data, passwords, cookies, crypto wallets, etc.), packages with names very close to frequently downloaded Python packages (requests, pillow, matplotlib). Recommendation: make sure to check the names of your packages in your requirements.txt files, setup.py, or pyproject.toml!!

⚙️ Inline run dependencies in pipx 1.4.2 (iscinumpy.dev)
Imagine a Python script that requires one or more external packages, but instead of burdening you with setup.py, pyproject.toml, or requirements.txt and virtual environments, you list your dependencies directly in the header of your script and type "pipx run my_script.py" to execute it, feels like magic, right? This is now possible thanks to pipx and this accepted "Python Enhancement Proposal" PEP 723!

🔗 Client libraries are better when they have no API (csvbase.com)
You administer a web service that exposes data and want to provide a Python client for your users to retrieve the data, and this article explains how to create a client without an API...wait, what?...well, simply by allowing your users to only use the read_csv() function from pandas (or polars, or dask) to fetch the data, all thanks to a little-known library: fsspec, very clever.

📡 Python radar - March 2024

A personal selection of Python-related news and projects that caught my attention this month (note: leading emojis are mine).

🧩 Leveraging Typing.Protocol: Faster Error Detection And Beyond Inheritance (pybit.es)
A good article about the typing.Protocol mechanism introduced in 3.8, which can elegantly replace the use of ABC-type classes (and the inheritance that goes with it) to enforce/validate interfaces at write time (via your IDE's static type checker, for example).

🛡️ Python Software Foundation News: White House recommends use of memory-safe languages like Python (pyfound.blogspot.com)
A short post from the Python Software Foundation (PSF) that relays an official statement from the White House recommending the use of "memory-safe" languages like Python (or Rust). The post also reminds us that although more and more Python extensions are being written (or converted) in Rust, there is still much work to be done to secure the ecosystem.

📡 A Retrospective on Requests (blog.ian.stapletoncordas.co)
One of the three maintainers of the very popular package Requests (one of the most downloaded on PyPI) explains in detail why it is very difficult today to evolve the project, concluding that to him the project seems dead...ouch. It is a project that, while it has had a complicated history, is supported by the PSF, so let's see how things evolve.

📰 The most important Python news in 2023 (python.tips)
An excellent resource for recapping Python news from 2023 organized by topics. Noteworthy topics include Large Language Models and Insights in Software Engineering Practices, which I don't cover much here but may interest you.