comparison mercurial/pycompat.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 1cb54e6193a6
children aac4be30e250
comparison
equal deleted inserted replaced
37843:670eb4fa1b86 37844:8fb9985382be
21 21
22 if not ispy3: 22 if not ispy3:
23 import cookielib 23 import cookielib
24 import cPickle as pickle 24 import cPickle as pickle
25 import httplib 25 import httplib
26 import Queue as _queue 26 import Queue as queue
27 import SocketServer as socketserver 27 import SocketServer as socketserver
28 import xmlrpclib 28 import xmlrpclib
29 29
30 from .thirdparty.concurrent import futures 30 from .thirdparty.concurrent import futures
31 31
34 else: 34 else:
35 import concurrent.futures as futures 35 import concurrent.futures as futures
36 import http.cookiejar as cookielib 36 import http.cookiejar as cookielib
37 import http.client as httplib 37 import http.client as httplib
38 import pickle 38 import pickle
39 import queue as _queue 39 import queue as queue
40 import socketserver 40 import socketserver
41 import xmlrpc.client as xmlrpclib 41 import xmlrpc.client as xmlrpclib
42 42
43 def future_set_exception_info(f, exc_info): 43 def future_set_exception_info(f, exc_info):
44 f.set_exception(exc_info[0]) 44 f.set_exception(exc_info[0])
45
46 empty = _queue.Empty
47 queue = _queue.Queue
48 45
49 def identity(a): 46 def identity(a):
50 return a 47 return a
51 48
52 if ispy3: 49 if ispy3: