def min_distance(self, value): _u.validate_attr_numeric(self, "min_distance", value) _u.validate_attr_not_negative(self, "min_distance", value) self._min_distance = value self._log_property_changed("min_distance") if value < 20 and self._should_log(ttrk.log_warn): self._log_write( "WARNING: min_distance was set to a small value ({:}), this may result in incorrect directions", True)
def rotation(self, value): if self._preloaded: raise ttrk.InvalidStateError( "{:}.rotation cannot be set after the object was preloaded". format(_u.get_type_name(self))) _u.validate_attr_numeric(self, "rotation", value) value = value % 360 self._rotation = value self._log_property_changed("rotation")
def onset_time(self, value): if value is not None: _u.validate_attr_is_collection(self, "onset_time", value, min_length=1) for i in range(len(value)): _u.validate_attr_numeric(self, "onset_time[%d]" % i, value[i]) _u.validate_attr_not_negative(self, "onset_time[%d]" % i, value[i]) self._onset_time = value self._onset_time_multiple = True self._log_property_changed("onset_time")
def last_validated_rgb(self, value): if u.is_rgb(value): self._last_validated_rgb = u.color_rgb_to_num(value) else: if value is not None: _u.validate_attr_numeric(self, "last_validated_rgb", value) _u.validate_attr_not_negative(self, "last_validated_rgb", value) self._last_validated_rgb = value self._log_setter("last_validated_rgb")
def min_angle(self, value): if value is None: self._min_angle = None self._min_angle_rad = None return _u.validate_attr_numeric(self, "min_angle", value) self._min_angle = value % 360 self._min_angle_rad = self._min_angle / 360 * np.pi * 2 self._log_property_changed("min_angle")
def max_angle(self, value): if value is None: self._max_angle = None self._max_angle_rad = None return _u.validate_attr_numeric(self, "max_angle", value) self._max_angle = value % 360 self._max_angle_rad = self._max_angle / 360 * np.pi * 2 self._log_setter("max_angle")
def degrees_at_t0(self, value): value = _u.validate_attr_numeric(self, "degrees_at_t0", value, none_value=_u.NoneValues.ChangeTo0) self._degrees_at_t0 = value % 360 self._log_property_changed("degrees_at_t0")
def duration(self, value): is_multiple = False if isinstance(value, numbers.Number): _u.validate_attr_positive(self, "duration", value) elif value is not None: is_multiple = True _u.validate_attr_is_collection(self, "duration", value, min_length=1) for i in range(len(value)): _u.validate_attr_numeric(self, "duration[%d]" % i, value[i]) _u.validate_attr_positive(self, "duration[%d]" % i, value[i]) self._duration = value self._duration_multiple = is_multiple self._log_property_changed("duration")
def position(self, value): if self._preloaded: raise ttrk.InvalidStateError( "{:}.position cannot be set after the object was preloaded". format(_u.get_type_name(self))) if value is None: self._position = None else: _u.validate_attr_is_collection(self, "size", value, 2, 2) _u.validate_attr_numeric(self, "size[0]", value[0]) _u.validate_attr_numeric(self, "size[1]", value[1]) self._position = (int(value[0]), int(value[1])) self._log_property_changed("position")
def zero_angle(self, value): _u.validate_attr_numeric(self, "zero_angle", value) self._zero_angle = value self._log_setter("zero_angle")
def max_movement_time(self, value): value = _u.validate_attr_numeric(self, "max_movement_time", value, _u.NoneValues.ChangeTo0) _u.validate_attr_positive(self, "max_movement_time", value) self._max_movement_time = value self._log_property_changed("max_movement_time")
def end_coord(self, value): _u.validate_attr_numeric(self, "end_coord", value, _u.NoneValues.Invalid) self._end_coord = value self._log_property_changed("end_coord")
def origin_coord(self, value): _u.validate_attr_numeric(self, "origin_coord", value, _u.NoneValues.Invalid) self._origin_coord = value self._log_setter("origin_coord")
def max_curves_per_trial(self, value): _u.validate_attr_numeric(self, "max_curves_per_trial", value, none_value=_u.NoneValues.Valid) _u.validate_attr_not_negative(self, "max_curves_per_trial", value) self._max_curves_per_trial = value
def stay_duration(self, value): _u.validate_attr_numeric(self, "stay_duration", value, none_value=True) _u.validate_attr_not_negative(self, "stay_duration", value) self._stay_duration = value self._log_property_changed(self, "stay_duration")
def rotation(self, value): _u.validate_attr_numeric(self, "rotation", value) value = value % 360 self._rotation = value self._rotation_radians = value / 180 * np.pi
def max_valid_back_movement(self, value): _u.validate_attr_numeric(self, "max_valid_back_movement", value) _u.validate_attr_not_negative(self, "max_valid_back_movement", value) self._max_valid_back_movement = value self._log_setter("max_valid_back_movement")
def calc_angle_interval(self, value): value = _u.validate_attr_numeric(self, "calc_angle_interval", value, _u.NoneValues.ChangeTo0) _u.validate_attr_not_negative(self, "calc_angle_interval", value) self._calc_angle_interval = value self._log_setter("calc_angle_interval")
def min_distance(self, value): _u.validate_attr_numeric(self, "min_distance", value) _u.validate_attr_not_negative(self, "min_distance", value) self._min_distance = value self._log_setter("min_distance")
def end_coord(self, value): _u.validate_attr_numeric(self, "end_coord", value, _u.NoneValues.Invalid) self._end_coord = value self._log_setter("end_coord")
def zero_angle(self, value): _u.validate_attr_numeric(self, "zero_angle", value) self._zero_angle = value self._log_property_changed("zero_angle")
def max_trial_duration(self, value): value = _u.validate_attr_numeric(self, "max_trial_duration", value, _u.NoneValues.ChangeTo0) _u.validate_attr_positive(self, "max_trial_duration", value) self._max_trial_duration = value self._log_setter("max_trial_duration")
def grace_period(self, value): value = _u.validate_attr_numeric(self, "grace_period", value, _u.NoneValues.ChangeTo0) _u.validate_attr_not_negative(self, "grace_period", value) self._grace_period = value self._log_setter("grace_period")
def min_angle_change_per_curve(self, value): _u.validate_attr_numeric(self, "min_angle_change_per_curve", value) _u.validate_attr_not_negative(self, "min_angle_change_per_curve", value) self._min_angle_change_per_curve = value self._log_setter("min_angle_change_per_curve")
def zoom_duration(self, value): _u.validate_attr_numeric(self, "zoom_duration", value) _u.validate_attr_positive(self, "zoom_duration", value) self._zoom_duration = value self._log_property_changed(self, "zoom_duration")
def max_valid_back_movement(self, value): _u.validate_attr_numeric(self, "max_valid_back_movement", value) _u.validate_attr_not_negative(self, "max_valid_back_movement", value) self._max_valid_back_movement = value self._log_property_changed("max_valid_back_movement")