# 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/unids/trads.py
# C_ = regu.Quantity
# def act_arch_trads(l_d_t):
# def trad_unid(unid, leng_final, leng_orig=None, falla_silencio=True):
# def agregar_trad(unid, trad, leng_trad, leng_orig=None, guardar=True):
# def agregar_sinónimos(unid, sinónimos, leng, guardar=False):
# def _buscar_d_unid(unid, leng=None):
# def buscar_singular(u):
# 
# Path: tinamit/unids/trads.py
# def buscar_singular(u):
#     """
#     Busca las formas singulares posibles de una unidad.
# 
#     Parameters
#     ----------
#     u : str
#         La unidad potencialmente plurial.
# 
#     Returns
#     -------
#     list[str]
#         Una lista de las formas singulares potenciales.
# 
#     """
# 
#     # Generar una lista de la unidad y de potenciales formas singulares
#     l_u = [u]
#     for p in _pluriales:
#         try:
#             if u.endswith(p):
#                 l_u.append(u[:-len(p)])
#         except IndexError:
#             pass  # En el caso que la extensión plural sea más grande que la unidad sí misma.
# 
#     return l_u


import pint
import regex as re
from tinamit.config import _
from tinamit.unids import regu, C_, trad_unid
from tinamit.unids.trads import buscar_singular
        return val

    # Reformatear exponentes para que los entienda Pint
    de = re.sub(r'([\p{l}\p{m}]+\w*)(-?[\p{n}]+)', repl=r'\1 ^ \2', string=de)
    a = re.sub(r'([\p{l}\p{m}]+\w*)(-?[\p{n}]+)', repl=r'\1 ^ \2', string=a)

    # Leer los nombres de todas las unidades presentes.
    unids_pres_de = re.findall(r'[\p{l}\p{m}]+', de)
    unids_pres_a = re.findall(r'[\p{l}\p{m}]+', a)
    unids_pres = list(set(unids_pres_de + unids_pres_a))

    # Agregar unidades no reconocidas por Pint
    for u in unids_pres:
        # Para cada tipo_mod de unidad detectada en las unidades iniciales...

        try:
            # Ver si Pint lo reconoce
            regu.parse_units(u)

        except pint.UndefinedUnitError:
            # Si Pint no lo reconoce...

            try:
                # Primero intentamos traducirlo para Pint
                u_t = trad_unid(u, leng_final='en', leng_orig=lengua)

                if u_t != u:
                    # Si la traducción se efectuó...

                    # ...reemplazar las unidades iniciales con la versión traducida.

# 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/unids/trads.py
# C_ = regu.Quantity
# def act_arch_trads(l_d_t):
# def trad_unid(unid, leng_final, leng_orig=None, falla_silencio=True):
# def agregar_trad(unid, trad, leng_trad, leng_orig=None, guardar=True):
# def agregar_sinónimos(unid, sinónimos, leng, guardar=False):
# def _buscar_d_unid(unid, leng=None):
# def buscar_singular(u):
# 
# Path: tinamit/unids/trads.py
# def buscar_singular(u):
#     """
#     Busca las formas singulares posibles de una unidad.
# 
#     Parameters
#     ----------
#     u : str
#         La unidad potencialmente plurial.
# 
#     Returns
#     -------
#     list[str]
#         Una lista de las formas singulares potenciales.
# 
#     """
# 
#     # Generar una lista de la unidad y de potenciales formas singulares
#     l_u = [u]
#     for p in _pluriales:
#         try:
#             if u.endswith(p):
#                 l_u.append(u[:-len(p)])
#         except IndexError:
#             pass  # En el caso que la extensión plural sea más grande que la unidad sí misma.
# 
#     return l_u


# Path: tinamit/unids/conv.py
import pint
import regex as re
from tinamit.config import _
from tinamit.unids import regu, C_, trad_unid
from tinamit.unids.trads import buscar_singular

        return val

    # Reformatear exponentes para que los entienda Pint
    de = re.sub(r'([\p{l}\p{m}]+\w*)(-?[\p{n}]+)', repl=r'\1 ^ \2', string=de)
    a = re.sub(r'([\p{l}\p{m}]+\w*)(-?[\p{n}]+)', repl=r'\1 ^ \2', string=a)

    # Leer los nombres de todas las unidades presentes.
    unids_pres_de = re.findall(r'[\p{l}\p{m}]+', de)
    unids_pres_a = re.findall(r'[\p{l}\p{m}]+', a)
    unids_pres = list(set(unids_pres_de + unids_pres_a))

    # Agregar unidades no reconocidas por Pint
    for u in unids_pres:
        # Para cada tipo_mod de unidad detectada en las unidades iniciales...

        try:
            # Ver si Pint lo reconoce
            regu.parse_units(u)

        except pint.UndefinedUnitError:
            # Si Pint no lo reconoce...

            try:
                # Primero intentamos traducirlo para Pint
                u_t = trad_unid(u, leng_final='en', leng_orig=lengua)

                if u_t != u:
                    # Si la traducción se efectuó...

                    # ...reemplazar las unidades iniciales con la versión traducida.

                    regu.parse_units(u_t)  # Verificar que la traducción sí funcione.