44
55import os
66import sqlite3
7- from dataclasses import dataclass , field , replace
7+ from dataclasses import dataclass , replace
88from typing import Any
99
1010from models import Bubble
@@ -37,7 +37,7 @@ class WorkspaceContext:
3737 workspace_path_to_id : dict [str , str ]
3838 project_layouts_map : dict [str , list [str ]]
3939 bubble_map : dict [str , Bubble ]
40- invalid_workspace_aliases : dict [str , str ] = field ( default_factory = dict )
40+ invalid_workspace_aliases : dict [str , str ] | None = None
4141
4242
4343def _entries (
@@ -171,6 +171,8 @@ def resolve_invalid_workspace_aliases_cached(
171171 Returns:
172172 ``{invalid_id: replacement_id}``, or ``{}`` when every workspace is valid.
173173 """
174+ if ctx .invalid_workspace_aliases is not None :
175+ return ctx .invalid_workspace_aliases
174176 if not ctx .invalid_workspace_ids :
175177 return {}
176178
@@ -227,6 +229,8 @@ def with_invalid_workspace_aliases(
227229 project_layouts_map : dict [str , list [str ]] | None = None ,
228230) -> WorkspaceContext :
229231 """Return *ctx* with ``invalid_workspace_aliases`` populated from cache."""
232+ if ctx .invalid_workspace_aliases is not None :
233+ return ctx
230234 aliases = resolve_invalid_workspace_aliases_cached (
231235 ctx ,
232236 global_db ,
@@ -235,6 +239,4 @@ def with_invalid_workspace_aliases(
235239 nocache = nocache ,
236240 project_layouts_map = project_layouts_map ,
237241 )
238- if aliases is ctx .invalid_workspace_aliases :
239- return ctx
240242 return replace (ctx , invalid_workspace_aliases = aliases )
0 commit comments