1919from collections .abc import Container , Hashable , Iterable
2020from ftplib import FTP
2121from pathlib import Path
22- from typing import TYPE_CHECKING , Any , ClassVar
22+ from typing import TYPE_CHECKING , Any , ClassVar , override
2323
2424import dask .array as da
2525import dask .dataframe as dd
@@ -226,6 +226,7 @@ def drop_invalid_error_data(self, dataset: xr.Dataset) -> xr.Dataset:
226226 dataset = self .__mask_invalid_error_var (dataset , str (var ))
227227 return dataset .dropna (self .dimension_name , subset = error_vars_present )
228228
229+ @override
229230 def apply_preprocessor (self , output_directory : Path ) -> None :
230231 # Filters and exports data to parquet
231232 output_directory .mkdir (parents = True , exist_ok = True )
@@ -279,6 +280,7 @@ def __init__(self, file_pattern: str | None = None) -> None:
279280 else :
280281 self .file_pattern = file_pattern
281282
283+ @override
282284 def _download_file (self , date : Date , base_output_dir : Path ) -> None :
283285 output_dir : Path = (base_output_dir / f"{ date .year :02d} " / f"{ date .month :02d} " ).resolve ()
284286 output_dir .mkdir (parents = True , exist_ok = True )
@@ -293,6 +295,7 @@ def _download_file(self, date: Date, base_output_dir: Path) -> None:
293295 with target_file_path .open (mode = "wb" ) as f_out :
294296 ftp .retrbinary (f"RETR { file } " , f_out .write )
295297
298+ @override
296299 def download_files (
297300 self ,
298301 years : list [int ],
@@ -327,6 +330,7 @@ class AcarsAmdarRepository(AmdarDataRepository):
327330 def __init__ (self , path_to_files : str | list ) -> None :
328331 super ().__init__ (path_to_files , True )
329332
333+ @override
330334 def load (self ) -> "dd.DataFrame" :
331335 target_columns : list [str ] | None = (
332336 list (AcarsAmdarRepository ._MINIMAL_DATA_VARS ) if self ._use_min_turbulence_vars else None
@@ -342,20 +346,23 @@ def load(self) -> "dd.DataFrame":
342346
343347 return amdar_data
344348
349+ @override
345350 def _call_compute_closest_pressure_level (
346351 self ,
347352 data_frame : "dd.DataFrame" ,
348353 pressure_levels : "np.ndarray[Any, np.dtype[np.float64]]" ,
349354 ) -> "dd.Series" :
350355 return self ._compute_closest_pressure_level (data_frame , pressure_levels , "altitude" )
351356
357+ @override
352358 def _instantiate_amdar_turbulence_data_class (
353359 self ,
354360 data_frame : "dd.DataFrame" ,
355361 grid : "dgpd.GeoDataFrame" ,
356362 ) -> "AmdarTurbulenceData" :
357363 return AcarsAmdarTurbulenceData (data_frame , grid )
358364
365+ @override
359366 def _time_column_rename_mapping (self ) -> dict [str , str ]:
360367 return {"timeObs" : "datetime" }
361368
@@ -364,9 +371,11 @@ class AcarsAmdarTurbulenceData(AmdarTurbulenceData):
364371 def __init__ (self , data_frame : "dd.DataFrame" , grid : "dgpd.GeoDataFrame" ) -> None :
365372 super ().__init__ (data_frame , grid )
366373
374+ @override
367375 def _minimum_altitude_qc (self , data_frame : "dd.DataFrame" ) -> "dd.DataFrame" :
368376 return data_frame [data_frame ["altitude" ] >= self .MINIMUM_ALTITUDE ]
369377
378+ @override
370379 def _drop_manoeuvre_data_qc (self , data_frame : "dd.DataFrame" ) -> "dd.DataFrame" :
371380 # Attributes:
372381 # long_name: Aircraft roll angle flag
0 commit comments