Python: join my optimization workshop in Lisbon, 10th October π
Iβm running a workshop in Lisbon next month, and youβre invited! Itβs a small, in-person, hands-on session on optimizing Python code, with a Django fl [...]
a collection of dev rss feeds - blogroll
Posts
Iβm running a workshop in Lisbon next month, and youβre invited! Itβs a small, in-person, hands-on session on optimizing Python code, with a Django fl [...]
When a password manager detects that a userβs password has been leaked or reused, it can prompt them to change it, but the password change URL varies [...]
I made another package! Say hello to django-mcpz, for building Model Context Protocol (MCP) servers in your Django project. The package tagline is eas [...]
Zsh modifiers are a family of suffixes that transform words as theyβre expanded. Several of them are dedicated to slicing up filenames, replacing fidd [...]
django-upgrade is my tool for automatically upgrading your project code for new Django versions. It rewrites your Python files to fix deprecations and [...]
Take this validation function: import re TRAIN_NUMBER_RE = re.compile(r"\d{6}") # six digits def is_valid_train_number(value: str) -> bool: re [...]
Take this code: path = "C:\477_data" If we run this with Python 3.11+ in development mode (to enable deprecation warnings), we will see: $ python3.11 [...]
Take this code, defining a small NamedTuple with a keyword argument per field: from typing import NamedTuple Point = NamedTuple("Point", x=int, y=int [...]
New package just landed! emojet is an emoji library for Python: it converts between emoji and their names, in both directions, plus the searching and [...]
Back in January, I introduced tprof, a targeting profiler for Python 3.12+ that measures the time spent in specific functions, rather than your whole [...]