From ea10fb239f5731f4ff365a21d778485b88ee3f20 2021-03-09 20:48:30 From: Brett Smith Date: 2021-03-09 20:48:30 Subject: [PATCH] query: Add a user hint for query TypeErrors. The error message that native bean-query provides when this happens confuses many users. Add a hint to point them in the right direction. --- diff --git a/conservancy_beancount/reports/query.py b/conservancy_beancount/reports/query.py index 08a700ad45437329e7bf7daeb781f3269c9a83b3..69822b92110f074fe3bb7d4c3d1961ec09634f33 100644 --- a/conservancy_beancount/reports/query.py +++ b/conservancy_beancount/reports/query.py @@ -238,6 +238,15 @@ class BQLShell(bc_query_shell.BQLShell): ) except Exception as error: logger.error(str(error), exc_info=logger.isEnabledFor(logging.DEBUG)) + if (isinstance(error, TypeError) + and error.args + and ' not supported between instances ' in error.args[0]): + logger.info( + "HINT: Are you using ORDER BY or comparisons with metadata " + "that isn't consistently set?\n " + "Try looking up that metadata with str_meta() instead to " + "ensure your comparisons use a consistent data type.", + ) return if not rows and output_format != 'ods':