@property<EOL><INDENT>def indexables(self):<DEDENT>
if self._indexables is None:<EOL><INDENT>self._indexables = []<EOL>self._indexables.extend([<EOL>IndexCol(name=name, axis=axis, pos=i)<EOL>for i, (axis, name) in enumerate(self.attrs.index_cols)<EOL>])<EOL>dc = set(self.data_columns)<EOL>base_pos = len(self._indexables)<EOL>def f(i, c):<EOL><INDENT>klass = DataCol<EOL>if c in dc:<EOL><INDENT>klass = DataIndexableCol<EOL><DEDENT>return klass.create_for_block(i=i, name=c, pos=base_pos + i,<EOL>version=self.version)<EOL><DEDENT>self._indexables.extend(<EOL>[f(i, c) for i, c in enumerate(self.attrs.values_cols)])<EOL><DEDENT>return self._indexables<EOL>
create/cache the indexables if they don't exist