def __init__(símismo): símismo.direc = pkg_resources.resource_filename('tinamit.Interfaz', 'Trads.json') símismo.arch_config = pkg_resources.resource_filename('tinamit.Interfaz', 'Config.json') símismo.estándar = 'Español' símismo.config = None símismo.dic = cargar_json(símismo.direc) try: símismo.config = cargar_json(símismo.arch_config) except (FileNotFoundError, json.decoder.JSONDecodeError): pass símismo.lenguas = símismo.dic['Lenguas'] if símismo.config is None or \ 'leng_act' not in símismo.config or símismo.config['leng_act'] not in símismo.lenguas: config = {'leng_act': 'Kaqchikel'} símismo.config = config guardar_json(config, arch=símismo.arch_config) símismo.verificar_estados() leng_act = símismo.config['leng_act'] símismo.leng_act = símismo.lenguas[leng_act] símismo.trads_act = símismo.leng_act['Trads'] símismo.izq_a_derech = símismo.leng_act['IzqaDerech']
def act_arch_trads(l_d_t): """ Actualiza el fuente de traducciones. Parameters ---------- l_d_t : list[dict] """ antes = hash(str(l_d_t)) # UN conjunto vacío para las unidades presentes c_unids = set() # Agregar todas las unidades de Pint for d in dir(regu.sys): c_unids.update(u.lower() for u in dir(getattr(regu.sys, d))) # Todas las unidades ya en nuestro diccionario que podrían estar en Pint también. unids_doc = {d['en']['pr'].lower() for d in l_d_t if 'en' in d} # unids en Pint pero no en nuestro diccionario unids_faltan = c_unids.difference(unids_doc) # Lenguas ya incluidas en nuestro diccionario lengs = set(cadena.from_iterable([list(d) for d in l_d_t])) # Agregar las unidades de Pint que faltan for u in unids_faltan: # pragma: sin cobertura d_u = {'en': {'pr': u, 'sn': []}} d_u.update({lng: {'pr': '', 'sn': []} for lng in lengs if lng != 'en'}) l_d_t.append(d_u) # Limpiar el diccionario de traducciones for d in l_d_t: # Para cada unidad... for l, t in d.items(): # type: str, dict # Para cada lengua y diccionario de traducción... # Quitar nombres de unidades que estarían en la lista de sinónimos por error if t['pr'] in t['sn']: t['sn'].remove(t['pr']) d[l]['sn'] = list(set(t['sn'])) # Quitar sinónimos duplicados d[l]['sn'].sort() # Ordenar los sinónimos # Guardar el diccionario de traducciones si hubieron modificaciones if hash(str(l_d_t)) != antes: try: guardar_json(obj=l_d_t, arch=_archivo_trads) except OSError: pass
def guardar(símismo, frmt='json', l_vars=None, arch=None): """ Guarda los resultados en un archivo. Parameters ---------- frmt: str El formato deseado. Puede ser ``json`` o ``csv``. l_vars: La lista de variables de interés. """ if l_vars is None: l_vars = list(símismo) elif isinstance(l_vars, (str, Variable)): l_vars = [l_vars] if frmt[0] != '.': frmt = '.' + frmt arch = arch + frmt if arch else valid_nombre_arch(símismo.nombre + frmt) if frmt == '.json': contenido = símismo.a_dic() guardar_json(jsonificar(contenido), arch=arch) elif frmt == '.csv': with open(arch, 'w', encoding='UTF-8', newline='') as a: escr = csv.writer(a) escr.writerow([_('fecha')] + list(símismo.t.eje())) for var in l_vars: vals = símismo[var].values if len(vals.shape) == 1: escr.writerow([var] + vals.tolist()) else: for í in range(vals.shape[1]): escr.writerow(['{}[{}]'.format(var, í)] + vals[:, í].tolist()) else: raise ValueError( _('Formato de resultados "{}" no reconocido.').format(frmt))
def _obt_ref(arch, d_auto): if not os.path.isfile(arch): guardar_json(jsonificar(d_auto), arch) return cargar_json(arch)
def _guardar_conf(): guardar_json(_configs, _dir_config)
def guardar(símismo): guardar_json(símismo.dic, arch=símismo.direc) guardar_json(símismo.config, arch=símismo.arch_config)
l_dic_trads = None if l_dic_trads is None: if os.path.isfile(_archivo_trads): try: l_dic_trads = cargar_json(_archivo_trads) except json.JSONDecodeError: # pragma: sin cobertura l_dic_trads = [] else: l_dic_trads = [] if os.path.isfile(_archivo_pluriales): _pluriales = cargar_json(_archivo_pluriales) else: # pragma: sin cobertura _pluriales = ['s', 'es', 'ें', 'கள்', 'க்கள்'] guardar_json(_pluriales, _archivo_pluriales) def act_arch_trads(l_d_t): """ Actualiza el fuente de traducciones. Parameters ---------- l_d_t : list[dict] """ antes = hash(str(l_d_t)) # UN conjunto vacío para las unidades presentes c_unids = set()
def guardar(símismo): try: guardar_json(símismo.a_dic(), símismo.archivo) except PermissionError: avisar(_('No se pudo guardar la configuración.'))