def get_typecode(dtype):
    """ Get the IDL typecode for a given dtype """
    if dtype.name[:5] == 'bytes':
        return '1'
    if dtype.name == 'int16':
        return '2'
    if dtype.name == 'int32':
        return '3'
    if dtype.name == 'float32':
        return '4'
    if dtype.name == 'float64':
        return '5'
    if dtype.name[:3] == 'str':
        return dtype.name[3:]
    raise ValueError("Don't recognise the datatype")
