def keySet(map):
    """
    Retorna una lista con todas las llaves de la tabla
    Args:
        map: La tabla de simbolos
    Returns:
        Una lista con todas las llaves de la tabla
    Raises:
        Exception
    """
    return om.keySet(map)
def obtener_valores_R4_AY(genero,lst,rango):
    lst_genero = obtener_valores_AY(lst)
    omap_genero = keyValuesNewOmap(lst_genero,'artist_id')
    artistas_u = oms.keySet(omap_genero)
    num_arts = lt.size(artistas_u)
    ten_arts = lt.subList(artistas_u,1,10)
    rep = lt.size(lst_genero)
    map1 = mp.newMap(numelements=5)
    mp.put(map1,'genero',genero)
    mp.put(map1,'num_rep',rep)
    mp.put(map1,'numero_arts',num_arts)
    mp.put(map1,'ten_arts',ten_arts)
    mp.put(map1,'rango',rango)
    return map1
def relacionar_features_AY(feature1,feature2,min1,max1,min2,max2):
    rank1= oms.values(feature1,min1,max1)
    rank2 = oms.values(feature2,min2,max2)

    lstR1 = obtener_valores_AY(rank1)
    lstR2 = obtener_valores_AY(rank2)
    
    omap = keyValuesNewOmap(lstR2,'track_id')

    tracksOmap = oms.keySet(omap)
    pistas = lt.newList('ARRAY_LIST')
    tracksU = lt.newList('ARRAY_LIST')

    for pista in lt.iterator(lstR1):
        if (pista['track_id'] in lt.iterator(tracksOmap))and(pista['track_id']  not in lt.iterator(tracksU)):
            lt.addLast(pistas,pista)
            lt.addLast(tracksU,pista['track_id'])
    
    fiveEvents = al_azar_AY(pistas)
    return (lt.size(tracksU),fiveEvents)
def obtener_valores_R5(analyzer,omap,lstGen,genero):
    lstOmap = oms.valueSet(omap)
    lstValues = obtener_valores_AY(lstGen)

    lstEventosR = lt.newList('ARRAY_LIST')
    for valor in lt.iterator(lstValues):
        valores_relacionados(lstOmap,valor,lstEventosR)

    omapGen = keyValuesNewOmap(lstEventosR,'track_id')
    rep = oms.size(omapGen)
    hashtags = lt.newList
    track_u = oms.keySet(omapGen)
    hashtags2 = obtener_vader(analyzer,omapGen,hashtags,track_u)
    track_u = lt.size(track_u)
    map1 = mp.newMap(numelements=5)
    
    
    mp.put(map1,'genero',genero)
    mp.put(map1,'num_rep',rep)
    mp.put(map1,'track_u',track_u)
    mp.put(map1,'Hashtag',hashtags2)
    return map1
def keysSize(omap):
    keys = oms.keySet(omap)
    return lt.size(keys)