def _get_entry(self, number):
    'Read an Entry associated with this L{Attr}\n\n        @param number: number of Entry to return\n        @type number: int\n        @return: data from entry numbered L{number}\n        @rtype: list or str\n        '
    if (not self.has_entry(number)):
        raise IndexError((('list index ' + str(number)) + ' out of range.'))
    length = self._entry_len(number)
    cdftype = self.type(number)
    if (cdftype in (const.CDF_CHAR.value, const.CDF_UCHAR.value)):
        buff = numpy.empty((), 'S{0}'.format(length), order='C')
    else:
        if (not (cdftype in lib.numpytypedict)):
            raise CDFError(const.BAD_DATA_TYPE)
        buff = numpy.empty((length,), lib.numpytypedict[cdftype], order='C')
    buff = numpy.require(buff, requirements=('C', 'A', 'W'))
    self._call(const.SELECT_, self.ENTRY_, ctypes.c_long(number), const.GET_, self.ENTRY_DATA_, buff.ctypes.data_as(ctypes.c_void_p))
    if (cdftype in (const.CDF_CHAR.value, const.CDF_UCHAR.value)):
        if ((str == bytes) or self._raw):
            result = bytes(buff)
        else:
            result = str(numpy.char.array(buff).decode())
    else:
        if (not self._raw):
            if (cdftype == const.CDF_EPOCH.value):
                result = lib.v_epoch_to_datetime(buff)
            elif (cdftype == const.CDF_EPOCH16.value):
                result = lib.v_epoch16_to_datetime(buff)
            elif (cdftype == const.CDF_TIME_TT2000.value):
                result = lib.v_tt2000_to_datetime(buff)
            else:
                result = buff
        else:
            result = buff
        if (length == 1):
            result = result[0]
    return result
Read an Entry associated with this L{Attr}

@param number: number of Entry to return
@type number: int
@return: data from entry numbered L{number}
@rtype: list or str
def _get_entry(self, number):
    'Read an Entry associated with this L{Attr}\n\n        @param number: number of Entry to return\n        @type number: int\n        @return: data from entry numbered L{number}\n        @rtype: list or str\n        '
    if (not self.has_entry(number)):
        raise IndexError((('list index ' + str(number)) + ' out of range.'))
    length = self._entry_len(number)
    cdftype = self.type(number)
    if (cdftype in (const.CDF_CHAR.value, const.CDF_UCHAR.value)):
        buff = numpy.empty((), 'S{0}'.format(length), order='C')
    else:
        if (not (cdftype in lib.numpytypedict)):
            raise CDFError(const.BAD_DATA_TYPE)
        buff = numpy.empty((length,), lib.numpytypedict[cdftype], order='C')
    buff = numpy.require(buff, requirements=('C', 'A', 'W'))
    self._call(const.SELECT_, self.ENTRY_, ctypes.c_long(number), const.GET_, self.ENTRY_DATA_, buff.ctypes.data_as(ctypes.c_void_p))
    if (cdftype in (const.CDF_CHAR.value, const.CDF_UCHAR.value)):
        if ((str == bytes) or self._raw):
            result = bytes(buff)
        else:
            result = str(numpy.char.array(buff).decode())
    else:
        if (not self._raw):
            if (cdftype == const.CDF_EPOCH.value):
                result = lib.v_epoch_to_datetime(buff)
            elif (cdftype == const.CDF_EPOCH16.value):
                result = lib.v_epoch16_to_datetime(buff)
            elif (cdftype == const.CDF_TIME_TT2000.value):
                result = lib.v_tt2000_to_datetime(buff)
            else:
                result = buff
        else:
            result = buff
        if (length == 1):
            result = result[0]
    return result