Mercurial > kallithea
view scripts/generate-ini.py @ 8276:fdde16d7cea0
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.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sat, 29 Feb 2020 16:06:30 +0100 |
parents | 4b68fbe195b6 |
children | ef9fd1434270 |
line wrap: on
line source
#!/usr/bin/env python3 """ Based on kallithea/lib/paster_commands/template.ini.mako, generate development.ini """ import re from kallithea.lib import inifile # files to be generated from the mako template ini_files = [ ('development.ini', { '[server:main]': { 'host': '0.0.0.0', }, '[app:main]': { 'debug': 'true', 'app_instance_uuid': 'development-not-secret', 'session.secret': 'development-not-secret', }, '[logger_root]': { 'handlers': 'console_color', }, '[logger_routes]': { 'level': 'DEBUG', }, '[logger_beaker]': { 'level': 'DEBUG', }, '[logger_templates]': { 'level': 'INFO', }, '[logger_kallithea]': { 'level': 'DEBUG', }, '[logger_tg]': { 'level': 'DEBUG', }, '[logger_gearbox]': { 'level': 'DEBUG', }, '[logger_whoosh_indexer]': { 'level': 'DEBUG', }, }, ), ] def main(): # make sure all mako lines starting with '#' (the '##' comments) are marked up as <text> makofile = inifile.template_file print('reading:', makofile) mako_org = open(makofile).read() mako_no_text_markup = re.sub(r'</?%text>', '', mako_org) mako_marked_up = re.sub(r'\n(##.*)', r'\n<%text>\1</%text>', mako_no_text_markup, flags=re.MULTILINE) if mako_marked_up != mako_org: print('writing:', makofile) open(makofile, 'w').write(mako_marked_up) # create ini files for fn, settings in ini_files: print('updating:', fn) inifile.create(fn, None, settings) if __name__ == '__main__': main()