comparison contrib/check-code.py @ 37890:8fb9985382be

pycompat: export queue module instead of symbols in module (API) Previously, pycompat and util re-exported individual symbols from the queue module. This had the side-effect of forcing the loading of the queue module whenever pycompat/util was imported. These symbols aren't used very often. So importing the module to get a handle on the symbols is wasteful. This commit changes pycompat so it no longer exports the individual symbols in the queue module. Instead, we make the imported module a "public" symbol. We drop the individual symbol aliases from the util module. All consumers are updated to use pycompat.queue.* instead. This change makes 300 invocations of `hg log -r. -T '{rev}\n'` a little faster: before: 18.44s after: 17.87s Differential Revision: https://phab.mercurial-scm.org/D3441
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 05 May 2018 18:35:16 -0700
parents 79af9ae46a78
children 882ef6949bdc
comparison
equal deleted inserted replaced
37889:670eb4fa1b86 37890:8fb9985382be
338 # XXX only catch mutable arguments on the first line of the definition 338 # XXX only catch mutable arguments on the first line of the definition
339 (r'def.*[( ]\w+=\{\}', "don't use mutable default arguments"), 339 (r'def.*[( ]\w+=\{\}', "don't use mutable default arguments"),
340 (r'\butil\.Abort\b', "directly use error.Abort"), 340 (r'\butil\.Abort\b', "directly use error.Abort"),
341 (r'^@(\w*\.)?cachefunc', "module-level @cachefunc is risky, please avoid"), 341 (r'^@(\w*\.)?cachefunc', "module-level @cachefunc is risky, please avoid"),
342 (r'^import atexit', "don't use atexit, use ui.atexit"), 342 (r'^import atexit', "don't use atexit, use ui.atexit"),
343 (r'^import Queue', "don't use Queue, use util.queue + util.empty"), 343 (r'^import Queue', "don't use Queue, use pycompat.queue.Queue + "
344 "pycompat.queue.Empty"),
344 (r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"), 345 (r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"),
345 (r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"), 346 (r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"),
346 (r'^import SocketServer', "don't use SockerServer, use util.socketserver"), 347 (r'^import SocketServer', "don't use SockerServer, use util.socketserver"),
347 (r'^import urlparse', "don't use urlparse, use util.urlreq"), 348 (r'^import urlparse', "don't use urlparse, use util.urlreq"),
348 (r'^import xmlrpclib', "don't use xmlrpclib, use util.xmlrpclib"), 349 (r'^import xmlrpclib', "don't use xmlrpclib, use util.xmlrpclib"),