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 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
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
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)
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
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")
def initCatalog(): """ Inicializa el catalogo de libros """ return controller.initCatalog()
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)
@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'))
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
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:
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)
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.....')