def infer(datum):
    """
    Returns the inferred data type
    """
    if datum is None or datum == '':
        return None
    try:
        int(datum)
        return 'integer'
    except (ValueError, TypeError):
        pass
    try:
        float(datum)
        return 'number'
    except (ValueError, TypeError):
        pass
    return 'string'
