Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/util.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 | 5cab6f5016fa |
children | bb1b15acfd06 |
comparison
equal
deleted
inserted
replaced
37889:670eb4fa1b86 | 37890: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 |