# Path: tinamit/mod/res.py
# class ResultadosSimul(object):
#     """
#     Resultados de una simulación.
#     """
# 
#     def __init__(símismo, nombre, t, vars_interés):
#         símismo.nombre = nombre
#         símismo.t = t
#         símismo.res_vars = {str(v): ResultadosVar(v, t) for v in vars_interés}
#         # Para hacer: implementar xr.Dataset una vez se coordinen los nombres de dimensiones de variables
# 
#     def actualizar(símismo):
#         for v in símismo:
#             v.actualizar()
# 
#     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 a_dic(símismo):
#         """
#         Convierte los resultados en diccionario.
# 
#         Returns
#         -------
#         dict
#         """
#         return {v: r.a_dic() for v, r in símismo.res_vars.items()}
# 
#     def variables(símismo):
#         return [v.var for v in símismo]
# 
#     def poner_vals_t(símismo, valores):
#         for vr, vl in valores.items():
#             símismo[vr].poner_vals_t(vl)
# 
#     def dibujar(símismo, directorio):
#         for var in símismo:
#             var.dibujar(directorio)
# 
#     def __str__(símismo):
#         return símismo.nombre
# 
#     def __iter__(símismo):
#         for v in símismo.res_vars.values():
#             yield v
# 
#     def __getitem__(símismo, itema):
#         return símismo.res_vars[str(itema)]
# 
#     def __eq__(símismo, otro):
#         return símismo.res_vars == otro.res_vars


from ..mod import ResultadosSimul


class ResultadosConectado(ResultadosSimul):
    def __init__(símismo, nombre, t, modelos, vars_interés):
        super().__init__(nombre, t, vars_interés=[])
        símismo.res_vars = {
            str(m): m.variables.gen_res(nombre, t, [v for v in vars_interés if v in m.variables]) for m in modelos
        }

    def a_dic(símismo):
        return {m: v.a_dic() for m, v in símismo.res_vars.items()}

    def __iter__(símismo):
        for m in símismo.res_vars.values():

# Path: tinamit/mod/res.py
# class ResultadosSimul(object):
#     """
#     Resultados de una simulación.
#     """
# 
#     def __init__(símismo, nombre, t, vars_interés):
#         símismo.nombre = nombre
#         símismo.t = t
#         símismo.res_vars = {str(v): ResultadosVar(v, t) for v in vars_interés}
#         # Para hacer: implementar xr.Dataset una vez se coordinen los nombres de dimensiones de variables
# 
#     def actualizar(símismo):
#         for v in símismo:
#             v.actualizar()
# 
#     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 a_dic(símismo):
#         """
#         Convierte los resultados en diccionario.
# 
#         Returns
#         -------
#         dict
#         """
#         return {v: r.a_dic() for v, r in símismo.res_vars.items()}
# 
#     def variables(símismo):
#         return [v.var for v in símismo]
# 
#     def poner_vals_t(símismo, valores):
#         for vr, vl in valores.items():
#             símismo[vr].poner_vals_t(vl)
# 
#     def dibujar(símismo, directorio):
#         for var in símismo:
#             var.dibujar(directorio)
# 
#     def __str__(símismo):
#         return símismo.nombre
# 
#     def __iter__(símismo):
#         for v in símismo.res_vars.values():
#             yield v
# 
#     def __getitem__(símismo, itema):
#         return símismo.res_vars[str(itema)]
# 
#     def __eq__(símismo, otro):
#         return símismo.res_vars == otro.res_vars


# Path: tinamit/conect/_res.py
from ..mod import ResultadosSimul



class ResultadosConectado(ResultadosSimul):
    def __init__(símismo, nombre, t, modelos, vars_interés):
        super().__init__(nombre, t, vars_interés=[])
        símismo.res_vars = {
            str(m): m.variables.gen_res(nombre, t, [v for v in vars_interés if v in m.variables]) for m in modelos
        }

    def a_dic(símismo):
        return {m: v.a_dic() for m, v in símismo.res_vars.items()}

    def __iter__(símismo):
        for m in símismo.res_vars.values():

            for v in m: