<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_limits(self, limits, coord='data'):
 """Set the bounding box of the viewer extents. Parameters limits : tuple or None A tuple setting the extents of the viewer in the form of ``(ll_pt, ur_pt)``. """

        if limits is not None:
            if len(limits) != 2:
                raise ValueError("limits takes a 2 tuple, or None")

            # convert to data coordinates
            crdmap = self.get_coordmap(coord)
            limits = crdmap.to_data(limits)

        self.t_.set(limits=limits)