Mercurial > hg
view tests/mocktime.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 | 12b355964de8 |
children | 2372284d9457 |
line wrap: on
line source
from __future__ import absolute_import import os import time class mocktime(object): def __init__(self, increment): self.time = 0 self.increment = [float(s) for s in increment.split()] self.pos = 0 def __call__(self): self.time += self.increment[self.pos % len(self.increment)] self.pos += 1 return self.time def uisetup(ui): time.time = mocktime(os.environ.get('MOCKTIME', '0.1'))