Inconsistency in pattern matching involving `fractions.Fraction` objects

Yes, this means that if one of the latter is chosen, the first doesn’t work. But if the first is chosen, the latter two have surprising semantics (matching only the numerator).

Yep! But that isn’t what OP wanted to do. And if __match_args__ was defined already, this would have silently introduced a bug that OP might not have noticed for a long time. Having to write out numerator and denominator forces you to think about the fact that you are doing component wise comparison. Also see this previous discussion that popped up in related topics: Missing `__match_args__` attribute for `Fraction`