1616from meteostat .core .loader import processing_handler , load_handler
1717from meteostat .utilities .validations import validate_series
1818from meteostat .utilities .aggregations import degree_mean , weighted_average
19- from meteostat .interface .base import Base
19+ from meteostat .interface .timeseries import Timeseries
2020from meteostat .interface .point import Point
2121
2222
23- class Daily (Base ):
23+ class Daily (Timeseries ):
2424
2525 """
2626 Retrieve daily weather observations for one or multiple weather stations or
@@ -30,21 +30,6 @@ class Daily(Base):
3030 # The cache subdirectory
3131 cache_subdir : str = 'daily'
3232
33- # The list of weather Stations
34- _stations : pd .Index = None
35-
36- # The start date
37- _start : datetime = None
38-
39- # The end date
40- _end : datetime = None
41-
42- # Include model data?
43- _model : bool = True
44-
45- # The data frame
46- _data : pd .DataFrame = pd .DataFrame ()
47-
4833 # Default frequency
4934 _freq : str = '1D'
5035
@@ -143,14 +128,11 @@ def _load(
143128 # Get time index
144129 time = df .index .get_level_values ('time' )
145130
146- # Filter & append
147- self ._data = self ._data .append (
148- df .loc [(time >= self ._start ) & (time <= self ._end )])
131+ # Filter & return
132+ return df .loc [(time >= self ._start ) & (time <= self ._end )]
149133
150- else :
151-
152- # Append
153- self ._data = self ._data .append (df )
134+ # Return
135+ return df
154136
155137 def _get_data (self ) -> None :
156138 """
@@ -168,12 +150,11 @@ def _get_data(self) -> None:
168150 ))
169151
170152 # Data Processing
171- processing_handler (datasets , self ._load , self .max_threads )
153+ return processing_handler (
154+ datasets , self ._load , self .cores , self .threads )
172155
173- else :
174-
175- # Empty DataFrame
176- self ._data = pd .DataFrame (columns = [* self ._types ])
156+ # Empty DataFrame
157+ return pd .DataFrame (columns = [* self ._types ])
177158
178159 def _resolve_point (
179160 self ,
@@ -263,7 +244,7 @@ def __init__(
263244 self ._model = model
264245
265246 # Get data for all weather stations
266- self ._get_data ()
247+ self ._data = self . _get_data ()
267248
268249 # Interpolate data
269250 if isinstance (loc , Point ):
@@ -279,14 +260,3 @@ def expected_rows(self) -> int:
279260 """
280261
281262 return (self ._end - self ._start ).days + 1
282-
283- # Import methods
284- from meteostat .series .normalize import normalize
285- from meteostat .series .interpolate import interpolate
286- from meteostat .series .aggregate import aggregate
287- from meteostat .series .convert import convert
288- from meteostat .series .coverage import coverage
289- from meteostat .series .count import count
290- from meteostat .series .fetch import fetch
291- from meteostat .series .stations import stations
292- from meteostat .core .cache import clear_cache
0 commit comments