def get_column(self, index, numeric=False):
        if (index, numeric) in self.column_cache:
            return self.column_cache[(index, numeric)]

        numpy = get_numpy(False)

        if numeric and numpy is not None:
            result = numpy.loadtxt(
                    self.filename,
                    dtype=numpy.float32,
                    delimiter=self.delimiter,
                    skiprows=self.skip_lines,
                    usecols=[index])
        else:
            with open(self.filename, 'rb') as fp:
                for i in xrange(self.skip_lines):
                    line = fp.readline()
                    if not line:
                        raise ValueError("skip_lines greater than the number "
                                         "of lines in the file")
                if self.dialect is not None:
                    reader = csv.reader(fp, dialect=self.dialect)
                else:
                    reader = csv.reader(fp, delimiter=self.delimiter)

                getter = operator.itemgetter(index)
                try:
                    result = []
                    for rownb, row in enumerate(reader, 1):
                        result.append(getter(row))
                except __HOLE__:
                    raise ValueError("Invalid CSV file: only %d fields on "
                                     "line %d (column %d requested)" % (
                                         len(row), rownb, index))
            if numeric:
                result = [float(e) for e in result]

        self.column_cache[(index, numeric)] = result
        return result
dataset/ETHPy150Open VisTrails/VisTrails/vistrails/packages/tabledata/read/read_csv.py/CSVTable.get_column