annotate scripts/source_format.py @ 8882:81e6b5e62a2c

setup: make chardet a mandatory dependency It was made mandatory in 9685f50a69d0. At that time it seemed like it always were present due to indirect dependencies, but apparently that is no longer the case.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 12 May 2021 12:01:54 +0200
parents f8971422795e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8771
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
1 #!/usr/bin/env python3
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
2
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
3 # hg files 'set:!binary()&grep("^#!.*python")' 'set:**.py' | xargs scripts/source_format.py
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
4
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
5 import re
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
6 import sys
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
7
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
8
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
9 filenames = sys.argv[1:]
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
10
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
11 for fn in filenames:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
12 with open(fn) as f:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
13 org_content = f.read()
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
14
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
15 mod_name = fn[:-3] if fn.endswith('.py') else fn
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
16 mod_name = mod_name[:-9] if mod_name.endswith('/__init__') else mod_name
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
17 mod_name = mod_name.replace('/', '.')
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
18 def f(m):
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
19 return '"""\n%s\n%s\n' % (mod_name, '~' * len(mod_name))
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
20 new_content = re.sub(r'^"""\n(kallithea\..*\n)(~+\n)?', f, org_content, count=1, flags=re.MULTILINE)
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
21
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
22 if new_content != org_content:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
23 with open(fn, 'w') as f:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
24 f.write(new_content)