Source code for zope.minmax._minmax

import persistent
import zope.interface

from zope.minmax import interfaces


[docs] @zope.interface.implementer(interfaces.IAbstractValue) class AbstractValue(persistent.Persistent): """ Abstract implementation of `zope.minmax.interfaces.IAbstractValue`. Subclasses *must* implement `_p_resolveConflict`. """ def __init__(self, value=None): self.value = value def __getstate__(self): return self.value def __setstate__(self, value): self.value = value def __bool__(self): return bool(self.value) def _p_resolveConflict(self, old, commited, new): """ Subclasses must implement this method. :raises NotImplementedError: Unless subclasses override. """ raise NotImplementedError()
[docs] class Maximum(AbstractValue): def _p_resolveConflict(self, old, commited, new): # including old does not seem logical but it's open to discussion return max(commited, new)
[docs] class Minimum(AbstractValue): def _p_resolveConflict(self, old, commited, new): # including old does not seem logical but it's open to discussion return min(commited, new)