Exemple #1
0
    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']
Exemple #2
0
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
Exemple #3
0
    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))
Exemple #4
0
def _obt_ref(arch, d_auto):
    if not os.path.isfile(arch):
        guardar_json(jsonificar(d_auto), arch)

    return cargar_json(arch)
Exemple #5
0
def _guardar_conf():
    guardar_json(_configs, _dir_config)
Exemple #6
0
 def guardar(símismo):
     guardar_json(símismo.dic, arch=símismo.direc)
     guardar_json(símismo.config, arch=símismo.arch_config)
Exemple #7
0
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()
Exemple #8
0
 def guardar(símismo):
     try:
         guardar_json(símismo.a_dic(), símismo.archivo)
     except PermissionError:
         avisar(_('No se pudo guardar la configuración.'))