That’s because Python is a bad language for writing parser combinators and parsers based on them. Try Haskell.
In this case, this was a project at $EMPLOYER in an existing codebase with colleagues who have never seen Haskell code, using Haskell would've been a major error in judgement.
Haskell is a great language. It can even be a great language for beginners, especially if there's some senior help on hand.
But it's a terrible language to foist upon an unsuspecting and even unwilling victim.