##// END OF EJS Templates
debugdeltachain: avoid division by zero when a chain is empty...
debugdeltachain: avoid division by zero when a chain is empty The two ratios chainratio and extraratio are computed using dividers that may be zero when the file is empty. As the denominators are integers, the limit of the ratio "just before zero" is the numerator value itself. If the numerator itself is zero, the ratio value is still meaningful: in both cases, a "good" value is a low ratio, and a size of zero is the optimal case.

File last commit:

r37828:856f381a stable
r38668:93313f66 default
Show More
interfaceutil.py
40 lines | 1.1 KiB | text/x-python | PythonLexer
# interfaceutil.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
from .. import (
encoding,
)
if encoding.environ.get('HGREALINTERFACES'):
from ..thirdparty.zope import (
interface as zi,
)
Attribute = zi.Attribute
Interface = zi.Interface
implementer = zi.implementer
else:
class Attribute(object):
def __init__(self, __name__, __doc__=''):
pass
class Interface(object):
def __init__(self, name, bases=(), attrs=None, __doc__=None,
__module__=None):
pass
def implementer(*ifaces):
def wrapper(cls):
return cls
return wrapper