<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def within_radius(self, viewer, points, pt, canvas_radius):
 """Points `points` and point `pt` are in data coordinates. Return True for points within the circle defined by a center at point `pt` and within canvas_radius. The distance between points is scaled by the canvas scale. """

        scales = viewer.get_scale_xy()
        return self.point_within_radius(points, pt, canvas_radius,
                                        scales)