def copy(self, deep=True):
<EOL>if deep:<EOL><INDENT>if deep == '<STR_LIT:all>':<EOL><INDENT>copy = lambda ax: ax.copy(deep=True)<EOL><DEDENT>else:<EOL><INDENT>copy = lambda ax: ax.view()<EOL><DEDENT>new_axes = [copy(ax) for ax in self.axes]<EOL><DEDENT>else:<EOL><INDENT>new_axes = list(self.axes)<EOL><DEDENT>return self.apply('<STR_LIT>', axes=new_axes, deep=deep,<EOL>do_integrity_check=False)<EOL>
Make deep or shallow copy of BlockManager

Parameters
----------
deep : boolean o rstring, default True
    If False, return shallow copy (do not copy data)
    If 'all', copy data and a deep copy of the index

Returns
-------
copy : BlockManager