def select_coords(self):
        start, stop = self.start, self.stop
        nrows = self.table.nrows
        if start is None:
            start = 0
        elif start < 0:
            start += nrows
        if self.stop is None:
            stop = nrows
        elif stop < 0:
            stop += nrows

        if self.condition is not None:
            return self.table.table.get_where_list(self.condition.format(),
                                                   start=start, stop=stop,
                                                   sort=True)
        elif self.coordinates is not None:
            return self.coordinates

        return np.arange(start, stop)

# utilities ###
Verify that C{detached} is called C{detach} is called locally.
dataset/ETHPy150Open pydata/pandas/pandas/io/pytables.py/Selection.select_coords--crossover with--dataset/ETHPy150Open twisted/nevow/nevow/test/test_athena.py/LiveMixinTestsMixin.test_detachCallback