From 268aff7c08fec5d2f5de334a213eb00f3cdc81bf Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Tue, 20 Jun 2023 12:04:28 +0200 Subject: [PATCH] fix: use UTC for plotting --- src/DIRAC/Core/Utilities/Graphs/BarGraph.py | 4 ++-- src/DIRAC/Core/Utilities/Graphs/CurveGraph.py | 4 ++-- src/DIRAC/Core/Utilities/Graphs/GraphData.py | 4 +++- src/DIRAC/Core/Utilities/Graphs/GraphUtilities.py | 10 +++++----- src/DIRAC/Core/Utilities/Graphs/LineGraph.py | 4 ++-- src/DIRAC/Core/Utilities/Graphs/QualityMapGraph.py | 4 ++-- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/DIRAC/Core/Utilities/Graphs/BarGraph.py b/src/DIRAC/Core/Utilities/Graphs/BarGraph.py index 3b9ca13b99c..53a194ee6dd 100644 --- a/src/DIRAC/Core/Utilities/Graphs/BarGraph.py +++ b/src/DIRAC/Core/Utilities/Graphs/BarGraph.py @@ -65,8 +65,8 @@ def draw(self): start_plot = 0 end_plot = 0 if "starttime" in self.prefs and "endtime" in self.prefs: - start_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["starttime"]))) - end_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["endtime"]))) + start_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["starttime"]))) + end_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["endtime"]))) nKeys = self.gdata.getNumberOfKeys() tmp_b = [] diff --git a/src/DIRAC/Core/Utilities/Graphs/CurveGraph.py b/src/DIRAC/Core/Utilities/Graphs/CurveGraph.py index a8f60fdf74a..6799f09c01c 100644 --- a/src/DIRAC/Core/Utilities/Graphs/CurveGraph.py +++ b/src/DIRAC/Core/Utilities/Graphs/CurveGraph.py @@ -35,8 +35,8 @@ def draw(self): start_plot = 0 end_plot = 0 if "starttime" in self.prefs and "endtime" in self.prefs: - start_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["starttime"]))) - end_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["endtime"]))) + start_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["starttime"]))) + end_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["endtime"]))) labels = self.gdata.getLabels() labels.reverse() diff --git a/src/DIRAC/Core/Utilities/Graphs/GraphData.py b/src/DIRAC/Core/Utilities/Graphs/GraphData.py index 8c226ee7888..4abc4b37b61 100644 --- a/src/DIRAC/Core/Utilities/Graphs/GraphData.py +++ b/src/DIRAC/Core/Utilities/Graphs/GraphData.py @@ -194,7 +194,9 @@ def makeNumKeys(self): self.all_num_keys.append(next) next += 1 elif self.key_type == "time": - self.all_num_keys = [date2num(datetime.datetime.fromtimestamp(to_timestamp(key))) for key in self.all_keys] + self.all_num_keys = [ + date2num(datetime.datetime.utcfromtimestamp(to_timestamp(key))) for key in self.all_keys + ] elif self.key_type == "numeric": self.all_num_keys = [float(key) for key in self.all_keys] diff --git a/src/DIRAC/Core/Utilities/Graphs/GraphUtilities.py b/src/DIRAC/Core/Utilities/Graphs/GraphUtilities.py index b8a43fdf79a..412299a034d 100644 --- a/src/DIRAC/Core/Utilities/Graphs/GraphUtilities.py +++ b/src/DIRAC/Core/Utilities/Graphs/GraphUtilities.py @@ -70,7 +70,7 @@ def convert_to_datetime(dstring): else: results = eval(str(dstring), {"__builtins__": None, "time": time, "math": math}, {}) if isinstance(results, (int, float)): - results = datetime.datetime.fromtimestamp(int(results)) + results = datetime.datetime.utcfromtimestamp(int(results)) elif isinstance(results, datetime.datetime): pass else: @@ -81,7 +81,7 @@ def convert_to_datetime(dstring): try: t = time.strptime(dstring, dateformat) timestamp = calendar.timegm(t) # -time.timezone - results = datetime.datetime.fromtimestamp(timestamp) + results = datetime.datetime.utcfromtimestamp(timestamp) break except Exception: pass @@ -90,7 +90,7 @@ def convert_to_datetime(dstring): dstring = dstring.split(".", 1)[0] t = time.strptime(dstring, dateformat) timestamp = time.mktime(t) # -time.timezone - results = datetime.datetime.fromtimestamp(timestamp) + results = datetime.datetime.utcfromtimestamp(timestamp) except Exception: raise ValueError( "Unable to create time from string!\nExpecting " @@ -108,8 +108,8 @@ def to_timestamp(val): pass val = convert_to_datetime(val) - # return calendar.timegm( val.timetuple() ) - return time.mktime(val.timetuple()) + return calendar.timegm(val.timetuple()) + # return time.mktime(val.timetuple()) # If the graph has more than `hour_switch` minutes, we print diff --git a/src/DIRAC/Core/Utilities/Graphs/LineGraph.py b/src/DIRAC/Core/Utilities/Graphs/LineGraph.py index 35a5e06987b..c8868e0f843 100644 --- a/src/DIRAC/Core/Utilities/Graphs/LineGraph.py +++ b/src/DIRAC/Core/Utilities/Graphs/LineGraph.py @@ -49,8 +49,8 @@ def draw(self): start_plot = 0 end_plot = 0 if "starttime" in self.prefs and "endtime" in self.prefs: - start_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["starttime"]))) - end_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["endtime"]))) + start_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["starttime"]))) + end_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["endtime"]))) self.polygons = [] seq_b = [(self.gdata.max_num_key, 0.0), (self.gdata.min_num_key, 0.0)] diff --git a/src/DIRAC/Core/Utilities/Graphs/QualityMapGraph.py b/src/DIRAC/Core/Utilities/Graphs/QualityMapGraph.py index 36d254d873a..b2fa6fde4cc 100644 --- a/src/DIRAC/Core/Utilities/Graphs/QualityMapGraph.py +++ b/src/DIRAC/Core/Utilities/Graphs/QualityMapGraph.py @@ -113,8 +113,8 @@ def draw(self): start_plot = 0 end_plot = 0 if "starttime" in self.prefs and "endtime" in self.prefs: - start_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["starttime"]))) - end_plot = date2num(datetime.datetime.fromtimestamp(to_timestamp(self.prefs["endtime"]))) + start_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["starttime"]))) + end_plot = date2num(datetime.datetime.utcfromtimestamp(to_timestamp(self.prefs["endtime"]))) labels = self.gdata.getLabels() nKeys = self.gdata.getNumberOfKeys()