def __getitem__(self, arg):
<EOL>res, flags =self.fitshdu._process_args_as_rows_or_columns(arg, unpack=True)<EOL>if '<STR_LIT>' in flags:<EOL><INDENT>array = self.read(rows=res)<EOL>if '<STR_LIT>' in flags:<EOL><INDENT>assert array.shape[<NUM_LIT:0>] == <NUM_LIT:1><EOL>array = array[<NUM_LIT:0>]<EOL><DEDENT>return array<EOL><DEDENT>else:<EOL><INDENT>return TableColumnSubset(self.fitshdu, columns=res)<EOL><DEDENT>
If columns are sent, then the columns will just get reset and
we'll return a new object

If rows are sent, they are read and the result returned.