Exemplo n.º 1
0
def test_exchange_array(altbooks, books):
    book1 = lt.getElement(altbooks, 1)
    book5 = lt.getElement(altbooks, 5)
    lt.exchange(altbooks, 1, 5)
    assert lt.getElement(altbooks, 1) == book5
    assert lt.getElement(altbooks, 5) == book1
 def point_coords_radians(self, vertex):
     landing_point = mp.get(self.points_by_id, vertex)['value']
     latitude, longitude = lt.getElement(landing_point, 4), lt.getElement(
         landing_point, 5)
     return latitude * pi / 180, longitude * pi / 180
Exemplo n.º 3
0
def print_categoria_pais(result):
    video = lt.getElement(result, 1)
    print('Titulo: ' + video['name'] + " Canal: " + video["channel"] +
          " Días Trending: " + str(video["trending"]) + " Pais: " +
          video["pais"])
    return
Exemplo n.º 4
0
def Requerimiento5maps(analyzer, minHora, maxHora):

    valores = om.keys(analyzer['context_created'], minHora, maxHora)
    generos = om.keySet(analyzer['genres'])

    respuesta = om.newMap()

    for i in range(lt.size(valores)):
        key_value = lt.getElement(valores, i)
        info_context_pareja = om.get(analyzer['context_created'], key_value)
        context = me.getValue(info_context_pareja)
        for i in range(lt.size(context)):
            info_context = lt.getElement(context, i)
        for i in range(lt.size(generos)):
            key_genero = lt.getElement(generos, i)
            info_genero_pareja = om.get(analyzer['genres'], key_genero)
            info_genero = me.getValue(info_genero_pareja)
            minTemp = float(info_genero[0])
            maxTemp = float(info_genero[1])
            if float(info_context['tempo']) >= minTemp and float(
                    info_context['tempo']) <= maxTemp:

                contains = om.contains(respuesta, key_genero)
                if not contains:
                    track_id = info_context['track_id']

                    #extraccion info relevante

                    llave_valor_info_adicional = om.get(
                        analyzer['user_track'], track_id)
                    info_adicional = me.getValue(llave_valor_info_adicional)
                    vader = lt.getElement(info_adicional, 1)
                    hashtags = lt.size(info_adicional) - 1

                    lista_genero = lt.newList()

                    track = {}

                    track['track_id'] = track_id
                    track['vader'] = vader
                    track['num_hashtags'] = hashtags

                    lt.addLast(lista_genero, track)

                    om.put(respuesta, key_genero, lista_genero)

                if contains:
                    track_id = info_context['track_id']

                    llave_valor_info_adicional = om.get(
                        analyzer['user_track'], track_id)
                    info_adicional = me.getValue(llave_valor_info_adicional)
                    vader = lt.getElement(info_adicional, 1)
                    hashtags = lt.size(info_adicional) - 1

                    pareja_lista_genero = om.get(respuesta, key_genero)
                    lista_genero = me.getValue(pareja_lista_genero)

                    track = {}

                    track['track_id'] = track_id
                    track['vader'] = vader
                    track['num_hashtags'] = hashtags

                    lt.addLast(lista_genero, track)

    return respuesta
 def name_to_id(self, vertex):
     landing_point = mp.get(self.points_by_name, vertex)
     if landing_point:
         return lt.getElement(landing_point['value'], 1)
     else:
         return None
Exemplo n.º 6
0
def secondreq(answer):
    print("La cantidad de pistas únicas es " + str(lt.getElement(answer, 1)))
    for elemento in lt.iterator(lt.getElement(answer, 2)):
        print(elemento)
    print("")
    print("")
Exemplo n.º 7
0
catalog = None

"""
Menu principal
"""
while True:
    print_menu()
    inputs = input('Seleccione una opción para continuar\n')
    if int(inputs[0]) == 1:
        print("Cargando información de los archivos ....")
        catalog = init_catalog()
        load_data(catalog)
        print('Se cargaron: ',lt.size(catalog['videos']), ' videos')
        print('El primer video cargado es: ' )
        video=lt.getElement(catalog['videos'],1)
        print('Titulo: ' + video['title'] + ' , Canal: '+video['channel_title']+' , Fecha de tendencia '+str(video['trending_date']))
        print('País: '+video['country'] +' , Vistas: '+str(video['views'])+' , Likes: '+str(video['likes'])
        +' , Dislikes: '+str(video['dislikes']))
        print('Las categorías cargadas son: ')
        print_categories(catalog['category_names'])
    elif int(inputs[0]) == 2:
        country_name=input('Ingrese el nombre del país: ').lower()
        category_name=' '+input('Ingrese el nombre de la categoría: ')
        number=int(input('Buscando los TOP ?: '))
        print_results_req1(controller.get_most_view_videos(catalog,country_name,category_name),number)
    elif int(inputs[0]) == 3:
        country_name=input('Ingrese el nombre del país: ').lower()
        video = controller.get_most_time_trending_country(catalog,country_name)
        print('El titulo del video es '+ video['title']+', el numero de dias en tendencia es '+str(video['counter'])+', el nombre del canal es '+video['channel_title']+' y el pais es '+country_name)
    elif int(inputs[0]) == 4:
def req5(cont, miniH, miniM, miniS, maxH, maxM, maxS, sentiment, user, cat2):
    sentimen = cf.data_dir + sentiment
    input_file3 = csv.DictReader(open(sentimen, encoding="utf-8"),
                                 delimiter=",")
    user = cf.data_dir + user  #
    input_file2 = csv.DictReader(open(user, encoding="utf-8"), delimiter=",")
    lst = lt.newList()
    for hashtag in input_file2:
        lt.addLast(lst, hashtag)
    new = it.newIterator(lst)  # Ponerlo en controller
    sss = lt.newList()  #
    for senti in input_file3:
        lt.addLast(sss, senti)
    itet = it.newIterator(
        sss
    )  # Ponerlo en otro controllorer junto con el sentimen y el input_file3 csv.DictReader()
    filtrada1 = total(cont, miniH, miniM, miniS, maxH, maxM, maxS)
    newsaw = it.newIterator(filtrada1)
    while it.hasNext(newsaw):
        l = it.next(newsaw)
        #cantidad2+=lt.size(l)
        #print(cantidad2) #Reproducciones
        nuevo = it.newIterator(l)
        while it.hasNext(nuevo):
            pedazo = it.next(
                nuevo)  #Mira cada track cumplido con el primer filtro
            #ax=mp.get(pedazo,'hashtag')
            ex = mp.get(pedazo, 'tempo')
            ix = mp.get(pedazo, 'horas')
            ox = mp.get(pedazo, 'track_id')
            ux = mp.get(pedazo, 'user_id')
            ax = mp.get(pedazo, 'artist_id')
            #tax=me.getValue(ax)
            tex = me.getValue(ex)
            tix = me.getValue(ix)
            tox = me.getValue(ox)
            tux = me.getValue(ux)
            tax = me.getValue(ax)
            cantidad = 0
            vader_avg = 0
            while it.hasNext(new):
                hashtag = it.next(
                    new
                )  #Buscar el hashtag aqui y su valor vader tambien #Mira cada hashtag
                if hashtag['track_id'] == tox:
                    hasht = hashtag['hashtag'].lower(
                    )  #Se busca los que sean iguales al track_id (todos los hashtag del track_id respectivo)
                    while it.hasNext(itet):
                        senti = it.next(
                            itet
                        )  #Se busca basicamente que tenga un valor_vader
                        if senti['hashtag'].lower() == hasht:
                            if senti['vader_avg'] != '' and senti[
                                    'vader_avg'] != None:
                                vader_avg += float(senti['vader_avg'])
                                cantidad += 1
                            break
                    itet = it.newIterator(sss)
            new = it.newIterator(lst)
            nuevodic = {}
            nuevodic['tempo'] = int(tex)
            nuevodic['horas'] = tix
            nuevodic['track_id'] = tox
            nuevodic['artist_id'] = tax
            nuevodic['cantidad'] = cantidad
            nuevodic['user_id'] = tux
            if nuevodic['cantidad'] != 0:
                vader_avg = vader_avg / cantidad
                nuevodic['vader_avg'] = vader_avg
                model.addTrack(cat2, nuevodic)
    generos = lt.newList()
    lista = [
        'POP', 'REGGAE', 'DOWN-TEMPO', 'CHILL-OUT', 'HIP-HOP', 'JAZZ AND FUNK',
        'R&B', 'ROCK', 'METAL'
    ]
    #return generos
    for gen in lista:
        lt.addLast(generos, gen)
    fua = it.newIterator(generos)
    top = 0
    nombretop = ""
    listatop = None
    cantidadT = 0
    resp1 = lt.newList()
    while it.hasNext(fua):
        genero = it.next(fua)
        if genero == "POP":
            minimo = 100.0
            maximo = 130.0
        elif genero == 'REGGAE':
            minimo = 60.0
            maximo = 90.0
        elif genero == 'DOWN-TEMPO':  ###
            minimo = 70.0
            maximo = 100.0
        elif genero == 'CHILL-OUT':  #
            minimo = 90.0
            maximo = 120.0
        elif genero == 'HIP-HOP':  #
            minimo = 85.0
            maximo = 115.0
        elif genero == 'JAZZ AND FUNK':
            minimo = 120.0
            maximo = 125.0
        elif genero == 'R&B':
            minimo = 60.0
            maximo = 80.0
        elif genero == "ROCK":
            minimo = 110.0
            maximo = 140.0
        else:
            minimo = 100.0
            maximo = 160.0
        pra = req4('tempo', minimo, maximo, cat2)
        artistas = pra[0][0]
        reproducciones = pra[0][1]
        lista = pra[0][2]
        cantidadT += reproducciones
        if top < reproducciones:
            top = reproducciones
            nombretop = genero
            listatop = lista
        x = 1
        cantidad = lt.size(lista)
        lt.addLast(
            resp1, {
                "genero": genero,
                "artista": artistas,
                "reproducciones": reproducciones,
                'minimo': minimo,
                'maximo': maximo
            })
    newisi = it.newIterator(listatop)
    lst = lt.newList("SINGLE_LINKED")
    paaa = lt.newList("SINGLE_LINKED")
    while it.hasNext(newisi):
        pedazo = it.next(
            newisi
        )  #Esto devuelve un mapa de la lista iterando (mapa de la lista(cada elemento))
        nex = mp.get(
            pedazo, 'track_id'
        )  #Devuelve la llave danceability y el valor respectivo del mapa en forma de diccionario
        tax = me.getValue(
            ax
        )  #Devuelve el valor de danceability del track sacado en el mapa de it.next(video)
        fex = me.getValue(nex)
        if lt.isPresent(lst, fex) == 0:
            lt.addLast(paaa, pedazo)
            lt.addLast(lst, fex)
    totalu = lt.size(paaa)
    x = 1
    vistos = lt.newList()
    n = 1
    resp2 = lt.newList("SINGLE_LINKED")
    while n <= 10:
        rand = random.randint(1, totalu)  #
        track = lt.getElement(
            paaa, rand)  #Lo mismo que it.next(de un iterador de lista)
        id = me.getValue(mp.get(track, 'track_id'))
        hashte = me.getValue(mp.get(track, 'cantidad'))
        vader = me.getValue(mp.get(track, 'vader_avg'))
        if lt.isPresent(vistos, id) == 0:
            lt.addFirst(
                resp2, {
                    "0": str(x) + ':' + str(id),
                    "hashte": hashte,
                    "vader_avg": vader_avg
                })
            lt.addLast(vistos, id)
            x += 1
        n += 1
    return [resp1, cantidadT, genero, totalu, resp2]
def test_getkeys(map):
    ltset = ht.keySet(map)
    assert lt.size(ltset) == 12
    element = lt.getElement(ltset, 1)
    assert element is not None
Exemplo n.º 10
0
def datoshoras(catalogo, hora_min, hora_max):
    generos = mp.keySet(catalogo["mapageneros"])
    songs = catalogo["datoscanciones"]
    datakeys = om.keySet(songs)
    songsgeneros = mp.newMap(20, maptype="PROBING")
    for x in range(lt.size(generos)):
        genero = lt.getElement(generos, x)
        mp.put(songsgeneros,
               mp.get(catalogo["mapageneros"], genero)["value"],
               lt.newList("ARRAY_LIST"))
    numrep = 0
    listageneros = mp.keySet(songsgeneros)
    for x in range(datakeys["size"]):
        key = lt.getElement(datakeys, x)
        if (int(key[-8] + key[-7]) >= int(hora_min.split(":")[0])
            ) and (int(key[-5] + key[-4]) >= int(hora_min.split(":")[1])) and (
                int(key[-8] + key[-7]) <= int(hora_max.split(":")[0])) and (
                    int(key[-5] + key[-4]) <= int(hora_max.split(":")[1])):
            generosong = checkgeneros(
                om.get(songs, key)["value"], listageneros)
            for y in range(lt.size(generosong)):
                llavegenero = lt.getElement(generosong, y)
                lt.addLast(
                    mp.get(songsgeneros, (llavegenero))["value"],
                    om.get(songs, key)["value"])
            numrep += 1
    generosrep = lt.newList("ARRAY_LIST")
    for x in range(lt.size(listageneros)):
        generooo = lt.getElement(listageneros, x)
        lt.addLast(
            generosrep,
            (generooo, lt.size(mp.get(songsgeneros, generooo)["value"])))
    generosorteados = ms.sort(generosrep, compgeneros)
    generomax = lt.getElement(generosorteados, 1)[0]
    listamax = mp.get(songsgeneros, generomax)["value"]
    listapasortearhashtags = lt.newList("ARRAY_LIST")
    dataa = om.valueSet(catalogo["datosusuarios"])
    maptags = mp.newMap(100000, maptype="PROBING")
    for x in range(lt.size(dataa)):
        listen = lt.getElement(dataa, x)
        created = listen["created_at"]
        if (int(created[-8] + created[-7]) >= int(hora_min.split(":")[0])
            ) and (
                int(created[-5] + created[-4]) >= int(hora_min.split(":")[1])
            ) and (int(created[-8] + created[-7]) <= int(
                hora_max.split(":")[0])) and (int(created[-5] + created[-4]) <=
                                              int(hora_max.split(":")[1])):
            if mp.contains(maptags, listen["track_id"]):
                if not lt.isPresent(
                        mp.get(maptags, listen["track_id"])["value"],
                        listen["hashtag"]):
                    lt.addLast(
                        mp.get(maptags, listen["track_id"])["value"],
                        listen["hashtag"])
            else:
                mp.put(maptags, listen["track_id"], lt.newList("ARRAY_LIST"))
            lt.addLast(
                mp.get(maptags, listen["track_id"])["value"],
                listen["hashtag"])
    listaidsusados = lt.newList("ARRAY_LIST")
    for x in range(lt.size(listamax)):
        song = lt.getElement(listamax, x)
        if not lt.isPresent(listaidsusados, song["track_id"]):
            lt.addLast(
                listapasortearhashtags,
                (song,
                 vaderprom(catalogo,
                           mp.get(maptags, song["track_id"])["value"])[1],
                 vaderprom(catalogo,
                           mp.get(maptags, song["track_id"])["value"])[0]))
            lt.addLast(listaidsusados, song["track_id"])
    songhashsort = ms.sort(listapasortearhashtags, compgeneros)
    lista10 = lt.subList(songhashsort, 1, 10)
    return generosorteados, songsgeneros, numrep, lista10
Exemplo n.º 11
0
def find_position_category(catalog, category):
    for runner in range(lt.size(catalog)):
        element = lt.getElement(catalog, runner)
        if element['name'].strip() in category.strip():
            return element['id']
    return False
Exemplo n.º 12
0
        'Seleccione una opción para continuar\nSeleccione cualquier otra tecla para salir\n'
    )
    if int(inputs[0]) == 1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog()
        loadData(catalog)
        print("No. Videos cargados: " + str(lt.size(catalog["videos"])))
        print("No. Categorías cargadas: " +
              str(lt.size(catalog["categories"])))

        print("\nPRIMER VIDEO CARGADO:")
        printFirstVideo(catalog)

        print("\nCATEGORIAS CARGADAS:")
        for n in range(1, lt.size(catalog["categories"]) + 1):
            print(lt.getElement(catalog["categories"], n))

    elif int(inputs[0]) == 2:
        category_name = input("Nombre de la categoria a buscar: ")
        category_id = getCategoryId(catalog, category_name)

        if category_id != None:
            country = input("Nombre del pais a buscar: ")
            number = input("Numero de videos a listar: ")

            result = controller.getBestViews(catalog, category_id,
                                             country.lower())
            if lt.isEmpty(result):
                print("\nNo se encontro informacion para ese pais")
            else:
                print("\nTOP " + number + " VIDEOS DE " +
Exemplo n.º 13
0
        print("Tiempo [ms]: ", f"{tempo[12]:.3f}", " || ",
        "Memoria [kB]: ", f"{tempo[13]:.3f}")
    
        print("-"*50)
        print("-"*50)

        print("El numero total de reproducciones es ",tempo[3])

        print("-"*100)


        print("El numero de reproducciones de ",nom1," es ",tempo[0]," con ", tempo[5]," artistas diferentes")

        print("Los 10 primeros artistas de ",nom1,"son: ")

        print("Artista 1",lt.getElement(tempo[9],0))
        print("Artista 2",lt.getElement(tempo[9],1))
        print("Artista 3",lt.getElement(tempo[9],2))
        print("Artista 4",lt.getElement(tempo[9],3))
        print("Artista 5",lt.getElement(tempo[9],4))
        print("Artista 6",lt.getElement(tempo[9],5))
        print("Artista 7",lt.getElement(tempo[9],6))
        print("Artista 8",lt.getElement(tempo[9],7))
        print("Artista 9",lt.getElement(tempo[9],8))
        print("Artista 10",lt.getElement(tempo[9],9))


        print("-"*100)

        print("El numero de reproducciones de ",nom2," es ",tempo[1]," con ", tempo[6]," artistas diferentes")
Exemplo n.º 14
0
def getFirstLP(catalog):
    LPs = mp.valueSet(catalog['lp'])
    lp = lt.getElement(LPs, 1)
    ans = (lt.getElement(lp, 1), lt.getElement(lp, 2), lt.getElement(lp, 3),
           lt.getElement(lp, 4))
    return ans
Exemplo n.º 15
0
def buscarcateporname(categg, catalog):
    for i in range(0, lt.size(catalog['cate'])):
            cate = lt.getElement(catalog['cate'], i)
            if categg in str(cate['name']):
                return cate['id']
    return "ERROR"
def nameToIdCategory(category_name, categories):
    for i in range(1, lt.size(categories) + 1):
        category = lt.getElement(categories, i)
        if category_name == category["name"]:
            return category["id"]
    return None
Exemplo n.º 17
0
        req1 = controller.req1(analyzer, ranking1, ranking2)

        print("------------------------------")
        print("Cantidad de taxis de los servicios reportados:", req1["total taxis"])
        print("------------------------------")
        print("Cantidad de compañias con al menos 1 taxi:", req1["compañias taxi"])
        print("------------------------------")
        print(
            "El top:", ranking1, "de compañias con mayor cantidad de taxis registrados."
        )
        print("------------------------------")
        cont = 0
        ranking1_ = req1["ranking1"]
        for i in range(1, lt.size(ranking1_) + 1):
            cont += 1
            elemento = lt.getElement(ranking1_, i)
            print(cont, elemento["company"], ":", len(elemento["value"]))

        print("------------------------------")
        print("El top:", ranking2, "de compañias que más servicios prestaron.")
        print("------------------------------")
        cont = 0
        ranking2_ = req1["ranking2"]
        for i in range(1, lt.size(ranking2_) + 1):
            cont += 1
            elemento = lt.getElement(ranking2_, i)
            print(cont, elemento["company"], ":", elemento["servicios"])
        print("------------------------------")

    elif inputs == "4":
        print("-----------------------PARTE A----------------------------------")
Exemplo n.º 18
0
def test_getElement(lstbooks, books):
    book = lt.getElement(lstbooks, 1)
    assert book == books[0]
    book = lt.getElement(lstbooks, 5)
    assert book == books[4]
Exemplo n.º 19
0
            'Visitas: ': str(first.get('views')),
            'Likes: ': str(first.get('likes')),
            'Dislikes: ': str(first.get('dislikes'))}

        print('\nVideos cargados: ' + str(lt.size(catalog['video'])))
        print('\nDatos del primer video: ')
        for i in primervideo.keys():
            print(str(i) + str(primervideo.get(i)))
        print(
            "\n" + str(lt.size(catalog['category'])) + ' Categorías cargadas: '
            )
        i = 1
        resultadoxy = []
        while i <= int(lt.size(catalog['category'])):
            resultadoxy.append(
                lt.getElement(catalog['category'], i).get('c_id') + ":" +
                lt.getElement(catalog['category'], i).get('name'))
            i += 1
        print(*resultadoxy, sep=' ')

        lista = ''
        for i in range(0, lt.size(catalog['country'])):
            element = lt.getElement(catalog['country'], i)
            pais = str(element.get('country_name'))
            if i < (lt.size(catalog['country'])-1):
                lista += (pais.lower() + ", ")
            else:
                lista += pais.lower()
        print(
            "\n" + str(lt.size(catalog['country'])) + ' Países cargados: ',
            lista)
Exemplo n.º 20
0
def test_removeFirst(lstbooks, books):
    assert lt.size(lstbooks) == 5
    lt.removeFirst(lstbooks)
    assert lt.size(lstbooks) == 4
    book = lt.getElement(lstbooks, 1)
    assert book == books[1]
Exemplo n.º 21
0
def print_categories(category_names):
    size=lt.size(category_names)
    for n in range(1,size+1):
        category=lt.getElement(category_names,n)
        print(category['id'],category['name'])
Exemplo n.º 22
0
def test_getElement_array(altbooks, books):
    book = lt.getElement(altbooks, 1)
    assert book == books[0]
    book = lt.getElement(altbooks, 5)
    assert book == books[4]
 def id_to_fullname(self, vertex):
     return lt.getElement(mp.get(self.points_by_id, vertex)['value'], 3)
Exemplo n.º 24
0
def test_removeLast_array(altbooks, books):
    assert lt.size(altbooks) == 5
    lt.removeLast(altbooks)
    assert lt.size(altbooks) == 4
    book = lt.getElement(altbooks, 4)
    assert book == books[3]
 def get_capital(self, country):
     return lt.getElement(mp.get(self.countries, country)['value'], 1)
Exemplo n.º 26
0
def test_changeInfo_array(altbooks):
    book10 = {'book_id': '10', 'book_title': 'Title 10', 'author': 'author 10'}
    lt.changeInfo(altbooks, 1, book10)
    book = lt.getElement(altbooks, 1)
    assert book10 == book
 def point_coords_degrees(self, vertex):
     landing_point = mp.get(self.points_by_id, vertex)['value']
     return lt.getElement(landing_point, 4), lt.getElement(landing_point, 5)
Exemplo n.º 28
0
    elif int(inputs[0]) == 5:

        genero = input("Genero(s) que desea estudiar: ")
        existe = controller.existeGenero(analyzer,genero)
        if(existe[1]):
            rta = controller.estudiarGenerosMusicales(analyzer,genero)
            imprimirEstudio(rta[0],rta[1],rta[2],rta[3],rta[4])

        elif(existe[1]== False):
            noEncontrados = existe[0]
            rest = None
            print("Genero(s) no econtrado(s): ")
            tam = lt.size(noEncontrados)
            pos = 0
            while tam > 0:
                elemento = lt.getElement(noEncontrados,pos)
                print(elemento)
                tam -= 1
                pos += 1
            rta = input("¿desea crearlo(s)?\n1. Si\n2. No\n")
            if(rta == str(1)):
                for i in noEncontrados:
                    T1 = input("Digite el valor minimo para el tempo para " + n +": ") 
                    T2 = input("Digite el valor maximo para el tempo para " + n +": ")
                    controller.crearGenero(analyzer,n,float(T1),float(T2))


        
            
    elif int(inputs[0]) == 6: