diff --git a/CHANGES.rst b/CHANGES.rst index eac5f03..eab3765 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,6 +2,11 @@ Changelog ========= +Version 0.3.15 +============== + +- Allow reading of data in append mode. + Version 0.3.14 ============== diff --git a/pygeobase/io_base.py b/pygeobase/io_base.py index ff6bf26..91175ca 100644 --- a/pygeobase/io_base.py +++ b/pygeobase/io_base.py @@ -442,7 +442,7 @@ def _read_gp(self, gp, **kwargs): data : numpy.ndarray Data set or None in case of an error. """ - if self.mode in ['w', 'a']: + if self.mode in ['w']: raise IOError("File is not open in read mode") data = None @@ -647,7 +647,7 @@ def _read_gp(self, gp, **kwargs): data : object pygeobase.object_base.TS object """ - if self.mode in ['w', 'a']: + if self.mode in ['w']: raise IOError("File is not open in read mode") data = None diff --git a/tests/test_io_base.py b/tests/test_io_base.py index cf18e07..be29695 100644 --- a/tests/test_io_base.py +++ b/tests/test_io_base.py @@ -55,10 +55,10 @@ def read_ts(self, gpi, factor=1): raise IOError("GPI does not exist") return gpi * factor - def write(self, gpi, data): + def write(self, gpi, data, **kwargs): return None - def write_ts(self, gpi, data): + def write_ts(self, gpi, data, **kwargs): return None def close(self): @@ -82,6 +82,18 @@ def test_gridded_ts_base_iter_ts(): assert gpi == gpi_should.pop(0) +def test_gridded_ts_base_read_append(): + """ + Test reading in append mode in GriddedTs. Should be allowed. + """ + grid = grids.CellGrid(np.array([1, 2, 3, 4]), np.array([1, 2, 3, 4]), + np.array([4, 4, 2, 1]), gpis=np.array([1, 2, 3, 4])) + + ds = GriddedTsBase("", grid, TestDataset, mode='a') + # during iteration the gpis are traversed based on cells for a cell grid + assert ds.read(1) == 1 + + def test_gridded_ts_base_iter_gp_IOError_None_yield(): """ Test iteration over time series in GriddedTsBase. Should yield None if IOError is raised.