I tend to prefer `%r` in error messages since it can be lower level and therefore give more information about the offending object.  But I can be swayed either way if there's a good reason.