From 100bae6298d2fc60b50382e1de2b50ab844b4e09 Mon Sep 17 00:00:00 2001 From: Jeremy Fee <jmfee@usgs.gov> Date: Mon, 16 Nov 2015 15:58:48 -0700 Subject: [PATCH] Send obspy errors to stderr (instead of stdout) --- geomagio/edge/EdgeFactory.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/geomagio/edge/EdgeFactory.py b/geomagio/edge/EdgeFactory.py index 115b439d7..89536cbd2 100644 --- a/geomagio/edge/EdgeFactory.py +++ b/geomagio/edge/EdgeFactory.py @@ -9,6 +9,8 @@ to take advantage of it's newer realtime abilities. Edge is the USGS earthquake hazard centers replacement for earthworm. """ +import sys +import StringIO import numpy import numpy.ma import obspy.core @@ -127,12 +129,25 @@ class EdgeFactory(TimeseriesFactory): raise TimeseriesFactoryException( 'Starttime before endtime "%s" "%s"' % (starttime, endtime)) - timeseries = obspy.core.Stream() - for channel in channels: - data = self._get_timeseries(starttime, endtime, observatory, - channel, type, interval) - timeseries += data - + # need this until https://github.com/obspy/obspy/pull/1179 + # replace stdout + original_stdout = sys.stdout + temp_stdout = StringIO.StringIO() + try: + sys.stdout = temp_stdout + # get the timeseries + timeseries = obspy.core.Stream() + for channel in channels: + data = self._get_timeseries(starttime, endtime, observatory, + channel, type, interval) + timeseries += data + # restore stdout + finally: + output = temp_stdout.getvalue() + if output != '': + sys.stderr.write(output) + temp_stdout.close() + sys.stdout = original_stdout self._post_process(timeseries, starttime, endtime, channels) return timeseries -- GitLab