##// END OF EJS Templates
transaction: allow finalizer to add finalizer...
transaction: allow finalizer to add finalizer It will make some code (persistent nodemap related) simpler to write, because higher level code can blindly queue finalization without thinking too hard about the context. Differential Revision: https://phab.mercurial-scm.org/D7833

File last commit:

r43347:687b865b default
r44556:2f1d6180 default
Show More
util.py
38 lines | 1.0 KiB | text/x-python | PythonLexer
Pulkit Goyal
interfaceutil: move to interfaces/...
r43079 # util.py - Utilities for declaring interfaces.
#
# Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
# zope.interface imposes a run-time cost due to module import overhead and
# bookkeeping for declaring interfaces. So, we use stubs for various
# zope.interface primitives unless instructed otherwise.
from __future__ import absolute_import
Augie Fackler
formatting: blacken the codebase...
r43346 from .. import encoding
Pulkit Goyal
interfaceutil: move to interfaces/...
r43079
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 if encoding.environ.get(b'HGREALINTERFACES'):
Augie Fackler
formatting: blacken the codebase...
r43346 from ..thirdparty.zope import interface as zi
Pulkit Goyal
interfaceutil: move to interfaces/...
r43079
Attribute = zi.Attribute
Interface = zi.Interface
implementer = zi.implementer
else:
Augie Fackler
formatting: blacken the codebase...
r43346
Pulkit Goyal
interfaceutil: move to interfaces/...
r43079 class Attribute(object):
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 def __init__(self, __name__, __doc__=b''):
Pulkit Goyal
interfaceutil: move to interfaces/...
r43079 pass
class Interface(object):
Augie Fackler
formatting: blacken the codebase...
r43346 def __init__(
self, name, bases=(), attrs=None, __doc__=None, __module__=None
):
Pulkit Goyal
interfaceutil: move to interfaces/...
r43079 pass
def implementer(*ifaces):
def wrapper(cls):
return cls
return wrapper