1212 fetchall ,
1313 fetchone ,
1414)
15- from sqlmesh .core .environment import Environment , EnvironmentStatements
15+ from sqlmesh .core .environment import Environment , EnvironmentStatements , EnvironmentCleanupTask
1616from sqlmesh .utils .migration import index_text_type , blob_text_type
1717from sqlmesh .utils .date import now_timestamp , time_like_to_str
1818from sqlmesh .utils .errors import SQLMeshError
@@ -162,7 +162,7 @@ def finalize(self, environment: Environment) -> None:
162162 where = environment_filter ,
163163 )
164164
165- def get_expired_environments (self ) -> t . Tuple [ t . List [ Environment ], exp . LTE ] :
165+ def get_expired_environments (self ) -> EnvironmentCleanupTask :
166166 """Returns the expired environments.
167167
168168 Expired environments are environments that have exceeded their time-to-live value.
@@ -182,25 +182,27 @@ def get_expired_environments(self) -> t.Tuple[t.List[Environment], exp.LTE]:
182182 lock_for_update = True ,
183183 ),
184184 )
185- environments = [self ._environment_from_row (r ) for r in rows ]
185+ expired_environments = [self ._environment_from_row (r ) for r in rows ]
186186
187- return environments , filter_expr
187+ return EnvironmentCleanupTask (
188+ expired_environments = expired_environments , filter_expr = filter_expr
189+ )
188190
189- def delete_environments (self , environments : t . List [ Environment ], filter_expr : exp . LTE ) -> None :
191+ def delete_environments (self , cleanup_targets : EnvironmentCleanupTask ) -> None :
190192 """Deletes expired environments.
191193
192194 Returns:
193195 A list of deleted environments.
194196 """
195197 self .engine_adapter .delete_from (
196198 self .environments_table ,
197- where = filter_expr ,
199+ where = cleanup_targets . filter_expr ,
198200 )
199201
200202 # Delete the expired environments' corresponding environment statements
201203 if expired_environments := [
202204 exp .EQ (this = exp .column ("environment_name" ), expression = exp .Literal .string (env .name ))
203- for env in environments
205+ for env in cleanup_targets . expired_environments
204206 ]:
205207 self .engine_adapter .delete_from (
206208 self .environment_statements_table ,
@@ -213,9 +215,9 @@ def delete_expired_environments(self) -> t.List[Environment]:
213215 Returns:
214216 A list of deleted environments.
215217 """
216- expired_environments , filter_expr = self .get_expired_environments ()
217- self .delete_environments (expired_environments , filter_expr )
218- return expired_environments
218+ cleanup_targets = self .get_expired_environments ()
219+ self .delete_environments (cleanup_targets )
220+ return cleanup_targets . expired_environments
219221
220222 def get_environments (self ) -> t .List [Environment ]:
221223 """Fetches all environments.
0 commit comments