prologin / django-massmailer

A standalone Django app to send templated emails in batch. Features a custom query engine and template editor with preview
https://gitlab.com/prologin/tech/packages/django-massmailer
GNU General Public License v3.0
17 stars 2 forks source link

Tests show `warn_ungrouped_named_tokens_in_collection` warnings #9

Closed seirl closed 5 years ago

seirl commented 5 years ago
django-massmailer/massmailer/query_parser.py:307: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name '=' on And expression collides with 'value' on contained expression
  equality = (field + p.Suppress('=') + value).setResultsName('=')
django-massmailer/massmailer/query_parser.py:308: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name '!=' on And expression collides with 'value' on contained expression
  inequality = (field + p.Suppress('!=') + value).setResultsName('!=')
django-massmailer/massmailer/query_parser.py:309: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name '<' on And expression collides with 'value' on contained expression
  lt = (field + p.Suppress('<') + value).setResultsName('<')
django-massmailer/massmailer/query_parser.py:310: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name '<=' on And expression collides with 'value' on contained expression
  lte = (field + p.Suppress('<=') + value).setResultsName('<=')
django-massmailer/massmailer/query_parser.py:311: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name '>' on And expression collides with 'value' on contained expression
  gt = (field + p.Suppress('>') + value).setResultsName('>')
django-massmailer/massmailer/query_parser.py:312: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name '>=' on And expression collides with 'value' on contained expression
  gte = (field + p.Suppress('>=') + value).setResultsName('>=')
django-massmailer/massmailer/query_parser.py:322: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'nocase' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:322: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'string' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:323: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'contains' on And expression collides with 'value' on contained expression
  ).setResultsName('contains')
django-massmailer/massmailer/query_parser.py:328: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'nocase' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:328: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'string' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:329: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'startswith' on And expression collides with 'value' on contained expression
  ).setResultsName('startswith')
django-massmailer/massmailer/query_parser.py:334: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'nocase' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:334: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'string' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:335: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'endswith' on And expression collides with 'value' on contained expression
  ).setResultsName('endswith')
django-massmailer/massmailer/query_parser.py:340: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'nocase' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:340: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'value' on And expression collides with 'string' on contained expression
  + string.setResultsName('value')
django-massmailer/massmailer/query_parser.py:341: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'matches' on And expression collides with 'value' on contained expression
  ).setResultsName('matches')
django-massmailer/massmailer/query_parser.py:349: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'between' on And expression collides with 'max' on contained expression
  ).setResultsName('between')
django-massmailer/.venv/lib/python3.7/site-packages/pyparsing.py:1474: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'comparison' on MatchFirst expression collides with 'matches' on contained expression
  return self._setResultsName(name, listAllMatches)
zopieux commented 5 years ago

pyparsing/pyparsing/issues/110

That warning was default-silenced a few hours ago, which to me is a clear signal that this was not ready for public awareness yet. Indeed, I'm not willing to fix an obscure warning with no documented hints on how to get rid of it. In our case, both "value" and eg. "=" token names are used in parse_clause(). As bad as it might be, I'm relying on this behavior, so this is not just about adding random grouping to please PyParsing.