def write_to_pi_file(*args, **kwargs): """Write the given timeseries in PI XML format. Parameters: *kwargs['filename']* name of PI XML file to create and write to *kwargs['timeseries']* single time series, or a dict of time series, where each time series has with a method 'events' to generate all date, value pairs """ multiple_series_stub = kwargs['timeseries'] if isinstance(multiple_series_stub, dict): multiple_series = [] for parameter_id, series_stub in multiple_series_stub.iteritems(): my_kwargs = deepcopy(kwargs) my_kwargs["parameter_id"] = parameter_id series = TimeSeries(*args, **my_kwargs) series.sorted_event_items = lambda s=series_stub: list(s.events()) multiple_series.append(series) multiple_series.sort(key=lambda series: series.parameter_id) else: series = TimeSeries(*args, **kwargs) series.sorted_event_items = lambda: list(multiple_series_stub.events()) multiple_series = [series] TimeSeries.write_to_pi_file(kwargs['filename'], multiple_series)
def write_to_pi_file(*args, **kwargs): """Write the given timeseries in PI XML format. Parameters: *kwargs['filename']* name of PI XML file to create and write to *kwargs['timeseries']* single time series, or a dict of time series, where each time series has with a method 'events' to generate all date, value pairs """ multiple_series_stub = kwargs['timeseries'] if isinstance(multiple_series_stub, dict): multiple_series = [] for parameter_id, series_stub in multiple_series_stub.iteritems(): my_kwargs = deepcopy(kwargs) my_kwargs["parameter_id"] = parameter_id series = TimeSeries(*args, **my_kwargs) series.sorted_event_items = lambda s=series_stub: list(s.events()) multiple_series.append(series) multiple_series.sort(key=lambda series: series.parameter_id) else: series = TimeSeries(*args, **kwargs) series.sorted_event_items = lambda: list(multiple_series_stub.events()) multiple_series = [series] TimeSeries.write_to_pi_file(kwargs['filename'], multiple_series)
def test024(self): 'TimeSeries.write_to_pi_file writes dict to stream with 12 offset' stream = mock.Stream() obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml") TimeSeries.write_to_pi_file(stream, obj, offset=12) target = file(self.testdata + "targetOutput12.xml").read() current = ''.join(stream.content) self.assertEquals(target.strip(), current.strip())
def test024(self): 'TimeSeries.write_to_pi_file writes dict to stream with 12 offset' stream = mock.Stream() obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml") TimeSeries.write_to_pi_file(stream, obj, offset=12) target = file(self.testdata + "targetOutput12.xml").read() current = ''.join(stream.content) self.assertEquals(target.strip(), current.strip())
def test000(self): 'TimeSeries.write_to_pi_file writes list to new file' obj = TimeSeries.as_list(self.testdata + "read.PI.timezone.2.xml") TimeSeries.write_to_pi_file(self.testdata + "current.xml", obj, offset=2) target = file(self.testdata + "targetOutput.xml").read() current = file(self.testdata + "current.xml").read() self.assertEquals(target.strip(), current.strip())
def test030(self): 'TimeSeries.write_to_pi_file appends children to stream' stream = mock.Stream() obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml") TimeSeries.write_to_pi_file(stream, obj, offset=0, append=True) target_lines = file(self.testdata + "targetOutput00.xml").readlines()[3:-1] target = ''.join(i.strip() for i in target_lines) current = ''.join(i.strip() for i in ''.join(stream.content).split('\n')) self.assertEquals(target, current)
def test000(self): 'TimeSeries.write_to_pi_file writes list to new file' obj = TimeSeries.as_list(self.testdata + "read.PI.timezone.2.xml") TimeSeries.write_to_pi_file(self.testdata + "current.xml", obj, offset=2) target = file(self.testdata + "targetOutput.xml").read() current = file(self.testdata + "current.xml").read() self.assertEquals(target.strip(), current.strip())
def test030(self): 'TimeSeries.write_to_pi_file appends children to stream' stream = mock.Stream() obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml") TimeSeries.write_to_pi_file(stream, obj, offset=0, append=True) target_lines = file(self.testdata + "targetOutput00.xml").readlines()[3:-1] target = ''.join(i.strip() for i in target_lines) current = ''.join(i.strip() for i in ''.join(stream.content).split('\n')) self.assertEquals(target, current)