Exemplo n.º 1
0
def catalog():
    """
    Llama la funcion de inicializacion del catalogo del modelo.
    """
    # catalog es utilizado para interactuar con el modelo
    catalog = control.initCatalog()
    assert catalog is not None
    return catalog
Exemplo n.º 2
0
def ejecutar_cargar_datos():
    ruta_casting = "themoviesdb/AllMoviesCastingRaw.csv"
    #"themoviesdb/AllMoviesCastingRaw.csv"
    #"themoviesdb/MoviesCastingRaw-small.csv"
    ruta_details = "themoviesdb/AllMoviesDetailsCleaned.csv"
    #"themoviesdb/AllMoviesDetailsCleaned.csv"
    #"themoviesdb/SmallMoviesDetailsCleaned.csv"
    catalog = co.initCatalog()
    co.loadData(catalog, ruta_details, ruta_casting)
    return catalog
Exemplo n.º 3
0
def getVideosByCountry(catalog, countryname):
    """
    Retornar la lista de videos asociados a un pais
    """
    new_catalog = initCatalog()
    country = mp.get(catalog['countries'], countryname)
    videos = None
    if country:
        videos = me.getValue(country)['videos']
        for vid_i in lt.iterator(videos):
            addVideo(new_catalog, vid_i)
    return new_catalog
Exemplo n.º 4
0
def main():
    while True:
        printMenu()
        inputs = input('Seleccione una opción para continuar\n')

        if int(inputs[0]) == 1:
            print("\nInicializando Catálogo ....")
            catalog = controller.initCatalog()
            controller.loadData(catalog, fileD, fileC)
            print("Datos cargados,", controller.mapSize(catalog, 'id'),
                  " elementos cargados")
            print(controller.mapSize(catalog, 'productoras'),
                  "productoras cargadas")
            print(controller.mapSize(catalog, 'directores'),
                  "directores cargados")
            print(controller.mapSize(catalog, 'actores'), "actores cargados")
            print(controller.mapSize(catalog, 'generos'), "generos cargados")
            print(controller.mapSize(catalog, 'paises'), "países cargados\n")

        elif int(inputs[0]) == 2:
            productora = input('Productora que se quiere ver: ')
            info2 = controller.descubrirProductoras(catalog, productora)
            printProductora(productora, info2)

        elif int(inputs[0]) == 3:
            director = input("Director de interés: ")
            info3 = controller.conocerDirector(catalog, director)
            printDirector(director, info3)

        elif int(inputs[0]) == 4:
            actor = input("Nombre del actor a buscar: ")
            info4 = controller.conocerActor(catalog, actor)
            printActor(actor, info4)

        elif int(inputs[0]) == 5:
            genero = input("Genero: ")
            info5 = controller.entenderGenero(catalog, genero)
            printGenero(genero, info5)

        elif int(inputs[0]) == 6:
            pais = input("Pais: ")
            info6 = controller.peliculasPais(catalog, pais)
            printPais(pais, info6)

        else:
            sys.exit(0)
Exemplo n.º 5
0
def getVideosByCountryAndTag(catalog, countryname, tag):
    """
    Retornar la lista de videos asociados a una categoria y un tag
    """
    tag = tag.lower()  # make lowercase
    new_catalog = initCatalog()
    country = mp.get(catalog['countries'], countryname)
    tagexists = False
    if country:
        videos = me.getValue(country)['videos']
        for vid_i in lt.iterator(videos):
            vid_i_tags = vid_i['tags'].replace('"',
                                               '').lower()  # make lowercase
            vid_i_tags = vid_i_tags.split("|")
            for tag_kw in vid_i_tags:  # compare with specified tag
                if tag in tag_kw.split():
                    tagexists = True
            if tagexists:
                addVideo(new_catalog, vid_i)
    return new_catalog
Exemplo n.º 6
0
def main():
    catalogo1=None
    
    while True:
        printMenu()
        
        inputs = input('Seleccione una opción para continuar\n')

        if int(inputs[0]) == 1:
            print("Inicializando Catálogo ....")
            catalogo1 = controller.initCatalog()      

        elif int(inputs[0]) == 2:
            print("Cargando información de los archivos ....")
            controller.loadData(catalogo1, moviesfile, castingfile)
            print('Peliculas cargadas: '+str(controller.moviesSize(catalogo1))+"  , y casting: " +str(controller.moviesSize(catalogo1)))
            
        elif int(inputs[0]) == 3:
            companyName = str(input('Escriba el nombre de la compañia de producción que desea consultar: '))
            printCompany(catalogo1, companyName)

        elif int(inputs[0]) == 4:
            countryName = str(input('Escriba el nombre del pais que desea consultar: '))
            printCountry(catalogo1, countryName)

        elif int(inputs[0]) == 5:
            genreName = str(input('Escriba el nombre del genero que desea consultar: '))
            printGenre(catalogo1, genreName)
                           
        elif int(inputs[0]) == 6:
            directorName = str(input('Escriba el nombre del director que desea consultar: '))
            printDirector(catalogo1, directorName)
                    
        elif int(inputs[0]) == 7:
            actorName = str(input('Escriba el nombre del actor que desea consultar: '))
            printActor(catalogo1, actorName)

        else:
            sys.exit(0)
    sys.exit(0)
    print("(5)   REQ. 3: Consultar a un actor")
    print("(6)   REQ. 4: Entender un genero cinematografico")
    print("(7)   REQ. 5: Consultar peliculas por pais")
    print("(0) Salir")


"""
Menu principal
"""
while True:
    printMenu()
    inputs = input('Seleccione una opción para continuar ? ')

    #input 1 and input 2 could be merged to create the catalogue and load it with movies in one input
    if int(inputs[0]) == 1:
        cont = controller.initCatalog()
        input("presione una tecla para continuar...")

    elif int(inputs[0]) == 2:
        print("Cargando información de los archivos ....")
        controller.loadData(cont, moviesSmall, castingSmall)
        print("Se han cargado: ")
        print(str(controller.moviesSize(cont)), "peliculas: ")

        #these functions can be rewritten to follow the model-> controller distribution. use the moviessize print as a reference
        print(mp.size(cont["production_companies"]),
              "  compañias de producción ")
        print(mp.size(cont["genres"]), "  generos ")
        print(mp.size(cont["production_countries"]), "  paises")
        print(mp.size(cont["directors"]), "  directores ")
        print(mp.size(cont["actors1"]), "  actores")
Exemplo n.º 8
0
def initCatalog():
    """
    Inicializa el catalogo de libros
    """
    return controller.initCatalog()
Exemplo n.º 9
0
    print("4. Descubrir director")
    print("5. Descubrir actor")
    print("6. Descubrir un genero")
    print("7. Encontrar películas por país")
    print("0. Salir")

"""
Menú principal
"""
while True:
    print_menu()
    inputs = input("Seleccione una opción para continuar\n")

    if int(inputs[0]) == 1:
        print("Inicizaliando catálogo...")
        catalogo=controller.initCatalog()
        print("Completado")

    elif int(inputs[0]) == 2:
        print("Cargando archivos...")
        t_start = process_time()
        controller.loadMovies (catalogo,small_movies_details,small_movies_casting)
        t_stop = process_time()
        print("Archivos cargados")
        print("El tiempo de carga total es de "+str(t_stop-t_start)+" segundos")
        print("Peliculas guardadas en map de tipo "+catalogo["peliculas"]['type'])
        print("productoras guardadas en map de tipo "+catalogo["productoras"]['type'])
        print("Actores guardados en map de tipo "+catalogo["actores"]['type'])
        print_movies_information(catalogo)
        
Exemplo n.º 10
0

@pytest.fixture
def booktagsfile():
    booktagsfile = 'GoodReads/book_tags-small.csv'
    return booktagsfile


@pytest.fixture
def catalog():
    """
    Llama la funcion de inicializacion del catalogo del modelo.
    """
    # catalog es utilizado para interactuar con el modelo
    catalog = control.initCatalog()
    assert catalog is not None
    return catalog


def test_load_movies(catalog, booksfile, tagsfile, booktagsfile):
    control.loadData(catalog, booksfile, tagsfile, booktagsfile)
    assert control is not None
    assert control.booksSize(catalog) == 149
    assert control.tagsSize(catalog) == 34252
    books = control.getBooksYear(catalog, 2008)
    assert lt.size(books) == 4


print(
    test_load_movies(control.initCatalog(), 'GoodReads/books-small.csv',
                     'GoodReads/tags.csv', 'GoodReads/books-small.csv'))
Exemplo n.º 11
0
    print("4- Entender género cinematográfico") 
    print("5- Encontrar películas por país")       

    print("0- Salir")


while True:
    printMenu()
    inputs = input('Seleccione una opción para continuar\n')
    if len(inputs)>0:

         if int(inputs[0]) == 1:
            archivo = "theMoviesdb/AllMoviesDetailsCleaned.csv"
            archivo2 = "theMoviesdb/AllMoviesCastingRaw.csv"
            catalogo_peliculas = controller.initCatalog()
            print("Inicializando Catálogo ....")
            lista_p = controller.loadPeliculas(catalogo_peliculas, archivo)
            casting = controller.loadPeliculas(catalogo_peliculas, archivo2)
            numero_cargadas = lt.size(lista_p)
            print("Se cargaron ",numero_cargadas," peliculas")
        elif int(inputs[0])==2: #opcion 2
            ncomp = input(print("Nombre de la compañia a buscar:\n"))
            Comp = controller.getMoviesByCompany(catalogo_peliculas, ncomp)
            printCompanyData(Comp)

       elif int(inputs[0])==3: #opcion 3
            ndirector = input(print("Nombre del director a buscar:\n"))
            direc = controller.getMoviesByDirector(catalogo_peliculas, ndirector)
            printDirectorData(direc)
       elif int(inputs[0])==3: #opcion 4
Exemplo n.º 12
0
    if inputs[0] == "w":
        C1 = input("desea usar el ADT map PROBE: 0, CHAINING: 1 :")
        map_type = "CHAINING" if int(C1) else "PROBE"
        C2 = input("Loadfactor por defecto: 1, Otro: 2")
        if C2 == "2":
            print("recuerde que para map PROBE el loadfactor no debe superar")
            C3 = input("Ingrese en valor de loadfactor")
            loadfactor = float(C3)

        else:
            loadfactor = None

        t1 = perf_counter()
        print("Inicializando Catálogo ....")
        # cont es el controlador que se usará de acá en adelante
        cont = controller.initCatalog(map_type, loadfactor)
        t2 = perf_counter()
        print(t2 - t1)

    elif inputs[0] == "q":
        C1 = input(
            "numero de elementos que quiere cargar, enter si desea todos")
        t1 = perf_counter()
        movies_file1 = "GoodMovies/AllMoviesDetailsCleaned.csv"
        movies_file2 = "GoodMovies/AllMoviesCastingRaw.csv"
        if C1 == "":
            n = "ALL"
        else:
            try:
                n = int(C1)
            except ValueError:
Exemplo n.º 13
0
def main():
    """
    Método principal del programa, se encarga de manejar todos los metodos adicionales creados
    Instancia una lista vacia en la cual se guardarán los datos cargados desde el archivo
    Args: None
    Return: None 
    """

    while True:
        printMenu()  #imprimir el menu de opciones en consola
        inputs = input(
            'Seleccione una opción para continuar\n')  #leer opción ingresada
        if len(inputs) > 0:

            if int(inputs[0]) == 1:  #opcion 1
                tamano_catalogo = input(
                    'Que tamaño de catalogo desea cargar: \n1- 2000 peliculas\n2- 300000+ peliculas\n'
                )  #leer opción ingresada
                if tamano_catalogo == "1":
                    archivo_casting = "Data\MoviesCastingRaw-small.csv"
                    archivo_details = "Data\SmallMoviesDetailsCleaned.csv"
                elif tamano_catalogo == "2":
                    archivo_casting = "Data\AllMoviesCastingRaw.csv"
                    archivo_details = "Data\AllMoviesDetailsCleaned.csv"
                else:
                    print("Opción invalida. Se cargará la versión 1.")
                    archivo_casting = "Data\MoviesCastingRaw-small.csv"
                    archivo_details = "Data\SmallMoviesDetailsCleaned.csv"

                t1 = process_time()
                print("Inicializando Catálogo ....")
                # cont es el controlador que se usará de acá en adelante
                cont = controller.initCatalog()
                print("Cargando información de los archivos ....")
                controller.loadData(cont, (archivo_details), (archivo_casting))
                t2 = process_time()
                print("Tiempo de carga: {}".format(t2 - t1))
                print('Numero peliculas cargadas: ' +
                      str(controller.detailSize(cont)))
                #print(controller.encontrarElemento(cont,1))
                #print(controller.encontrarElemento(cont,2000))

            elif int(inputs[0]) == 2:  #opcion 2
                print("Se encontraron {} productoras".format(
                    controller.productorasSize(cont)))
                productorname = input("Nombre de la productora a buscar: ")
                t1 = process_time()
                productorinfo = controller.getMoviesByProductora(
                    cont, productorname)
                printProductoraData(productorinfo)
                t2 = process_time()
                print("Tiempo de carga: {}".format(t2 - t1))

            elif int(inputs[0]) == 3:  #opcion 3
                print("Se encontraron {} directores".format(
                    controller.directoresSize(cont)))
                directorname = input("Nombre de la productora a buscar: ")
                t1 = process_time()
                directorinfo = controller.getMoviesByDirector(
                    cont, directorname)
                printDirectorData(directorinfo, cont)
                t2 = process_time()
                print("Tiempo de carga: {}".format(t2 - t1))

            elif int(inputs[0]) == 4:  #opcion 4
                print("Se encontraron {} actores".format(
                    controller.actoresSize(cont)))
                actorname = input("Nombre del actor a buscar: ")
                t1 = process_time()
                actorinfo = controller.getMoviesByActor(cont, actorname)
                printActorData(actorinfo, cont)
                t2 = process_time()
                print("Tiempo de carga: {}".format(t2 - t1))

            elif int(inputs[0]) == 5:  #opcion 5
                print("Se encontraron {} generos".format(
                    controller.genresSize(cont)))
                genrename = input("Nombre del genero a buscar: ")
                t1 = process_time()
                genreinfo = controller.getMoviesByGenre(cont, genrename)
                printGenreData(genreinfo, cont)
                t2 = process_time()
                print("Tiempo de carga: {}".format(t2 - t1))

            elif int(inputs[0]) == 6:  #opcion 6
                print("Se encontraron {} paises".format(
                    controller.countriesSize(cont)))
                countryname = input(
                    "Nombre de la productora a buscar (El nombre del paíz está en ingles) : "
                )
                t1 = process_time()
                countryinfo = controller.getMoviesByCountry(cont, countryname)
                printCountryData(countryinfo, cont)
                t2 = process_time()
                print("Tiempo de carga: {}".format(t2 - t1))

            elif int(inputs[0]) == 0:
                sys.exit(0)
Exemplo n.º 14
0
def main():
    cont = None
    while True:
        menuApp()
        opcion = input('Selecciona una opción para continuar: ')
        if len(opcion[0]) > 0:
            if int(opcion[0]) == 1:
                menuData()
                tamaño = int(
                    input(
                        "Digite su selección para el tamaño de los archivos CSV: "
                    ))
                t1_start = process_time()  #tiempo inicial
                if tamaño == 1:
                    size = 2001
                    loadfactor = 0.5
                    print("Inicializando Catálogo ....")
                    # cont es el controlador que se usará de acá en adelante
                    cont = ctrl.initCatalog(size, loadfactor)
                    print("Cargando información de los archivos .....")
                    ctrl.loadData(cont, listCasting_s, listDetails_s)
                    print('Películas (Detalles) cargadas: ' +
                          str(ctrl.moviesDetailsSize(cont)))
                    print('Películas (Casting) cargadas: ' +
                          str(ctrl.moviesCastingSize(cont)))
                elif tamaño == 2:
                    size = 329047
                    loadfactor = 3
                    print("Inicializando Catálogo ....")
                    # cont es el controlador que se usará de acá en adelante
                    cont = ctrl.initCatalog(size, loadfactor)
                    print("Cargando información de los archivos .....")
                    print(
                        'CALMASIÓN, SI ES CON ARCHIVOS GRANDES SE ESTÁ DEMORANDO 76 SEG EN PROMEDIO :('
                    )
                    ctrl.loadData(cont, listCasting_l, listDetails_l)
                    print('Películas (Detalles) cargadas: ' +
                          str(ctrl.moviesDetailsSize(cont)))
                    print('Películas (Casting) cargadas: ' +
                          str(ctrl.moviesCastingSize(cont)))
                else:
                    print("Opción inválida.....")
                t1_stop = process_time()  #tiempo final
                print("Tiempo de ejecución ", t1_stop - t1_start, " segundos ")

            elif int(opcion[0]) == 2:  #REQUERIMIENTO 1
                if cont == None:
                    print('¡KELLY CARGUE EL ARCHIVO PRIMERO!')
                else:
                    t1_start = process_time()  #tiempo inicial
                    name = input(
                        'Digite el nombre de la productura: ').lower().strip()
                    data = ctrl.descubrirProductorasDeCine(cont, name)
                    if data == -1:
                        print('¿¿KELLY PERO QUÉ MONDÁ DE COMPAÑÍA ES ESA??')
                    else:
                        print('Nombres de peliculas para la compañia ', name,
                              '...')
                        for i in range(data[2]):
                            print(i + 1, '. ',
                                  lt.getElement(data[0], i)['original_title'])
                        print(
                            'El promedio para las peliculas para la compañia ',
                            name.title(), ' es de: ', round(data[1], 2))
                        print('Para un total de ', data[2], ' peliculas')
                    t1_stop = process_time()  #tiempo final
                    print("Tiempo de ejecución ", t1_stop - t1_start,
                          " segundos ")

            elif int(opcion[0]) == 3:  #REQUERIMIENTO 2
                if cont == None:
                    print('¡KELLY CARGUE EL ARCHIVO PRIMERO!')
                else:
                    t1_start = process_time()  #Tiempo inicial
                    nombre = input(
                        'Digite el nombre del director :').lower().strip()
                    x = ctrl.conocerUnDirector(cont, nombre)
                    if x == -1:
                        print('¿¿KELLY PERO QUÉ MONDÁ DE DIRECTOR ES ESE??')
                    else:
                        print('Nombres de peliculas para el director',
                              nombre.title(), '...')
                        for i in range(x[2]):
                            print(i + 1, '. ', lt.getElement(x[0], i))
                        print('El promedio de peliculas para el director ',
                              nombre, 'es de: ', round(x[1], 2))
                        print('Para un total de ', x[2], 'peliculas')
                    t1_stop = process_time()  #tiempo final
                    print("Tiempo de ejecución  ", t1_stop - t1_start,
                          " segundos ")

            elif int(opcion[0]) == 4:  #REQUERIMIENTO 3
                if cont == None:
                    print('¡KELLY CARGUE EL ARCHIVO PRIMERO!')
                else:
                    t1_start = process_time()  #tiempo inicial
                    name = input(
                        'Digite el nombre del actor: ').lower().strip()
                    data = ctrl.conocerUnActor(cont, name)
                    if data == -1:
                        print('¿¿KELLY PERO QUÉ MONDÁ DE ACTOR ES ESE??')
                    else:
                        print('Nombres de peliculas para el actor ',
                              name.title(), '...')
                        for i in range(data[2]):
                            print(i + 1, '. ', lt.getElement(data[0], i))
                        print('El promedio para las peliculas para el actor ',
                              name, ' es de: ', round(data[1], 2))
                        print('Para un total de ', data[2], ' peliculas')
                        print(
                            'Este actor tuvo más colaboraciones con el director ',
                            data[3])
                    t1_stop = process_time()  #tiempo final
                    print("Tiempo de ejecución ", t1_stop - t1_start,
                          " segundos ")

            elif int(opcion[0]) == 5:  #REQUERIMIENTO 4
                if cont == None:
                    print('¡KELLY CARGUE EL ARCHIVO PRIMERO!')
                else:
                    t1_start = process_time()  #tiempo inicial
                    genre = input(
                        'Digita un género cinematográfico: ').lower().strip()
                    data = ctrl.entenderUnGenero(cont, genre)
                    if data == -1:
                        print("¿¿KELLY PERO QUÉ MONDÁ DE GÉNERO ES ESE??")
                    else:
                        print("Lista de películas para el género ", genre,
                              " ...")
                        for i in range(data[2]):
                            print(i + 1, '. ',
                                  lt.getElement(data[0], i)["original_title"])
                        print('El promedio para las peliculas para el género ',
                              genre, ' es de: ', round(data[1], 2))
                        print('Para un total de ', data[2], ' peliculas')
                    t1_stop = process_time()  #tiempo final
                    print("Tiempo de ejecución ", t1_stop - t1_start,
                          " segundos ")

            elif int(opcion[0]) == 6:  #REQUERIMIENTO 5
                if cont == None:
                    print('¡KELLY CARGUE EL ARCHIVO PRIMERO!')
                else:
                    t1_start = process_time()  #tiempo inicial
                    country = input('Digita un país para consultar películas: '
                                    ).lower().strip()
                    data = ctrl.encontrarPeliculasPorPais(cont, country)
                    if data == -1:
                        print("¿¿KELLY PERO QUÉ MONDÁ DE PAÍS ES ESE??")
                    else:
                        print("Lista de películas para el país ",
                              country.title(), " ...")
                        for i in range(lt.size(data[2])):
                            print(i + 1, '. ',
                                  lt.getElement(data[0], i)["original_title"],
                                  '  - Fecha de estreno: ',
                                  lt.getElement(data[1], i), '  - Director: ',
                                  lt.getElement(data[2], i))
                    t1_stop = process_time()  #tiempo final
                    print("Tiempo de ejecución ", t1_stop - t1_start,
                          " segundos ")

            elif int(opcion[0]) == 7:  #SALIR
                sys.exit(0)

            else:
                print('Elije una opción valida.....')