comparison mercurial/util.py @ 37844: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 5cab6f5016fa
children bb1b15acfd06
comparison
equal deleted inserted replaced
37843:670eb4fa1b86 37844:8fb9985382be
58 58
59 b85decode = base85.b85decode 59 b85decode = base85.b85decode
60 b85encode = base85.b85encode 60 b85encode = base85.b85encode
61 61
62 cookielib = pycompat.cookielib 62 cookielib = pycompat.cookielib
63 empty = pycompat.empty
64 httplib = pycompat.httplib 63 httplib = pycompat.httplib
65 pickle = pycompat.pickle 64 pickle = pycompat.pickle
66 queue = pycompat.queue
67 safehasattr = pycompat.safehasattr 65 safehasattr = pycompat.safehasattr
68 socketserver = pycompat.socketserver 66 socketserver = pycompat.socketserver
69 bytesio = pycompat.bytesio 67 bytesio = pycompat.bytesio
70 # TODO deprecate stringio name, as it is a lie on Python 3. 68 # TODO deprecate stringio name, as it is a lie on Python 3.
71 stringio = bytesio 69 stringio = bytesio