peer: make ui an attribute
With abc interfaces, instance attributes could not satisfy
@abc.abstractproperty requirements because interface conformance
was tested at type creation time. When we created the abc
peer interfaces, we had to make "ui" a @property to satisfy
abc.
Now that peer interfaces are using zope.interface and there is no
import time validation (but there are tests validating instances
conform to the interface), we can go back to using regular object
attributes.
Differential Revision: https://phab.mercurial-scm.org/D3069
--- a/mercurial/httppeer.py Fri Mar 30 18:53:17 2018 -0700
+++ b/mercurial/httppeer.py Fri Mar 30 18:57:13 2018 -0700
@@ -135,7 +135,7 @@
class httppeer(wireproto.wirepeer):
def __init__(self, ui, path, url, opener):
- self._ui = ui
+ self.ui = ui
self._path = path
self._url = url
self._caps = None
@@ -150,9 +150,9 @@
getattr(h, "close_all", lambda: None)()
def _openurl(self, req):
- if (self._ui.debugflag
- and self._ui.configbool('devel', 'debug.peer-request')):
- dbg = self._ui.debug
+ if (self.ui.debugflag
+ and self.ui.configbool('devel', 'debug.peer-request')):
+ dbg = self.ui.debug
line = 'devel-peer-request: %s\n'
dbg(line % '%s %s' % (req.get_method(), req.get_full_url()))
hgargssize = None
@@ -179,17 +179,13 @@
start = util.timer()
ret = self._urlopener.open(req)
- if self._ui.configbool('devel', 'debug.peer-request'):
+ if self.ui.configbool('devel', 'debug.peer-request'):
dbg(line % ' finished in %.4f seconds (%s)'
% (util.timer() - start, ret.code))
return ret
# Begin of ipeerconnection interface.
- @util.propertycache
- def ui(self):
- return self._ui
-
def url(self):
return self._path
--- a/mercurial/localrepo.py Fri Mar 30 18:53:17 2018 -0700
+++ b/mercurial/localrepo.py Fri Mar 30 18:57:13 2018 -0700
@@ -162,15 +162,11 @@
if caps is None:
caps = moderncaps.copy()
self._repo = repo.filtered('served')
- self._ui = repo.ui
+ self.ui = repo.ui
self._caps = repo._restrictcapabilities(caps)
# Begin of _basepeer interface.
- @util.propertycache
- def ui(self):
- return self._ui
-
def url(self):
return self._repo.url()
--- a/mercurial/sshpeer.py Fri Mar 30 18:53:17 2018 -0700
+++ b/mercurial/sshpeer.py Fri Mar 30 18:57:13 2018 -0700
@@ -354,7 +354,7 @@
stderr and to forward its output.
"""
self._url = url
- self._ui = ui
+ self.ui = ui
# self._subprocess is unused. Keeping a handle on the process
# holds a reference and prevents it from being garbage collected.
self._subprocess = proc
@@ -379,10 +379,6 @@
# Begin of ipeerconnection interface.
- @util.propertycache
- def ui(self):
- return self._ui
-
def url(self):
return self._url
--- a/tests/test-wireproto.py Fri Mar 30 18:53:17 2018 -0700
+++ b/tests/test-wireproto.py Fri Mar 30 18:57:13 2018 -0700
@@ -32,11 +32,7 @@
class clientpeer(wireproto.wirepeer):
def __init__(self, serverrepo, ui):
self.serverrepo = serverrepo
- self._ui = ui
-
- @property
- def ui(self):
- return self._ui
+ self.ui = ui
def url(self):
return b'test'