Python linting at Venmo
blog.venmo.com
blog.venmo.com
A "what's wrong" which the linters don't find is that for/else is one of the more confusing aspects of the Python language, and should be avoided when there are equally clear alternatives.
That is, I believe that
for entry in entries:
if entry == key:
break
else:
raise NotFoundError
is better written as: if not any(entry == key for entry in entries):
raise NotFoundError