def is_same_as(self, other_databox, headers=True, columns=True, header_order=True, column_order=True, ckeys=True):
d = other_databox<EOL>if not hasattr(other_databox, '<STR_LIT>'): return False<EOL>if headers:<EOL><INDENT>if not len(self.hkeys) == len(d.hkeys): return False<EOL>if header_order and not self.hkeys == d.hkeys: return False<EOL>for k in self.hkeys:<EOL><INDENT>if not k in d.hkeys: return False<EOL>if not self.h(k) == d.h(k): return False<EOL><DEDENT><DEDENT>if columns:<EOL><INDENT>if not len(self.ckeys) == len(d.ckeys): return False<EOL>if ckeys:<EOL><INDENT>if column_order and not self.ckeys == d.ckeys: return False<EOL>for k in self.ckeys:<EOL><INDENT>if not k in d.ckeys: return False<EOL>if not (_n.array(self[k]) == _n.array(d[k])).all(): return False<EOL><DEDENT><DEDENT>else:<EOL><INDENT>for n in range(len(self.ckeys)):<EOL><INDENT>if not (_n.array(self[n]) == _n.array(d[n])).all(): return False<EOL><DEDENT><DEDENT><DEDENT>return True<EOL>
Tests that the important (i.e. savable) information in this databox
is the same as that of the other_databox.

Parameters
----------
other_databox
    Databox with which to compare.
headers=True
    Make sure all header elements match.
columns=True
    Make sure every element of every column matches.
header_order=True
    Whether the order of the header elements must match.
column_order=True
    Whether the order of the columns must match. This is only a sensible 
    concern if ckeys=True.
ckeys=True
    Whether the actual ckeys matter, or just the ordered columns of data.


Note the == symbol runs this function with everything True.