Patchwork D2083: wireprotoserver: remove redirect() and restore() (API)

login
register
mail settings
Submitter phabricator
Date Feb. 8, 2018, 12:27 a.m.
Message ID <differential-rev-PHID-DREV-4x2sjuwcx577aubkvzqb-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/27450/
State Superseded
Headers show

Comments

phabricator - Feb. 8, 2018, 12:27 a.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  They are no longer used in core.
  
  .. api::
  
    redirect() and restore() have been removed from the wire protocol
    handler interface. Use mayberedirectstdio() instead.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2083

AFFECTED FILES
  mercurial/wireprotoserver.py

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py
--- a/mercurial/wireprotoserver.py
+++ b/mercurial/wireprotoserver.py
@@ -88,23 +88,6 @@ 
         won't be captured.
         """
 
-    @abc.abstractmethod
-    def redirect(self):
-        """may setup interception for stdout and stderr
-
-        See also the `restore` method."""
-
-    # If the `redirect` function does install interception, the `restore`
-    # function MUST be defined. If interception is not used, this function
-    # MUST NOT be defined.
-    #
-    # left commented here on purpose
-    #
-    #def restore(self):
-    #    """reinstall previous stdout and stderr and return intercepted stdout
-    #    """
-    #    raise NotImplementedError()
-
 def decodevaluefromheaders(req, headerprefix):
     """Decode a long value from multiple HTTP request headers.
 
@@ -181,15 +164,6 @@ 
             self._ui.fout = oldout
             self._ui.ferr = olderr
 
-    def redirect(self):
-        self._oldio = self._ui.fout, self._ui.ferr
-        self._ui.ferr = self._ui.fout = stringio()
-
-    def restore(self):
-        val = self._ui.fout.getvalue()
-        self._ui.ferr, self._ui.fout = self._oldio
-        return val
-
     def _client(self):
         return 'remote:%s:%s:%s' % (
             self._req.env.get('wsgi.url_scheme') or 'http',
@@ -406,9 +380,6 @@ 
     def mayberedirectstdio(self):
         yield None
 
-    def redirect(self):
-        pass
-
     def _sendresponse(self, v):
         self._fout.write("%d\n" % len(v))
         self._fout.write(v)