def _get_slice_axis(self, slice_obj, axis=None):
if axis is None:<EOL><INDENT>axis = self.axis or <NUM_LIT:0><EOL><DEDENT>obj = self.obj<EOL>if not need_slice(slice_obj):<EOL><INDENT>return obj.copy(deep=False)<EOL><DEDENT>labels = obj._get_axis(axis)<EOL>indexer = labels.slice_indexer(slice_obj.start, slice_obj.stop,<EOL>slice_obj.step, kind=self.name)<EOL>if isinstance(indexer, slice):<EOL><INDENT>return self._slice(indexer, axis=axis, kind='<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>return self.obj._take(indexer, axis=axis)<EOL><DEDENT>
this is pretty simple as we just have to deal with labels