view scripts/source_format.py @ 8830:853717af31d3

celery: let async tasks choose at runtime if they should use immediate execution or dispatch to the Celery worker Make it completely safe to use task annotation at import time, before global config has been set.
author Mads Kiilerich <mads@kiilerich.com>
date Fri, 01 Jan 2021 18:04:16 +0100
parents f8971422795e
children
line wrap: on
line source

#!/usr/bin/env python3

# hg files 'set:!binary()&grep("^#!.*python")' 'set:**.py' | xargs scripts/source_format.py

import re
import sys


filenames = sys.argv[1:]

for fn in filenames:
    with open(fn) as f:
        org_content = f.read()

    mod_name = fn[:-3] if fn.endswith('.py') else fn
    mod_name = mod_name[:-9] if mod_name.endswith('/__init__') else mod_name
    mod_name = mod_name.replace('/', '.')
    def f(m):
        return '"""\n%s\n%s\n' % (mod_name, '~' * len(mod_name))
    new_content = re.sub(r'^"""\n(kallithea\..*\n)(~+\n)?', f, org_content, count=1, flags=re.MULTILINE)

    if new_content != org_content:
        with open(fn, 'w') as f:
            f.write(new_content)