Source code for pikos.filters.on_change

# -*- coding: utf-8 -*-
#------------------------------------------------------------------------------
#  Package: Pikos toolkit
#  File: filters/on_change.py
#  License: LICENSE.TXT
#
#  Copyright (c) 2012, Enthought, Inc.
#  All rights reserved.
#------------------------------------------------------------------------------


[docs]class OnChange(object): """ A record filter that checks if the record field has changed. A copy of the field value is stored in the object and compared against new values. On value changed the object returns True. Attributes ---------- field : str The field to check for change. previous : Holds the value of the field. Notes ----- - Filters and recorders can be shared between monitors. The filter however is not aware of ownership so use with care when sharing the same instance. - This filter only works with nametuple like records. """
[docs] def __init__(self, field): """ Initialize the filter class. Parameters ---------- field : str The field to check for change """ self.field = field self.previous = None
[docs] def __call__(self, record): """ Check if the field in the new record has changed. """ new = getattr(record, self.field) check = self.previous != new self.previous = new return check