mercurial/wireprotov1peer.py
branchstable
changeset 37810 856f381ad74b
parent 37669 1cb54e6193a6
child 38328 aa9dd805234d
equal deleted inserted replaced
37809:80695628adcb 37810:856f381ad74b
    12 import weakref
    12 import weakref
    13 
    13 
    14 from .i18n import _
    14 from .i18n import _
    15 from .node import (
    15 from .node import (
    16     bin,
    16     bin,
    17 )
       
    18 from .thirdparty.zope import (
       
    19     interface as zi,
       
    20 )
    17 )
    21 from . import (
    18 from . import (
    22     bundle2,
    19     bundle2,
    23     changegroup as changegroupmod,
    20     changegroup as changegroupmod,
    24     encoding,
    21     encoding,
    26     pushkey as pushkeymod,
    23     pushkey as pushkeymod,
    27     pycompat,
    24     pycompat,
    28     repository,
    25     repository,
    29     util,
    26     util,
    30     wireprototypes,
    27     wireprototypes,
       
    28 )
       
    29 from .utils import (
       
    30     interfaceutil,
    31 )
    31 )
    32 
    32 
    33 urlreq = util.urlreq
    33 urlreq = util.urlreq
    34 
    34 
    35 def batchable(f):
    35 def batchable(f):
   108         # This looks like it will infinitely recurse. However,
   108         # This looks like it will infinitely recurse. However,
   109         # sendcommands() should modify __class__. This call serves as a check
   109         # sendcommands() should modify __class__. This call serves as a check
   110         # on that.
   110         # on that.
   111         return self.result(timeout)
   111         return self.result(timeout)
   112 
   112 
   113 @zi.implementer(repository.ipeercommandexecutor)
   113 @interfaceutil.implementer(repository.ipeercommandexecutor)
   114 class peerexecutor(object):
   114 class peerexecutor(object):
   115     def __init__(self, peer):
   115     def __init__(self, peer):
   116         self._peer = peer
   116         self._peer = peer
   117         self._sent = False
   117         self._sent = False
   118         self._closed = False
   118         self._closed = False
   306             except Exception:
   306             except Exception:
   307                 pycompat.future_set_exception_info(f, sys.exc_info()[1:])
   307                 pycompat.future_set_exception_info(f, sys.exc_info()[1:])
   308             else:
   308             else:
   309                 f.set_result(result)
   309                 f.set_result(result)
   310 
   310 
   311 @zi.implementer(repository.ipeercommands, repository.ipeerlegacycommands)
   311 @interfaceutil.implementer(repository.ipeercommands,
       
   312                            repository.ipeerlegacycommands)
   312 class wirepeer(repository.peer):
   313 class wirepeer(repository.peer):
   313     """Client-side interface for communicating with a peer repository.
   314     """Client-side interface for communicating with a peer repository.
   314 
   315 
   315     Methods commonly call wire protocol commands of the same name.
   316     Methods commonly call wire protocol commands of the same name.
   316 
   317