For me, I've never had one that was as good as the one from the bar that actually had it on the menu. I'm on the verge of making my own orgeat to figure out what's missing when I make one at home.
I work with a code base that is perhaps going through a similar transition. Performance hasn't really been a consideration and so when new functionality is tacked on we're frequently making a new API call even though we might already have the data somewhere else.
I don't have a name for the pattern or anti-pattern, but people's responses seem to indicate that it's largely a good thing, the change that you're making. I'm reminded of a Martin Fowler-esque or TDD idea that a function should either retrieve data or process it. However I wasn't able to find a blog post about that with a quick search.
I believe that in order to edit, you'd submit a pull request to https://github.com/BitEU/Buy. Someone else has recently done just that.
A cheeky answer: whenever Ruff/flake8-type-checking tells me to. Though I'd only enable that check now that there's an autofix in Ruff as well.
The link is to a person's Mastodon post advertising their own blog post. Here's a direct link to that blog post: https://rednafi.com/python/escape_template_pattern/
BMI "works" for populations. It was originally designed and characterized to measure populations, and so it's the perfect thing to compare massive populations, like states. The majority of people are adequately characterized by BMI, just as they are by waist circumference measures. The "outliers" are vastly more likely to pipe up online.