def mesh(self, motor1, start1, finish1, npts1,
               motor2, start2, finish2, npts2, dtime):
        """mesh scan: absolute scan of motor1 at each
        position for motor2"""
        self._checkmotors(motor1, motor2)

        self._scan.positioners = [self.motors[motor1], self.motors[motor2]]

        fast = npts2* [np.linspace(start1, finish1, npts1)]
        slow = [[i]*npts1 for i in np.linspace(start2, finish2, npts2)]

        self._scan.positioners[0].array = np.array(fast).flatten()
        self._scan.positioners[1].array = np.array(slow).flatten()

        # set breakpoints to be the end of each row
        self._scan.breakpoints = [(i+1)*npts1 - 1 for i in range(npts2-1)]

        # add print statement at end of each row
        def show_meshstatus(breakpoint=None):
            print('finished row  %i of %i' % (1+(breakpoint/npts1), npts2))
            time.sleep(0.25)
        self._scan.at_break_methods.append(show_meshstatus)
        self._run(dtime)
dataset/ETHPy150Open xraypy/xraylarch/plugins/epics/spyk.py/Spyk.mesh/original