def get_dtype(col_type, col_repr):
    """

    Return the pandas type of a column based on the json schema for the dataset.

    Parameters
    ----------
    col_type: str
        The abstract type of the data column (e.g. ``"finite"``,
        ``"countable/ordered"``, etc).
    col_repr: object
        Either a string, an integer, or a list of string.
        The interpretation depends upon ``col_type``.


    Returns
    -------
    dtype
        A type for the given column. Currently either int, float, or str.

    """
    ## All types that have some subset of the integers or the reals as their representation
    ## are stored as int or float. Applications should look at the schema to determine whether
    ## what subset it is and whether the type is ordered
    if col_repr == 'integer':
        return int
    elif col_repr == 'number':
        return float
    elif col_repr == 'string':
        return str
    elif col_repr == 'date' or col_repr == 'datetime':
        return str         
    elif col_type == 'finite' or col_type == 'finite/ordered':
        if isinstance(col_repr, list):
            return str
        elif isinstance(col_repr, int):
            return int
    else:
        raise RuntimeError("Unknown type/representation when parsing data")