comparison mercurial/debugcommands.py @ 33438:8056481caa81

codemod: simplify nested withs This is the result of running: python codemod_nestedwith.py **/*.py where codemod_nestedwith.py looks like this: #!/usr/bin/env python # codemod_nestedwith.py - codemod tool to rewrite nested with # # Copyright 2017 Facebook, Inc. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import, print_function import sys import redbaron def readpath(path): with open(path) as f: return f.read() def writepath(path, content): with open(path, 'w') as f: f.write(content) def main(argv): if not argv: print('Usage: codemod_nestedwith.py FILES') for i, path in enumerate(argv): print('(%d/%d) scanning %s' % (i + 1, len(argv), path)) changed = False red = redbaron.RedBaron(readpath(path)) processed = set() for node in red.find_all('with'): if node in processed or node.type != 'with': continue top = node child = top[0] while True: if len(top) > 1 or child.type != 'with': break # estimate line length after merging two "with"s new = '%swith %s:' % (top.indentation, top.contexts.dumps()) new += ', %s' % child.contexts.dumps() # only do the rewrite if the end result is within 80 chars if len(new) > 80: break processed.add(child) top.contexts.extend(child.contexts) top.value = child.value top.value.decrease_indentation(4) child = child[0] changed = True if changed: print('updating %s' % path) writepath(path, red.dumps()) if __name__ == "__main__": sys.exit(main(sys.argv[1:])) Differential Revision: https://phab.mercurial-scm.org/D77
author Jun Wu <quark@fb.com>
date Thu, 13 Jul 2017 18:31:35 -0700
parents 4672db164c98
children 9a9f95214f46
comparison
equal deleted inserted replaced
33437:0720e6265c8a 33438:8056481caa81
2175 displayer.close() 2175 displayer.close()
2176 2176
2177 @command('debugupdatecaches', []) 2177 @command('debugupdatecaches', [])
2178 def debugupdatecaches(ui, repo, *pats, **opts): 2178 def debugupdatecaches(ui, repo, *pats, **opts):
2179 """warm all known caches in the repository""" 2179 """warm all known caches in the repository"""
2180 with repo.wlock(): 2180 with repo.wlock(), repo.lock():
2181 with repo.lock(): 2181 repo.updatecaches()
2182 repo.updatecaches()
2183 2182
2184 @command('debugupgraderepo', [ 2183 @command('debugupgraderepo', [
2185 ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')), 2184 ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')),
2186 ('', 'run', False, _('performs an upgrade')), 2185 ('', 'run', False, _('performs an upgrade')),
2187 ]) 2186 ])