From 557b38c7bb5fe78b8478c1fa64ed11e5042c4e52 Mon Sep 17 00:00:00 2001 From: Jean-Matthieu Etancelin <jean-matthieu.etancelin@univ-reims.fr> Date: Thu, 9 Oct 2014 18:37:29 +0200 Subject: [PATCH] azodhazoduh --- HySoP/hysop/tools/profiler.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/HySoP/hysop/tools/profiler.py b/HySoP/hysop/tools/profiler.py index 332db961e..9f6cbc04f 100644 --- a/HySoP/hysop/tools/profiler.py +++ b/HySoP/hysop/tools/profiler.py @@ -58,6 +58,13 @@ class Profiler(object): self.table.append([]) self._elems = {} self._obj = obj + try: + self._obj_name = obj.name + except AttributeError: + if isinstance(obj, str): + self._obj_name = obj + else: + self._obj_name = 'unknown' self._l = 1 self.all_times = None @@ -68,7 +75,7 @@ class Profiler(object): try: self._elems[other.fname] = other except AttributeError: - self._elems[other._obj.name] = other + self._elems[other._obj_name] = other return self def __setitem__(self, key, value): @@ -87,7 +94,7 @@ class Profiler(object): s = "" if self._l == 1: s += "\n[{0}]".format(main_rank) - s += '- ' + self._obj.name + ":" + s += '- ' + self._obj_name + ":" for k in sorted(self.summary.keys()): if len(str(self.summary[k])) > 0: s += "\n[{0}]".format(main_rank) @@ -121,7 +128,10 @@ class Profiler(object): def summarize(self): from parmepy.fields.continuous import Field self.summary = {} - self._obj.get_profiling_info() + try: + self._obj.get_profiling_info() + except AttributeError: + pass i = 0 for k in self._elems.keys(): try: @@ -138,19 +148,19 @@ class Profiler(object): for k in sorted(self._elems.keys()): if isinstance(self._elems[k], FProfiler): self.table[self._comm_rank].append( - (self._obj.name + '.' + k, + (self._obj_name + '.' + k, self._elems[k].t, self._elems[k].n)) for k in sorted(self._elems.keys()): if isinstance(self._elems[k], Profiler) and \ not isinstance(self._elems[k]._obj, Field): for e in self._elems[k].table[self._comm_rank]: self.table[self._comm_rank].append( - (self._obj.name + '.' + e[0], e[1], e[2])) + (self._obj_name + '.' + e[0], e[1], e[2])) if isinstance(self._elems[k], Profiler) and \ isinstance(self._elems[k]._obj, Field): for e in self._elems[k].table[self._comm_rank]: self.table[self._comm_rank].append( - (self._obj.name + '.' + e[0], e[1], e[2])) + (self._obj_name + '.' + e[0], e[1], e[2])) if self._l == 1 and self.all_times is None: nb = len(self.table[self._comm_rank]) -- GitLab