class Simple(HasTraits):
    x = ShadowProperty(Float)
    # Test attribute.
    _test = Int(0)

    def _x_changed(self, value):
        self._test += 1
class DataSmart(HasTraits):
    x = ShadowProperty(ArrayOrNone, smart_notify=True)
    # Test attribute.
    _test = Any

    def _x_changed(self, value):
        self._test = value.copy()