annotate 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 |
rev |
line source |
34316
|
1 from __future__ import absolute_import
|
|
2
|
|
3 import os
|
|
4 import time
|
|
5
|
|
6 class mocktime(object):
|
|
7 def __init__(self, increment):
|
|
8 self.time = 0
|
|
9 self.increment = [float(s) for s in increment.split()]
|
|
10 self.pos = 0
|
|
11
|
|
12 def __call__(self):
|
|
13 self.time += self.increment[self.pos % len(self.increment)]
|
|
14 self.pos += 1
|
|
15 return self.time
|
|
16
|
|
17 def uisetup(ui):
|
|
18 time.time = mocktime(os.environ.get('MOCKTIME', '0.1'))
|