D3441: pycompat: export queue module instead of symbols in module (API)
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sun May 6 00:42:28 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG8fb9985382be: pycompat: export queue module instead of symbols in module (API) (authored by indygreg, committed by ).
CHANGED PRIOR TO COMMIT
https://phab.mercurial-scm.org/D3441?vs=8456&id=8464#toc
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3441?vs=8456&id=8464
REVISION DETAIL
https://phab.mercurial-scm.org/D3441
AFFECTED FILES
contrib/check-code.py
contrib/perf.py
mercurial/pycompat.py
mercurial/util.py
mercurial/vfs.py
mercurial/worker.py
CHANGE DETAILS
diff --git a/mercurial/worker.py b/mercurial/worker.py
--- a/mercurial/worker.py
+++ b/mercurial/worker.py
@@ -235,7 +235,7 @@
# iteration.
if self._interrupted:
return
- except util.empty:
+ except pycompat.queue.Empty:
break
except Exception as e:
# store the exception such that the main thread can resurface
@@ -262,8 +262,8 @@
return
workers = _numworkers(ui)
- resultqueue = util.queue()
- taskqueue = util.queue()
+ resultqueue = pycompat.queue.Queue()
+ taskqueue = pycompat.queue.Queue()
# partition work to more pieces than workers to minimize the chance
# of uneven distribution of large tasks between the workers
for pargs in partition(args, workers * 20):
diff --git a/mercurial/vfs.py b/mercurial/vfs.py
--- a/mercurial/vfs.py
+++ b/mercurial/vfs.py
@@ -568,7 +568,7 @@
ui.debug('starting %d threads for background file closing\n' %
threadcount)
- self._queue = util.queue(maxsize=maxqueue)
+ self._queue = pycompat.queue.Queue(maxsize=maxqueue)
self._running = True
for i in range(threadcount):
@@ -600,7 +600,7 @@
except Exception as e:
# Stash so can re-raise from main thread later.
self._threadexception = e
- except util.empty:
+ except pycompat.queue.Empty:
if not self._running:
break
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -60,10 +60,8 @@
b85encode = base85.b85encode
cookielib = pycompat.cookielib
-empty = pycompat.empty
httplib = pycompat.httplib
pickle = pycompat.pickle
-queue = pycompat.queue
safehasattr = pycompat.safehasattr
socketserver = pycompat.socketserver
bytesio = pycompat.bytesio
diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py
--- a/mercurial/pycompat.py
+++ b/mercurial/pycompat.py
@@ -23,7 +23,7 @@
import cookielib
import cPickle as pickle
import httplib
- import Queue as _queue
+ import Queue as queue
import SocketServer as socketserver
import xmlrpclib
@@ -36,16 +36,13 @@
import http.cookiejar as cookielib
import http.client as httplib
import pickle
- import queue as _queue
+ import queue as queue
import socketserver
import xmlrpc.client as xmlrpclib
def future_set_exception_info(f, exc_info):
f.set_exception(exc_info[0])
-empty = _queue.Empty
-queue = _queue.Queue
-
def identity(a):
return a
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -71,6 +71,16 @@
import inspect
getargspec = inspect.getargspec
+try:
+ # 4.7+
+ queue = pycompat.queue.Queue
+except (AttributeError, ImportError):
+ # <4.7.
+ try:
+ queue = pycompat.queue
+ except (AttributeError, ImportError):
+ queue = util.queue
+
# for "historical portability":
# define util.safehasattr forcibly, because util.safehasattr has been
# available since 1.9.3 (or 94b200a11cf7)
@@ -1029,7 +1039,7 @@
else:
mdiff.textdiff(*pair)
else:
- q = util.queue()
+ q = queue()
for i in xrange(threads):
q.put(None)
ready = threading.Condition()
diff --git a/contrib/check-code.py b/contrib/check-code.py
--- a/contrib/check-code.py
+++ b/contrib/check-code.py
@@ -340,7 +340,8 @@
(r'\butil\.Abort\b', "directly use error.Abort"),
(r'^@(\w*\.)?cachefunc', "module-level @cachefunc is risky, please avoid"),
(r'^import atexit', "don't use atexit, use ui.atexit"),
- (r'^import Queue', "don't use Queue, use util.queue + util.empty"),
+ (r'^import Queue', "don't use Queue, use pycompat.queue.Queue + "
+ "pycompat.queue.Empty"),
(r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"),
(r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"),
(r'^import SocketServer', "don't use SockerServer, use util.socketserver"),
To: indygreg, #hg-reviewers, martinvonz
Cc: martinvonz, mercurial-devel
More information about the Mercurial-devel
mailing list