D1990: wireprotoserver: make abstractserverproto a proper abstract base class
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Thu Feb 1 23:12:03 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Plug in the abc module so we can have run-time validation of type
conformance.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1990
AFFECTED FILES
mercurial/wireprotoserver.py
CHANGE DETAILS
diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py
--- a/mercurial/wireprotoserver.py
+++ b/mercurial/wireprotoserver.py
@@ -6,6 +6,7 @@
from __future__ import absolute_import
+import abc
import cgi
import struct
import sys
@@ -37,12 +38,15 @@
Used as reference and documentation.
"""
+ __metaclass__ = abc.ABCMeta
+
+ @abc.abstractmethod
def getargs(self, args):
"""return the value for arguments in <args>
returns a list of values (same order as <args>)"""
- raise NotImplementedError()
+ @abc.abstractmethod
def getfile(self, fp):
"""write the whole content of a file into a file like object
@@ -52,13 +56,12 @@
chunk size is the ascii version of the int.
"""
- raise NotImplementedError()
+ @abc.abstractmethod
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
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list