Files
@ fdde16d7cea0
Branch filter:
Location: kallithea/scripts/pyflakes - annotation
fdde16d7cea0
1.2 KiB
text/plain
celery: fix send_email to work with JSON encoding (Issue #363)
Long time ago, c935bcaf7086 introduced an optional User object parameter to the
send_email task and used the computed full_name_or_username property. Due to the
magic of pickle, that also worked when using Celery to run the task async.
Now, Celery 4 changed the default encoding from Pickle to JSON, which we
anticipated in e539db6cc0da. That broke send_email in some cases, for example
when a user comments on another user's changeset.
Fixed by passing the "From" name as string instead of passing the whole User
object.
Thanks to vyom for reporting.
Long time ago, c935bcaf7086 introduced an optional User object parameter to the
send_email task and used the computed full_name_or_username property. Due to the
magic of pickle, that also worked when using Celery to run the task async.
Now, Celery 4 changed the default encoding from Pickle to JSON, which we
anticipated in e539db6cc0da. That broke send_email in some cases, for example
when a user comments on another user's changeset.
Fixed by passing the "From" name as string instead of passing the whole User
object.
Thanks to vyom for reporting.
51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 | #!/usr/bin/env python3
"""
pyflakes with filter configuration for Kallithea.
Inspired by pyflakes/api.py and flake8/plugins/pyflakes.py .
"""
import sys
import pyflakes.api
import pyflakes.messages
class Reporter:
warned = False
def flake(self, warning):
# ignore known warnings
if isinstance(warning, pyflakes.messages.UnusedVariable):
return
if warning.filename == 'kallithea/bin/kallithea_cli_ishell.py':
if isinstance(warning, pyflakes.messages.ImportStarUsed) and warning.message_args == ('kallithea.model.db',):
return
if isinstance(warning, pyflakes.messages.UnusedImport) and warning.message_args == ('kallithea.model.db.*',):
return
print('%s:%s %s [%s %s]' % (warning.filename, warning.lineno, warning.message % warning.message_args, type(warning).__name__, warning.message_args))
self.warned = True
def unexpectedError(self, filename, msg):
print('Unexpected error for %s: %s' % (filename, msg))
reporter = Reporter()
for filename in sorted(set(sys.argv[1:])):
pyflakes.api.checkPath(filename, reporter=reporter)
if reporter.warned:
raise SystemExit(1)
|