Open Source
Patches merged upstream. Everything here landed in the project it was sent to, with nothing pending and nothing superseded. Each entry links to its pull request, so you can read the review and the diff in full.
more-itertools: numeric_range and float steps
Merged into more-itertools. numeric_range builds each item by multiplying the step, but it derived len(), the in operator, and index() by dividing by the step. With float steps the two methods disagree, so a range reported a length that did not match what it yielded, and it denied membership to its own items. I reported the issue and sent the fix.
pytest: approx() and nested containers
Merged into pytest. approx() refused to descend into a nested container and said so clearly, but only when that container matched the type of the one holding it. A dict inside a list slipped past and was compared exactly, so the tolerance was ignored without warning. Reported in 2022 and still reproducing on main.
FortyMM: transactional email templates
Merged into FortyMM, an open-source table tennis league platform. I rewrote the Devise mailer templates, adding a plain-text alternative to every HTML mail, email-safe responsive CSS, and wording that sounds like the sport the product is about.