D1969: wireprotoserver: move abstractserverproto class from wireproto
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Thu Feb 1 20:19:28 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Let's have the interface live next to things that define it.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1969
AFFECTED FILES
mercurial/wireproto.py
mercurial/wireprotoserver.py
CHANGE DETAILS
diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py
--- a/mercurial/wireprotoserver.py
+++ b/mercurial/wireprotoserver.py
@@ -30,6 +30,46 @@
HGTYPE2 = 'application/mercurial-0.2'
HGERRTYPE = 'application/hg-error'
+class abstractserverproto(object):
+ """abstract class that summarizes the protocol API
+
+ Used as reference and documentation.
+ """
+
+ def getargs(self, args):
+ """return the value for arguments in <args>
+
+ returns a list of values (same order as <args>)"""
+ raise NotImplementedError()
+
+ def getfile(self, fp):
+ """write the whole content of a file into a file like object
+
+ The file is in the form::
+
+ (<chunk-size>\n<chunk>)+0\n
+
+ chunk size is the ascii version of the int.
+ """
+ raise NotImplementedError()
+
+ def redirect(self):
+ """may setup interception for stdout and stderr
+
+ See also the `restore` method."""
+ raise NotImplementedError()
+
+ # 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.
@@ -47,7 +87,7 @@
return ''.join(chunks)
-class webproto(wireproto.abstractserverproto):
+class webproto(abstractserverproto):
def __init__(self, req, ui):
self.req = req
self.response = ''
@@ -201,7 +241,7 @@
return []
raise error.ProgrammingError('hgweb.protocol internal failure', rsp)
-class sshserver(wireproto.abstractserverproto):
+class sshserver(abstractserverproto):
def __init__(self, ui, repo):
self.ui = ui
self.repo = repo
diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
--- a/mercurial/wireproto.py
+++ b/mercurial/wireproto.py
@@ -41,46 +41,6 @@
'IncompatibleClient')
bundle2required = '%s\n(%s)\n' % (bundle2requiredmain, bundle2requiredhint)
-class abstractserverproto(object):
- """abstract class that summarizes the protocol API
-
- Used as reference and documentation.
- """
-
- def getargs(self, args):
- """return the value for arguments in <args>
-
- returns a list of values (same order as <args>)"""
- raise NotImplementedError()
-
- def getfile(self, fp):
- """write the whole content of a file into a file like object
-
- The file is in the form::
-
- (<chunk-size>\n<chunk>)+0\n
-
- chunk size is the ascii version of the int.
- """
- raise NotImplementedError()
-
- def redirect(self):
- """may setup interception for stdout and stderr
-
- See also the `restore` method."""
- raise NotImplementedError()
-
- # 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()
-
class remoteiterbatcher(peer.iterbatcher):
def __init__(self, remote):
super(remoteiterbatcher, self).__init__()
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list