# HG changeset patch # User Gregory Szorc # Date 1522461433 25200 # Node ID e826fe7a08c73ed484bb09d7ea2b2093750cec27 # Parent 39f7d4ee8bcde3bfb8f2d351609f07f686bd131b 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 diff -r 39f7d4ee8bcd -r e826fe7a08c7 mercurial/httppeer.py --- 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 diff -r 39f7d4ee8bcd -r e826fe7a08c7 mercurial/localrepo.py --- 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() diff -r 39f7d4ee8bcd -r e826fe7a08c7 mercurial/sshpeer.py --- 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 diff -r 39f7d4ee8bcd -r e826fe7a08c7 tests/test-wireproto.py --- 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'