diff --git a/src/pyaro_readers/actrisebas/ActrisEbasReader.py b/src/pyaro_readers/actrisebas/ActrisEbasReader.py index bfd69bb..d4efd2c 100644 --- a/src/pyaro_readers/actrisebas/ActrisEbasReader.py +++ b/src/pyaro_readers/actrisebas/ActrisEbasReader.py @@ -222,6 +222,9 @@ def read( # for actris vocabulary key and value of self.actris_vars_to_read are the same # for pyaerocom vocabulary they are not (key is pyaerocom variable name there)! for _var in self.actris_vars_to_read: + if _var in self._data: + logger.info(f"var {_var} already read") + continue for actris_variable in self.actris_vars_to_read[_var]: # actris_variable = self.actris_vars_to_read[_var][0] @@ -453,12 +456,15 @@ def extract_urls( return urls_to_dl def _unfiltered_data(self, varname) -> Data: + self.read() return self._data[varname] def _unfiltered_stations(self) -> dict[str, Station]: + self.read() return self._stations def _unfiltered_variables(self) -> list[str]: + self.read() return list(self._data.keys()) def close(self): @@ -492,5 +498,3 @@ def description(self): def url(self): return "https://github.com/metno/pyaro-readers" - def read(self): - return self.reader_class().read() diff --git a/tests/test_ActrisEbasReader.py b/tests/test_ActrisEbasReader.py index 4ee3760..7e27c8a 100644 --- a/tests/test_ActrisEbasReader.py +++ b/tests/test_ActrisEbasReader.py @@ -54,7 +54,6 @@ def test_api_reading_small_data_set(self): with engine.open( filters=self.station_filter, vars_to_read=self.vars_to_read ) as ts: - ts.read() self.assertGreaterEqual(len(ts.variables()), 1) self.assertGreaterEqual(len(ts.stations()), 2) self.assertGreaterEqual(len(ts._data[ts.variables()[0]]), 1000) @@ -68,12 +67,10 @@ def test_api_reading_pyaerocom_naming(self): for _var in self.pyaerocom_vars_to_read: engine = pyaro.list_timeseries_engines()[self.engine] with engine.open(filters=self.station_filter, vars_to_read=[_var]) as ts: - ts.read() self.assertGreaterEqual(len(ts.variables()), 1) self.assertGreaterEqual(len(ts.stations()), 2) self.assertGreaterEqual(len(ts._data[ts.variables()[0]]), 1000) self.assertGreaterEqual(len(ts.data(ts.variables()[0])), 1000) - self.assertGreaterEqual(len(ts.variables()), 1) self.assertIn("revision", ts.metadata()) def test_wrappers(self): @@ -82,7 +79,6 @@ def test_wrappers(self): ebas_var_name = "ozone mass concentration" with VariableNameChangingReader(engine.open(filters=self.station_filter, vars_to_read=[ebas_var_name]), reader_to_new={ebas_var_name: new_var_name}) as ts: - ts.read() self.assertEqual(ts.data(new_var_name).variable, new_var_name) self.assertGreaterEqual(len(ts.variables()), 1) self.assertGreaterEqual(len(ts.stations()), 2)