# Path: tinamit/envolt/mds/_vars.py
# class VarConstante(VarMDS):
#     """
#     Un variable constante.
#     """
#     def __init__(símismo, nombre, unid, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(
#             nombre, unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms, info=info, ingr=True, egr=False
#         )
# 
# class VarAuxiliar(VarMDS):
#     """Un variable auxiliar."""
#     def __init__(símismo, nombre, unid, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(
#             nombre, unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms, info=info, ingr=True, egr=True
#         )
# 
# class VarNivel(VarMDS):
#     """Un variable nivel."""
#     def __init__(símismo, nombre, unid, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(
#             nombre, unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms, info=info, ingr=False, egr=True
#         )
#         símismo.var_inic = None
# 
#     def estab_var_inic(símismo, var_inic):
#         símismo.var_inic = var_inic
# 
# class VarMDS(Variable):
#     """
#     Un variable de un modelo :class:`~tinamit.envolt.mds.ModeloDS`.
#     """
#     def __init__(símismo, nombre, unid, ingr, egr, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(nombre, unid, ingr=ingr, egr=egr, inic=inic, líms=líms, info=info)
# 
#         símismo.ec = ec
#         símismo.parientes = parientes
#         símismo.subs = subs
# 
# class VariablesMDS(VariablesMod):
#     """
#     Representa los variables de un modelo :class:`~tinamit.envolt.mds.ModeloDS`.
#     """
#     def auxiliares(símismo):
#         return [v for v in símismo if isinstance(v, VarAuxiliar)]
# 
#     def niveles(símismo):
#         return [v for v in símismo if isinstance(v, VarNivel)]
# 
#     def constantes(símismo):
#         return [v for v in símismo if isinstance(v, VarConstante)]
# 
#     def parientes(símismo, var):
#         return símismo[str(var)].parientes
# 
#     def hijos(símismo, var):
#         return [v for v in símismo if var in v.parientes]


from .._vars import VarConstante, VarAuxiliar, VarNivel, VarMDS, VariablesMDS


class VariablesPySD(VariablesMDS):
    pass


class VarPySD(VarMDS):
    def __init__(símismo, nombre_py, **args_ll):
        símismo.nombre_py = nombre_py
        super().__init__(**args_ll)


class VarPySDConstante(VarPySD, VarConstante):
    def __init__(símismo, nombre, nombre_py, unid, ec, parientes, inic=0, subs=None, líms=None, info=''):
        super().__init__(
            nombre_py, nombre=nombre, unid=unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms,
            info=info
        )


class VarPySDAuxiliar(VarPySD, VarAuxiliar):

    def __init__(símismo, nombre, nombre_py, unid, ec, parientes, inic=0, subs=None, líms=None, info=''):
        super().__init__(
            nombre_py, nombre=nombre, unid=unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms,

# Path: tinamit/envolt/mds/_vars.py
# class VarConstante(VarMDS):
#     """
#     Un variable constante.
#     """
#     def __init__(símismo, nombre, unid, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(
#             nombre, unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms, info=info, ingr=True, egr=False
#         )
# 
# class VarAuxiliar(VarMDS):
#     """Un variable auxiliar."""
#     def __init__(símismo, nombre, unid, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(
#             nombre, unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms, info=info, ingr=True, egr=True
#         )
# 
# class VarNivel(VarMDS):
#     """Un variable nivel."""
#     def __init__(símismo, nombre, unid, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(
#             nombre, unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms, info=info, ingr=False, egr=True
#         )
#         símismo.var_inic = None
# 
#     def estab_var_inic(símismo, var_inic):
#         símismo.var_inic = var_inic
# 
# class VarMDS(Variable):
#     """
#     Un variable de un modelo :class:`~tinamit.envolt.mds.ModeloDS`.
#     """
#     def __init__(símismo, nombre, unid, ingr, egr, ec, parientes, inic, subs=None, líms=None, info=''):
#         super().__init__(nombre, unid, ingr=ingr, egr=egr, inic=inic, líms=líms, info=info)
# 
#         símismo.ec = ec
#         símismo.parientes = parientes
#         símismo.subs = subs
# 
# class VariablesMDS(VariablesMod):
#     """
#     Representa los variables de un modelo :class:`~tinamit.envolt.mds.ModeloDS`.
#     """
#     def auxiliares(símismo):
#         return [v for v in símismo if isinstance(v, VarAuxiliar)]
# 
#     def niveles(símismo):
#         return [v for v in símismo if isinstance(v, VarNivel)]
# 
#     def constantes(símismo):
#         return [v for v in símismo if isinstance(v, VarConstante)]
# 
#     def parientes(símismo, var):
#         return símismo[str(var)].parientes
# 
#     def hijos(símismo, var):
#         return [v for v in símismo if var in v.parientes]


# Path: tinamit/envolt/mds/pysd/_vars.py
from .._vars import VarConstante, VarAuxiliar, VarNivel, VarMDS, VariablesMDS



class VariablesPySD(VariablesMDS):
    pass


class VarPySD(VarMDS):
    def __init__(símismo, nombre_py, **args_ll):
        símismo.nombre_py = nombre_py
        super().__init__(**args_ll)


class VarPySDConstante(VarPySD, VarConstante):
    def __init__(símismo, nombre, nombre_py, unid, ec, parientes, inic=0, subs=None, líms=None, info=''):
        super().__init__(
            nombre_py, nombre=nombre, unid=unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms,
            info=info
        )


class VarPySDAuxiliar(VarPySD, VarAuxiliar):

    def __init__(símismo, nombre, nombre_py, unid, ec, parientes, inic=0, subs=None, líms=None, info=''):
        super().__init__(
            nombre_py, nombre=nombre, unid=unid, ec=ec, parientes=parientes, inic=inic, subs=subs, líms=líms,

            info=info