Mixin to add double buffered descriptor methods
Always read/write as double buffering doesn’t make sense for readonly fields
Base Class for fields with complex internal state like Counters
Set InternalClass in your subclass
Base class for double buffered writable fields
Cannot add 2 fields with the same name to MmStat instances
Moving average field that provides a context manager for easy timings
As a context manager: >>> class T(MmStats): ... timer = TimerField() >>> t = T() >>> with t.timer as ctx: ... assert ctx.elapsed > 0.0 >>> assert t.timer.value > 0.0 >>> assert t.timer.last > 0.0