MkDocs is no longer actively maintained. ProperDocs is the drop-in replacement community fork. Zensical is a new project with the same goal.
read moreOther articles
dot-agents: Skills for AI Agents
A collection of SKILL.md files that tell AI agents how to manage repos, validate docs, and handle Python projects.
read morePyGrunn 2026 talk: Agentic Engineering
Avoid risky Python updates: The 7-day safety buffer
Recent attacks on LiteLLM and PyTorch Lightning show how dangerous "bleeding edge" updates can be for your security. Use a seven-day time gate to ensure your packages are vetted by the community before they touch your code.
read morepytest-codeblock - A pytest plugin for testing code examples in Markdown and reStructuredText files
Tired of broken code snippets in your documentation? Try pytest-codeblock, a zero-config plugin that supports both Markdown and reStructuredText. It brings the full power of pytest—including fixtures, markers, and native async support—directly into your docs without any boilerplate or manual wiring. Just name your block test_name_of_your_block and stop relying on users to find your documentation bugs.
read moreUnderstanding uv sync and dependency conflicts
While uv pip compile only resolves what you specifically request, uv sync attempts to resolve every optional dependency in your project simultaneously. This can lead to unexpected failures if different "extras," such as ai and deploy, have conflicting requirements. You can fix this by explicitly declaring these incompatible extras in your pyproject.toml file to guide the resolver correctly.
read morelicence-normaliser: Taming licence chaos in Python

Tired of wrestling with messy license strings like "MIT License" vs. "The MIT License" or cryptic URLs? licence-normaliser is a lightweight Python tool that tames the chaos. It maps inconsistent metadata into a clean, machine-readable hierarchy (Family → License → Version), turning strings like CC BY-NC-ND 4.0 into a tidy cc-by-nc-nd-4.0 automatically. Whether you're scraping repos or managing compliance, it handles SPDX codes, prose, and even complex Creative Commons variants with ease—giving you a single source of truth for your legal metadata.
read moreUseful plugins for VSCode
Supercharge your VS Code setup with this curated list of essential plugins! Whether you're a Python pro needing Pylance and Makefile support, or a documentation stickler looking for Markdown and reStructuredText tools, these extensions bridge the gap between a basic editor and a powerhouse IDE. Plus, grab the PyCharm Theme to get that classic JetBrains look without sacrificing VS Code's lightweight speed.
read moreopen-webui setup on macOS
Want to run Open WebUI as a seamless background service on your Mac? This guide walks you through setting it up with launchd, so it starts automatically every time you log in. Using uv for a clean install and a simple .plist configuration, you'll get persistent hosting, automatic crash recovery, and easy log management. No more manual terminal commands—just a reliable local AI interface ready whenever you need it.
read moreHide *.py,cover files from IDE
Clean up your workspace by hiding those pesky *.py,cover files from your IDE. Whether you're using VS Code or PyCharm, this quick setting change keeps your file tree focused on your actual source code by filtering out coverage reports. Just a few clicks in your editor's "Excluded" or "Ignored" file settings, and those clutter-causing files disappear from view while remaining safe on your disk.
read moreSafezip - zero-dependency wrapper for secure ZIP extraction

Safezip is a zero-dependency Python wrapper for zipfile that makes secure extraction the default. It provides essential protections against ZipSlip, ZIP bombs, and inconsistent ZIP64 headers—security features missing from the standard library. With support for atomic writes and environment-based configuration, it is an ideal drop-in solution for safely handling untrusted user uploads in production.
read moreVS Code for Pycharm users
Switching to VS Code can be a headache if you're used to the JetBrains look. This guide helps you clone that experience in two simple steps.
read morePyData Amsterdam 2025 notes
PyData Amsterdam 2025 highlighted the latest advancements in data engineering and AI, focusing on efficiency, performance, and modern development tools. Key trends included automated prompt optimization, zero-copy data sharing, and the rise of next-generation notebook environments. The event also showcased the growing maturity of the LLM ecosystem through improved RAG architectures and lightweight models for faster development.
read moreHow to debug Python applications

In software development, testing is an essential part of ensuring that code works as intended. One critical aspect of testing is debugging, which involves finding and fixing errors or bugs in a program. In this article, we’ll explore how to debug Python applications and highlight some of the most commonly used methods for debugging Python code.
read more
