1212GNU General Public License for more details.
1313"""
1414
15+ from __future__ import annotations
16+
1517from typing import Dict , TypedDict , Union , TYPE_CHECKING
1618
1719import numpy as np
@@ -51,7 +53,7 @@ def __init__(self, config: GrassRasterOutputConfig) -> None:
5153 self .output_maplist = {k : [] for k in self .out_map_names .keys ()}
5254
5355 def _write_array (
54- self , array : np .ndarray , map_key : str , sim_time : Union [" datetime" , " timedelta" ]
56+ self , array : np .ndarray , map_key : str , sim_time : Union [datetime , timedelta ]
5557 ) -> None :
5658 """Write simulation data for current time step."""
5759 suffix = str (self .record_counter [map_key ]).zfill (4 )
@@ -66,7 +68,7 @@ def _write_array(
6668 self .record_counter [map_key ] += 1
6769
6870 def write_arrays (
69- self , array_dict : Dict [str , np .ndarray ], sim_time : Union [" datetime" , " timedelta" ]
71+ self , array_dict : Dict [str , np .ndarray ], sim_time : Union [datetime , timedelta ]
7072 ) -> None :
7173 for arr_key , arr in array_dict .items ():
7274 if isinstance (arr , np .ndarray ):
@@ -76,7 +78,7 @@ def _write_max_array(self, arr_max, map_key):
7678 map_max_name = f"{ self .out_map_names [map_key ]} _max"
7779 self .grass_interface .write_raster_map (arr_max , map_max_name , map_key , hmin = 0.0 )
7880
79- def finalize (self , final_data : " SimulationData" ) -> None :
81+ def finalize (self , final_data : SimulationData ) -> None :
8082 """Finalize outputs and cleanup."""
8183
8284 # Write the final raster maps
@@ -109,7 +111,7 @@ def __init__(self, config: GrassVectorOutputConfig) -> None:
109111 self .vector_drainage_maplist = []
110112
111113 def write_vector (
112- self , drainage_data : " DrainageNetworkData" , sim_time : Union [" datetime" , " timedelta" ]
114+ self , drainage_data : DrainageNetworkData | None , sim_time : Union [datetime , timedelta ]
113115 ) -> None :
114116 """Write drainage simulation data for current time step."""
115117 if self .drainage_map_name and drainage_data :
@@ -122,7 +124,7 @@ def write_vector(
122124 self .vector_drainage_maplist .append ((map_name , sim_time ))
123125 self .record_counter += 1
124126
125- def finalize (self , drainage_data : " DrainageNetworkData" ) -> None :
127+ def finalize (self , drainage_data : DrainageNetworkData | None ) -> None :
126128 """Finalize outputs and cleanup."""
127129 if self .drainage_map_name and drainage_data :
128130 self .grass_interface .register_maps_in_stds (
0 commit comments