def __init__(self, window, conf_file): # Ventana principal self.window = window # Selecciono el diccionario general y el de los patrones en el archivo de configuración self.pattern_dic = conf_file["patterns"] self.general_dic = conf_file["general"] self.ruta_inicial = self.general_dic["ruta_inicial"] #Inicializo una tupla de mensajes self.__msg = CT.msg()
def pdfatexto(arch_sel): """Función que convierte el pdf a texto raw Arg: arch_sel: Ruta y nombre del archivo pfd a convertir a texto """ # Inicializo el objeto que acumula los mensajes en una tupla. msg = CT.msg() # Nombre del archivo pdf original a evaluar file_orig = os.path.basename(arch_sel) # Nombre de la ruta original ruta_orig = os.path.dirname(arch_sel) + '/' # Nombre del archivo convertido a modo texto filename = os.path.splitext(file_orig)[0] + ".txt" logger.info("-- Convierto archivo pdf a texto") logger.info("Archivo original: %s" % arch_sel) logger.info("Archivo original Tipo: %s" % type(arch_sel)) logger.debug("Archivo modo texto: %s" % filename) # Si no existe el archivo indicado if not os.path.isfile(arch_sel): msg.error("No existe el archivo: %s" % file_orig) msg.print_tMsg() sys.exit() # Si no hay un archivo pdf ya convertido con el mismo nombre en el destino => Convierto el archivo indicado elif not os.path.isfile(ruta_orig + filename): # subprocess.call(["df","-h","/home"]) subprocess.call([ "pdftotext", "-f", "1", "-l", "1", "-raw", arch_sel, str(ruta_orig + filename) ]) msg.info("Archivo: %s convertido a texto" % file_orig) # Si llegó acá es porque ya existe un archivo convertido con el mismo nombre. else: msg.warning( "El archivo: %s ya tiene un archivo convertido a texto con el mismo nombre" % file_orig) msg.print_tMsg() return msg.get_tMsg()
def pdfatexto(arch_sel): """Función que convierte el pdf a texto raw Arg: arch_sel: Ruta y nombre del archivo pfd a convertir a texto """ # Inicializo el objeto que acumula los mensajes en una tupla. msg = CT.msg() # Nombre del archivo pdf original a evaluar file_orig = os.path.basename(arch_sel) # Nombre de la ruta original ruta_orig = os.path.dirname(arch_sel) + '/' # Nombre del archivo convertido a modo texto filename = os.path.splitext(file_orig)[0] + ".txt" logger.info("-- Convierto archivo pdf a texto") logger.info("Archivo original: %s" % arch_sel) logger.info("Archivo original Tipo: %s" % type(arch_sel)) logger.debug("Archivo modo texto: %s" % filename) # Si no existe el archivo indicado if not os.path.isfile(arch_sel): msg.error("No existe el archivo: %s" % file_orig) msg.print_tMsg() sys.exit() # Si no hay un archivo pdf ya convertido con el mismo nombre en el destino => Convierto el archivo indicado elif not os.path.isfile(ruta_orig + filename): # subprocess.call(["df","-h","/home"]) subprocess.call(["pdftotext", "-f", "1", "-l", "1", "-raw", arch_sel, str(ruta_orig + filename)]) msg.info("Archivo: %s convertido a texto" % file_orig) # Si llegó acá es porque ya existe un archivo convertido con el mismo nombre. else: msg.warning("El archivo: %s ya tiene un archivo convertido a texto con el mismo nombre" % file_orig) msg.print_tMsg() return msg.get_tMsg()
def arch_magic(general_dic, pattern_dic, arch_sel): """Función que analiza un archivo pdf y lo compara con un diccionario de patrones data_dic: diccionario con la información de los patrones, nombre del archivo de salida,etc. ruta_orig: ruta desde donde analizo los archivos. file_original: nombre del archivo original a analizar """ # Inicializo el objeto que acumula los mensajes en una tupla. msg = CT.msg() # Nombre del archivo pdf original a evaluar. Lo codifico en utf-8 para no tener problemas file_orig = os.path.basename(arch_sel) # Nombre de la ruta original. Lo codifico en utf-8 para no tener problemas ruta_orig = os.path.dirname(arch_sel) + '/' # Nombre del archivo convertido a modo texto filename = os.path.splitext(file_orig)[0] + ".txt" msg.info("-- Archivo original: %s --\nRuta original: %s" % (file_orig, ruta_orig)) logger.info("-- Archivo original: %s -- Ruta original: %s" % (file_orig, ruta_orig)) logger.debug("Archivo modo texto: %s" % filename) if not os.path.isfile(ruta_orig + file_orig): logger.debug("No existe el archivo: %s" % file_orig) sys.exit() # Si el pdf no está convertido a texto lo convierto msg.info(pdfatexto(arch_sel)) # Abro el archivo de texto en modo lectura y cargo el contenido del archivo de texto a una variable with open(ruta_orig + filename, "r") as dataFile: fullData = dataFile.read() # fullData = dataFile.read().splitlines() logger.debug("-- Acá comienza el bucle --") comp_ok = False file_sal = '' # Variable con el nombre del archivo de salida subdir_destino = '' # Variable con el nombre del subdirectorio de salida (Para el caso de opción group_all). # Ordeno y recorro el diccionario de patrones. for item_conf in sorted(pattern_dic): logger.debug('-- Analizando el patrón ...%s' % item_conf) # Defino ruta destino para guardar el archivo # Si existe una ruta especial uso esa, sino uso ruta general definida al principio del archivo de configuración. # Python raises a KeyError whenever a dict() object is requested (using the format a = adict[key]) # and the key is not in the dictionary. If you don't want to have an exception but would rather a default value # used instead, you can use the get() method: ruta_default_dest = general_dic["ruta_destino"] ruta_destino = pattern_dic[item_conf].get('ruta_destino', ruta_default_dest) # Recupero las opciones específicas del patrón, si no están definidas me quedo con las generales. pattern_opt_default = general_dic['pattern_opt'] pattern_opt = pattern_dic[item_conf].get('pattern_opt', pattern_opt_default) copia_destino_default = pattern_opt_default.get('copia_destino') copia_destino = pattern_opt.get('copia_destino', copia_destino_default) # Patrón a utilizar "pattern", variable con el resultado de la comparación "comp" logger.debug(type(pattern_dic[item_conf]['pattern'])) pattern = r'%s' % pattern_dic[item_conf]['pattern'] logger.debug('pattern: %s' % type(pattern)) logger.debug("pattern: %s" % pattern) comp = re.search(pattern, fullData, flags=re.DOTALL | re.MULTILINE | re.IGNORECASE) if comp: logger.info("Coincidencia con el patrón analizado (%s)" % item_conf) msg.info("Coincidencia con el patrón analizado (%s)" % item_conf) logger.debug("Cantidad de Grupos: %s" % len(comp.groups())) # Formateo del nombre del archivo de salida. Convierto la cadena file_salida separada por comas en la tupla ftxt_sal. ftxt_sal = tuple(pattern_dic[item_conf]['file_salida'].split(',')) # Armo de a pedazos el nombre del archivo de salida. for kk in ftxt_sal: # Si es un entero el nombre corresponde al grupo regex, si al string definido en el archivo conf. try: kk = int(kk) vg = comp.group(kk) #print 'Es numerico -> Grupo, Valor:', kk, vg except ValueError: vg = kk #print 'Es una Cadena -> Valor:', vg file_sal += vg file_sal += '.pdf' logger.info('Nombre nuevo archivo: %s' % file_sal) msg.info('Nombre nuevo archivo: %s' % file_sal) # Si está definida group_all tengo que meter el archivo y los directorios adyacentes todos juntos en el # destino agrupandolos en un subdirectorio. group_all_default = '' group_all = pattern_dic[item_conf].get('group_all', group_all_default) if (group_all != '' and copia_destino): logger.info('Se agrupa a subdirectorio') msg.info('Se agrupa a subdirectorio') # Formateo del nombre del subdirectorio de destino. Convierto la cadena group_all separada por comas # en la tupla subdirtxt_dest. subdirtxt_dest = tuple(group_all.split(',')) logger.debug('Tipo para subdirtxt_dest: %s - %s' % (type(subdirtxt_dest), subdirtxt_dest)) # Armo de a pedazos el nombre del subdirectorio destino. for dkey in subdirtxt_dest: # Si es un entero el nombre corresponde al grupo regex, sino al string definido en el archivo conf. try: dkey = int(dkey) vdg = comp.group(dkey) except ValueError: vdg = dkey subdir_destino += vdg subdir_destino += '/' # Verifico que el subdirectorio no exista en el destino logger.info('Creando el subdirectorio en el destino.') nueva_ruta_destino = ruta_destino + subdir_destino msg.info(' - Ruta destino: %s' % nueva_ruta_destino) logger.info(' - Ruta destino: %s' % nueva_ruta_destino) if not os.path.exists(nueva_ruta_destino): # Verifico que el destino exista y tenga permiso de escritura if copia_destino and check_path(ruta_destino,is_dir=True): os.makedirs(nueva_ruta_destino) # Creo el subdirectorio logger.debug('Copio el archivo y los directorios adyacentes al subdirectorio destino.') # Copio el archivo pdf shutil.copy2(ruta_orig + file_orig, nueva_ruta_destino + file_sal) msg.info('\tSe copió el archivo') logger.info('\tSe copió el archivo') # Copio los directorios adyacentes al sudirectorio destino subdir_ady = os.walk(ruta_orig).next()[1] for ix_subd in subdir_ady: shutil.copytree(ruta_orig + ix_subd, nueva_ruta_destino + ix_subd) msg.info('\tDirectorios adyacentes copiados: %s' % ix_subd) logger.info('\tDirectorios adyacentes copiados: %s' % ix_subd) else: msg.warning('Atención: El directorio destino no existe o no tengo permisos de escritura.') group_all_ok = False else: msg.warning('Atención: Ya existe un archivo/directorio con el mismo nombre en el destino.') logger.info('Atención: Ya existe un archivo/directorio con el mismo nombre en el destino.') group_all_ok = False else: # No hay agrupamiento a subdirectorio => Solo copio el archivo logger.info('No agrupo a subdirectorio') # Verifico que no exista el archivo if copia_destino and not os.path.isfile(ruta_destino + file_sal): logger.debug('Entro al bucle de copia 1') if os.access(ruta_destino, os.W_OK): logger.debug('Entro al bucle de copia 2') logger.debug('Copiando archivo %s %s %s %s' % (ruta_orig, file_orig, ruta_destino, file_sal)) # Creo una copia y renombro el archivo shutil.copy2(ruta_orig + file_orig, ruta_destino + file_sal) msg.info('Se copió el archivo - Directorio destino: %s' % ruta_destino) logger.info('Se copió el archivo - Directorio destino: %s' % ruta_destino) else: logger.debug('Entro al bucle de copia 3') msg.warning('Atención: No copio el archivo porque ya existe un archivo/directorio con el mismo nombre en el destino.') logger.info('Atención: No copio el archivo porque ya existe un archivo/directorio con el mismo nombre en el destino.') #sys.exit('Atención: No muevo el archivo porque ya existe un archivo/directorio con el mismo nombre en el destino.') # Renombro el archivo en el lugar if not os.path.isfile(ruta_orig + file_sal): shutil.move(ruta_orig + file_orig, ruta_orig + file_sal) msg.info('Se renombró el archivo en el origen.') logger.info('Se renombro el archivo en el origen.') else: msg.warning('Atención: No renombro el archivo en el directorio de origen porque ya existe uno con el mismo nombre.') logger.info('Atención: No renombro el archivo en el directorio de origen porque ya existe uno con el mismo nombre.') # Asigno valor a la variable que indica que hubo coincidencia y salgo del bucle. comp_ok = True break # A la primera coincidencia salgo del bucle. else: logger.debug("-- El patrón: %s no coincide con el archivo analizado --" % item_conf) # Si no coincide ningún patrón. if not comp_ok: msg.warning('-- Ningún Patrón conocido coincide con el archivo %s analizado --' % file_orig) logger.info('-- Ningún Patrón conocido coincide con el archivo %s analizado --' % file_orig) # Borro el archivo convertido a texto if os.path.isfile(ruta_orig + filename): os.remove(ruta_orig + filename) return msg.get_tMsg()
def arch_magic(general_dic, pattern_dic, arch_sel): """Función que analiza un archivo pdf y lo compara con un diccionario de patrones data_dic: diccionario con la información de los patrones, nombre del archivo de salida,etc. ruta_orig: ruta desde donde analizo los archivos. file_original: nombre del archivo original a analizar """ # Inicializo el objeto que acumula los mensajes en una tupla. msg = CT.msg() # Nombre del archivo pdf original a evaluar. Lo codifico en utf-8 para no tener problemas file_orig = os.path.basename(arch_sel) # Nombre de la ruta original. Lo codifico en utf-8 para no tener problemas ruta_orig = os.path.dirname(arch_sel) + '/' # Nombre del archivo convertido a modo texto filename = os.path.splitext(file_orig)[0] + ".txt" msg.info("-- Archivo original: %s --\nRuta original: %s" % (file_orig, ruta_orig)) logger.info("-- Archivo original: %s -- Ruta original: %s" % (file_orig, ruta_orig)) logger.debug("Archivo modo texto: %s" % filename) if not os.path.isfile(ruta_orig + file_orig): logger.debug("No existe el archivo: %s" % file_orig) sys.exit() # Si el pdf no está convertido a texto lo convierto msg.info(pdfatexto(arch_sel)) # Abro el archivo de texto en modo lectura y cargo el contenido del archivo de texto a una variable with open(ruta_orig + filename, "r") as dataFile: fullData = dataFile.read() # fullData = dataFile.read().splitlines() logger.debug("-- Acá comienza el bucle --") comp_ok = False file_sal = '' # Variable con el nombre del archivo de salida subdir_destino = '' # Variable con el nombre del subdirectorio de salida (Para el caso de opción group_all). # Ordeno y recorro el diccionario de patrones. for item_conf in sorted(pattern_dic): logger.debug('-- Analizando el patrón ...%s' % item_conf) # Defino ruta destino para guardar el archivo # Si existe una ruta especial uso esa, sino uso ruta general definida al principio del archivo de configuración. # Python raises a KeyError whenever a dict() object is requested (using the format a = adict[key]) # and the key is not in the dictionary. If you don't want to have an exception but would rather a default value # used instead, you can use the get() method: ruta_default_dest = general_dic["ruta_destino"] ruta_destino = pattern_dic[item_conf].get('ruta_destino', ruta_default_dest) # Recupero las opciones específicas del patrón, si no están definidas me quedo con las generales. pattern_opt_default = general_dic['pattern_opt'] pattern_opt = pattern_dic[item_conf].get('pattern_opt', pattern_opt_default) copia_destino_default = pattern_opt_default.get('copia_destino') copia_destino = pattern_opt.get('copia_destino', copia_destino_default) # Patrón a utilizar "pattern", variable con el resultado de la comparación "comp" logger.debug(type(pattern_dic[item_conf]['pattern'])) pattern = r'%s' % pattern_dic[item_conf]['pattern'] logger.debug('pattern: %s' % type(pattern)) logger.debug("pattern: %s" % pattern) comp = re.search(pattern, fullData, flags=re.DOTALL | re.MULTILINE | re.IGNORECASE) if comp: logger.info("Coincidencia con el patrón analizado (%s)" % item_conf) msg.info("Coincidencia con el patrón analizado (%s)" % item_conf) logger.debug("Cantidad de Grupos: %s" % len(comp.groups())) # Formateo del nombre del archivo de salida. Convierto la cadena file_salida separada por comas en la tupla ftxt_sal. ftxt_sal = tuple(pattern_dic[item_conf]['file_salida'].split(',')) # Armo de a pedazos el nombre del archivo de salida. for kk in ftxt_sal: # Si es un entero el nombre corresponde al grupo regex, si al string definido en el archivo conf. try: kk = int(kk) vg = comp.group(kk) #print 'Es numerico -> Grupo, Valor:', kk, vg except ValueError: vg = kk #print 'Es una Cadena -> Valor:', vg file_sal += vg file_sal += '.pdf' logger.info('Nombre nuevo archivo: %s' % file_sal) msg.info('Nombre nuevo archivo: %s' % file_sal) # Si está definida group_all tengo que meter el archivo y los directorios adyacentes todos juntos en el # destino agrupandolos en un subdirectorio. group_all_default = '' group_all = pattern_dic[item_conf].get('group_all', group_all_default) if (group_all != '' and copia_destino): logger.info('Se agrupa a subdirectorio') msg.info('Se agrupa a subdirectorio') # Formateo del nombre del subdirectorio de destino. Convierto la cadena group_all separada por comas # en la tupla subdirtxt_dest. subdirtxt_dest = tuple(group_all.split(',')) logger.debug('Tipo para subdirtxt_dest: %s - %s' % (type(subdirtxt_dest), subdirtxt_dest)) # Armo de a pedazos el nombre del subdirectorio destino. for dkey in subdirtxt_dest: # Si es un entero el nombre corresponde al grupo regex, sino al string definido en el archivo conf. try: dkey = int(dkey) vdg = comp.group(dkey) except ValueError: vdg = dkey subdir_destino += vdg subdir_destino += '/' # Verifico que el subdirectorio no exista en el destino logger.info('Creando el subdirectorio en el destino.') nueva_ruta_destino = ruta_destino + subdir_destino msg.info(' - Ruta destino: %s' % nueva_ruta_destino) logger.info(' - Ruta destino: %s' % nueva_ruta_destino) if not os.path.exists(nueva_ruta_destino): # Verifico que el destino exista y tenga permiso de escritura if copia_destino and check_path(ruta_destino, is_dir=True): os.makedirs( nueva_ruta_destino) # Creo el subdirectorio logger.debug( 'Copio el archivo y los directorios adyacentes al subdirectorio destino.' ) # Copio el archivo pdf shutil.copy2(ruta_orig + file_orig, nueva_ruta_destino + file_sal) msg.info('\tSe copió el archivo') logger.info('\tSe copió el archivo') # Copio los directorios adyacentes al sudirectorio destino subdir_ady = os.walk(ruta_orig).next()[1] for ix_subd in subdir_ady: shutil.copytree(ruta_orig + ix_subd, nueva_ruta_destino + ix_subd) msg.info('\tDirectorios adyacentes copiados: %s' % ix_subd) logger.info( '\tDirectorios adyacentes copiados: %s' % ix_subd) else: msg.warning( 'Atención: El directorio destino no existe o no tengo permisos de escritura.' ) group_all_ok = False else: msg.warning( 'Atención: Ya existe un archivo/directorio con el mismo nombre en el destino.' ) logger.info( 'Atención: Ya existe un archivo/directorio con el mismo nombre en el destino.' ) group_all_ok = False else: # No hay agrupamiento a subdirectorio => Solo copio el archivo logger.info('No agrupo a subdirectorio') # Verifico que no exista el archivo if copia_destino and not os.path.isfile(ruta_destino + file_sal): logger.debug('Entro al bucle de copia 1') if os.access(ruta_destino, os.W_OK): logger.debug('Entro al bucle de copia 2') logger.debug( 'Copiando archivo %s %s %s %s' % (ruta_orig, file_orig, ruta_destino, file_sal)) # Creo una copia y renombro el archivo shutil.copy2(ruta_orig + file_orig, ruta_destino + file_sal) msg.info( 'Se copió el archivo - Directorio destino: %s' % ruta_destino) logger.info( 'Se copió el archivo - Directorio destino: %s' % ruta_destino) else: logger.debug('Entro al bucle de copia 3') msg.warning( 'Atención: No copio el archivo porque ya existe un archivo/directorio con el mismo nombre en el destino.' ) logger.info( 'Atención: No copio el archivo porque ya existe un archivo/directorio con el mismo nombre en el destino.' ) #sys.exit('Atención: No muevo el archivo porque ya existe un archivo/directorio con el mismo nombre en el destino.') # Renombro el archivo en el lugar if not os.path.isfile(ruta_orig + file_sal): shutil.move(ruta_orig + file_orig, ruta_orig + file_sal) msg.info('Se renombró el archivo en el origen.') logger.info('Se renombro el archivo en el origen.') else: msg.warning( 'Atención: No renombro el archivo en el directorio de origen porque ya existe uno con el mismo nombre.' ) logger.info( 'Atención: No renombro el archivo en el directorio de origen porque ya existe uno con el mismo nombre.' ) # Asigno valor a la variable que indica que hubo coincidencia y salgo del bucle. comp_ok = True break # A la primera coincidencia salgo del bucle. else: logger.debug( "-- El patrón: %s no coincide con el archivo analizado --" % item_conf) # Si no coincide ningún patrón. if not comp_ok: msg.warning( '-- Ningún Patrón conocido coincide con el archivo %s analizado --' % file_orig) logger.info( '-- Ningún Patrón conocido coincide con el archivo %s analizado --' % file_orig) # Borro el archivo convertido a texto if os.path.isfile(ruta_orig + filename): os.remove(ruta_orig + filename) return msg.get_tMsg()
# Establezco un objeto logger y su nombre logger = logging.getLogger(__name__) # Páginas para implementar la GUI import ClasesGui as CG import ClassTools as CT # Declaro la Ventana principal de la GUI root = Tk() result = CG.TkGui(root,default_side=LEFT) mensaje = CT.msg() mensaje.info('Es una información') mensaje.error('Es un error') mensaje.warning('Es una advertencia') mensaje.getMsg() result.msg_text(mensaje.getMsg()) #result.mostrar() #msg = (('Un mensaje informativo','info'),('Otro mensaje informativo','info'),('Un mensaje de advertencia','warning'), # ('Este mensaje final es de error','error')) #result.msg_text(msg) result.mensaje('La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa y sigue sigue la cosa ' 'La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa ' 'La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa ')
def main(argv): if len(argv) == 0: # print 'Usage: my_program command --option <argument>' print(__doc__) else: args = docopt(__doc__, argv=argv) if args['aggregate_labels']: with tempfile.TemporaryDirectory() as tmpdir: scrapping.scrap(args['<bundles_dir>'], tmpdir) notcut_trees = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_notcut_trees.txt' notcut_priors = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_notcut_priors.csv' cut_trees = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_cut_trees.txt' split_trees = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_split_trees.txt' withdummy_trees = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_withdummy_trees.txt' cut_priors = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_cut_priors.csv' split_priors = args['<out_dir>'] + '/' + args[ '<prefix>'] + '_split_priors.csv' out_df = args['<out_dir>'] + '/' + args['<prefix>'] + '_df.csv' lt.aggregate_labels_from_bundles_to_trees( args['<all_trees.txt>'], tmpdir, notcut_trees) tt.remove_duplicate_nodes(notcut_trees, notcut_trees) print('Duplicate nodes were removed.') tt.translate_list_of_trees(notcut_trees, notcut_trees) print('Trees were translated.') lt.remove_2nd_tags(notcut_trees) print('2nd tags were removed.') lt.print_label_priors(notcut_trees, notcut_priors) lt.cut_non_labeled_branches(notcut_trees, cut_trees) print('Non-labeled branches were cut.') lt.apply_split_labels_to_trees(cut_trees, split_trees) lt.print_label_priors(split_trees, split_priors) print('Split labels were applied.') lt.apply_start_split_end_labels_to_trees( cut_trees, withdummy_trees) print('Start-Split-End labels were applied.') lt.print_label_priors(cut_trees, cut_priors) lt.create_data_csv(split_trees, out_df) print('Labels aggregated successfully.') if args['rename_labels']: lt.rename_labels(args['<in_file>'], args['<out_file>']) if args['rename_tags_in_trees']: lt.rename_tags_in_trees(args['<trees.txt>'], args['<out_trees.txt>']) if args['rename_tags_in_df']: lt.rename_tags_in_df(args['<df.csv>'], args['<out_df.csv>']) if args['create_bundles']: tt.create_bundles(args['<all_trees.txt>'], args['<tree_ids>'], args['<out_dir>']) if args['rework_labels']: lt.rework_labels(args['<labeled_trees.txt>'], args['<rework_settings.txt>'], args['<out_trees.txt>']) if args['create_df']: lt.create_data_csv(args['<labeled_trees.txt>'], args['<out_df.csv>'], args['--rework_settings'], args['--ignore_deleted']) if args['print']: if args['dis_branch']: dst.print_branch(trees_path=args['<trees.txt>'], probas_path=args['<probas.dispr>'], branch_atlas_id=args['<branch_atlas_id>'], out_file=args['<out_file.csv>']) if args['dis_tags_npmi']: dst.print_dis_tags_npmi(trees_path=args['<trees.txt>'], probas_path=args['<probas.dispr>'], out_file=args['<out.csv>'], just_count=args['--just_count'], just_pmi=args['--just_pmi']) if args['tags_npmi']: lt.print_tags_npmi_table(args['<labeled_trees.txt>'], args['<out.csv>'], args['--just_count'], args['--log']) if args['label_priors']: lt.print_label_priors(args['<labeled_trees.txt>'], args['<out.csv>'], args['--per_tree']) if args['label_details']: lt.print_label_details(args['<labeled_trees.txt>'], args['<out.csv>']) if args['label_cooc_lists']: lt.print_label_cooc_lists(args['<labeled_trees.txt>'], args['<out.csv>']) if args['label_passes']: lt.print_label_passes(args['<labeled_trees.txt>'], args['<out_dir>']) if args['label_ngrams']: lt.print_label_ngrams( args['<labeled_trees.txt>'], args['<out_dir>'], [int(n) for n in args['<n1,n2,n3>'].split(',')]) if args['forward_backward_transitions']: lt.print_forward_backward_transitions( args['<labeled_trees.txt>'], args['<out_dir>'], [int(n) for n in args['<n1,n2,n3>'].split(',')]) if args['label_ngram_lists']: lt.print_label_ngram_lists( args['<labeled_trees.txt>'], args['<out_file>'], [int(n) for n in args['<n1,n2,n3>'].split(',')], args['<min_count>']) if args['trees_statistics']: tt.create_list_of_trees_statistics(args['<trees.txt>'], args['<stats.csv>']) if args['label_stats']: trees_path = args['<trees.txt>'] out_dir = args['<stats_dir>'] priors_csv = out_dir + '/priors.csv' npmi = out_dir + '/npmi.csv' correlation_log = out_dir + '/corr_log.txt' pmi = out_dir + '/pmi.csv' matthews = out_dir + '/matthews_correlation.csv' together_counts = out_dir + '/together_counts.csv' general_stats = out_dir + '/general_stats.csv' lt.print_label_ngrams(trees_path, out_dir, [2, 3, 4, 5, 6, 7]) lt.print_label_priors(trees_path, priors_csv) lt.print_tags_npmi_table(trees_path, npmi, log_file=correlation_log) lt.print_tags_npmi_table(trees_path, pmi, just_pmi=True) lt.print_tags_npmi_table(trees_path, together_counts, just_count=True) tt.create_list_of_trees_statistics(trees_path, general_stats) lt.print_tags_matthews(trees_path, matthews) if args['grid_search']: cv = None if args['--cv']: cv = int(args['--cv']) target_tags = None if args['--target_tags']: target_tags = args['--target_tags'].split(',') split_tags = None if args['--split_tags']: split_tags = [int(i) for i in args['--split_tags'].split(',')] adders = args['--adders'] ct.grid_search(args['<data_prefix>'], args['<pipe_prefix>'], args['<params_prefix>'], adders=adders, cv=cv, split_tags=split_tags, target_tags=target_tags) if args['train_test']: target_tags = None if args['--target_tags']: target_tags = args['--target_tags'].split(',') adders = args['--adders'] cls = args['--cls'] ct.train_test(args['<train>'], args['<test>'], args['<pipe>'], args['<params>'], args['<mode>'], classifier=cls, target_tags=target_tags, adders=adders) if args['aggregate_train_test']: target_tags = None if args['--target_tags']: target_tags = args['--target_tags'].split(',') adders = args['--adders'] cls = args['--cls'] ct.aggregate_traintest(args['<train>'], args['<test>'], args['<pipe>'], args['<params>'], args['<mode>'], classifier=cls, target_tags=target_tags, adders=adders) if args['lstmsa']: ct.lstm_sa(data_prefix=args['<data_prefix>'], target_tags=args['--target_tags'], pipes=args['<pipes>'], hidden_dims=args['<hidden_dims>']) if args['aggregate_scores']: ct.aggregate_scores(args['<data_prefix>'], args['<pipe_prefix>']) if args['aggregate_scores_lstmsa']: ct.aggregate_scores_lstmsa(args['<data_prefix>'], args['--tags']) if args['create_doc2vec_train_file']: ft.create_d2vtrain_lines(args['<trees.txt>'], args['<out_file.txt>']) if args['train_doc2vec']: ft.train_doc2vec(args['<train_file.txt>'], args['<out_model.txt>'], int(args['<epochs>']), int(args['<dim>'])) if args['prefit_adders']: ft.prefit_adders(args['<data_prefix>'], args['--adders']) if args['prepare_dissent']: dst.run_trees(args['<trees.txt>'], args['<out_path>']) if args['merge_disprobas']: dst.merge_probas(probas_dir=args['<probas_dir>'], out_path=args['<out_file.dispr>'])
import logging # Establezco un objeto logger y su nombre logger = logging.getLogger(__name__) # Páginas para implementar la GUI import ClasesGui as CG import ClassTools as CT # Declaro la Ventana principal de la GUI root = Tk() result = CG.TkGui(root, default_side=LEFT) mensaje = CT.msg() mensaje.info('Es una información') mensaje.error('Es un error') mensaje.warning('Es una advertencia') mensaje.getMsg() result.msg_text(mensaje.getMsg()) #result.mostrar() #msg = (('Un mensaje informativo','info'),('Otro mensaje informativo','info'),('Un mensaje de advertencia','warning'), # ('Este mensaje final es de error','error')) #result.msg_text(msg) result.mensaje( 'La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa y sigue sigue la cosa ' 'La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa ' 'La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa La sarasa '