# Path: tinamit/config.py
# class OpsConfig(object):
# class Config(OpsConfig):
# class Trads(object):
#     def __init__(símismo, pariente, valores=None):
#     def a_dic(símismo):
#     def borrar(símismo, llave):
#     def guardar(símismo):
#     def __contains__(símismo, itema):
#     def __getitem__(símismo, itema):
#     def __setitem__(símismo, llave, valor):
#     def __init__(símismo, archivo, auto=None):
#     def reinic(símismo):
#     def borrar(símismo, llave):
#     def guardar(símismo):
#     def __setitem__(símismo, llave, valor):
#     def __init__(símismo, dir_local):
#     def idioma(símismo):
#     def auxiliares(símismo):
#     def cambiar_idioma(símismo, idioma):
#     def cambiar_aux(símismo, aux):
#     def trad(símismo, texto):
#     def _regen_trads(símismo):
#     AUX = 'aux'
#     PRINC = 'principal'
#     DOMINIO = 'leng'
# 
# Path: tinamit/cositas.py
# def guardar_json(obj, arch):
#     """
#     Guarda un fuente json, sin riesgo de corrumpir el fuente si se interrumpe el programa mientras escribía al disco.
# 
#     Parameters
#     ----------
#     obj : list | dict
#         Objeto compatible json.
#     arch : str
#         El fuente en el cual hay que guardar el objeto json.
# 
#     """
#     nmbr, ext = os.path.splitext(arch)
#     if not len(ext):
#         arch = nmbr + '.json'
# 
#     contenido = json.dumps(obj, ensure_ascii=False, sort_keys=True, indent=2)
#     guardar_archivo(arch, contenido=contenido)
# 
# def cargar_json(arch, codif='UTF-8'):
#     """
#     Cargar un fuente json.
# 
#     Parameters
#     ----------
#     arch : str
#         El fuente en el cual se encuentra el objeto json.
#     codif : str
#         La codificación del fuente.
# 
#     Returns
#     -------
#     dict | list
#         El objeto json.
# 
#     """
# 
#     nmbr, ext = os.path.splitext(arch)
#     if not len(ext):
#         arch = nmbr + '.json'
# 
#     with open(arch, 'r', encoding=codif) as d:
#         return json.load(d)


import json
import os
import babel
import pint
import pkg_resources
from itertools import chain as cadena
from pint import UnitRegistry
from tinamit.config import _
from tinamit.cositas import guardar_json, cargar_json
            d_unid = next((x for x in l_dic_trads
                           if any(u in y['sn'] or u == y['pr'] for y in x.values())
                           ), None)
        else:
            # Si conocemos la lengua, buscar únicamente en las unidades de ésta.
            d_unid = next((x for x in l_dic_trads
                           if leng in x and (u in x[leng]['sn'] or u == x[leng]['pr'])
                           ), None)

        if d_unid is not None:
            # Si encontramos algo, para aquí.
            break

    # Si todavía no encontramos nada y la lengua original queda en inglés, ver si Pint nos pueda ayudar
    if d_unid is None and (leng == 'en' or leng is None):
        for u in l_u:
            try:
                u_base = regu.get_name(u)

                d_unid = next((x for x in l_dic_trads
                               if 'en' in x and (u_base in x['en']['sn'] or u_base == x['en']['pr'])
                               ), None)

            except pint.UndefinedUnitError:
                # Si no existía en Pint, seguir por el momento
                pass

    # Si todavía no encontramos nada, tenemos un error
    if d_unid is None:
        if leng is None:

# Path: tinamit/config.py
# class OpsConfig(object):
# class Config(OpsConfig):
# class Trads(object):
#     def __init__(símismo, pariente, valores=None):
#     def a_dic(símismo):
#     def borrar(símismo, llave):
#     def guardar(símismo):
#     def __contains__(símismo, itema):
#     def __getitem__(símismo, itema):
#     def __setitem__(símismo, llave, valor):
#     def __init__(símismo, archivo, auto=None):
#     def reinic(símismo):
#     def borrar(símismo, llave):
#     def guardar(símismo):
#     def __setitem__(símismo, llave, valor):
#     def __init__(símismo, dir_local):
#     def idioma(símismo):
#     def auxiliares(símismo):
#     def cambiar_idioma(símismo, idioma):
#     def cambiar_aux(símismo, aux):
#     def trad(símismo, texto):
#     def _regen_trads(símismo):
#     AUX = 'aux'
#     PRINC = 'principal'
#     DOMINIO = 'leng'
# 
# Path: tinamit/cositas.py
# def guardar_json(obj, arch):
#     """
#     Guarda un fuente json, sin riesgo de corrumpir el fuente si se interrumpe el programa mientras escribía al disco.
# 
#     Parameters
#     ----------
#     obj : list | dict
#         Objeto compatible json.
#     arch : str
#         El fuente en el cual hay que guardar el objeto json.
# 
#     """
#     nmbr, ext = os.path.splitext(arch)
#     if not len(ext):
#         arch = nmbr + '.json'
# 
#     contenido = json.dumps(obj, ensure_ascii=False, sort_keys=True, indent=2)
#     guardar_archivo(arch, contenido=contenido)
# 
# def cargar_json(arch, codif='UTF-8'):
#     """
#     Cargar un fuente json.
# 
#     Parameters
#     ----------
#     arch : str
#         El fuente en el cual se encuentra el objeto json.
#     codif : str
#         La codificación del fuente.
# 
#     Returns
#     -------
#     dict | list
#         El objeto json.
# 
#     """
# 
#     nmbr, ext = os.path.splitext(arch)
#     if not len(ext):
#         arch = nmbr + '.json'
# 
#     with open(arch, 'r', encoding=codif) as d:
#         return json.load(d)


# Path: tinamit/unids/trads.py
import json
import os
import babel
import pint
import pkg_resources
from itertools import chain as cadena
from pint import UnitRegistry
from tinamit.config import _
from tinamit.cositas import guardar_json, cargar_json

            d_unid = next((x for x in l_dic_trads
                           if any(u in y['sn'] or u == y['pr'] for y in x.values())
                           ), None)
        else:
            # Si conocemos la lengua, buscar únicamente en las unidades de ésta.
            d_unid = next((x for x in l_dic_trads
                           if leng in x and (u in x[leng]['sn'] or u == x[leng]['pr'])
                           ), None)

        if d_unid is not None:
            # Si encontramos algo, para aquí.
            break

    # Si todavía no encontramos nada y la lengua original queda en inglés, ver si Pint nos pueda ayudar
    if d_unid is None and (leng == 'en' or leng is None):
        for u in l_u:
            try:
                u_base = regu.get_name(u)

                d_unid = next((x for x in l_dic_trads
                               if 'en' in x and (u_base in x['en']['sn'] or u_base == x['en']['pr'])
                               ), None)

            except pint.UndefinedUnitError:
                # Si no existía en Pint, seguir por el momento
                pass

    # Si todavía no encontramos nada, tenemos un error
    if d_unid is None:
        if leng is None:

            raise ValueError(_('La unidad "{}" no existe en cualquier lengua conocida.').format(unid))