Skip to content

Commit 96913cc

Browse files
authored
Use cached property for table migration index on local checkout context (#3711)
## Changes Use cached property for table migration index on local checkout context to avoid multiple (re)crawling in case of an empty migration index ### Linked issues Relates to #3687 ### Functionality - [x] modified existing command: `databricks labs ucx lint-local-code` ### Tests - [x] manually tested
1 parent eb6009a commit 96913cc

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/databricks/labs/ucx/contexts/workspace_cli.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
from databricks.labs.ucx.hive_metastore.federation import HiveMetastoreFederation, HiveMetastoreFederationEnabler
2222
from databricks.labs.ucx.hive_metastore.table_migration_status import TableMigrationIndex
2323
from databricks.labs.ucx.progress.install import ProgressTrackingInstallation
24-
from databricks.labs.ucx.source_code.base import CurrentSessionState
2524
from databricks.labs.ucx.source_code.linters.context import LinterContext
2625
from databricks.labs.ucx.source_code.linters.folders import LocalCodeLinter
2726
from databricks.labs.ucx.source_code.notebooks.loaders import NotebookLoader
@@ -213,24 +212,22 @@ class LocalCheckoutContext(WorkspaceContext):
213212
"""Local context extends Workspace context to provide extra properties
214213
for running local operations."""
215214

216-
def linter_context_factory(self, session_state: CurrentSessionState | None = None):
215+
@cached_property
216+
def _migration_index(self) -> TableMigrationIndex:
217217
try:
218218
index = self.tables_migrator.index()
219219
except NotFound:
220220
logger.warning("Metastore does not seem to exist yet. Skipping loading of migration status.")
221221
index = TableMigrationIndex([])
222-
if session_state is None:
223-
session_state = CurrentSessionState()
224-
return LinterContext(index, session_state)
222+
return index
225223

226224
@cached_property
227225
def local_code_linter(self) -> LocalCodeLinter:
228-
session_state = CurrentSessionState()
229226
return LocalCodeLinter(
230227
self.notebook_loader,
231228
self.file_loader,
232229
self.folder_loader,
233230
self.path_lookup,
234231
self.dependency_resolver,
235-
lambda: self.linter_context_factory(session_state),
232+
lambda: LinterContext(self._migration_index),
236233
)

0 commit comments

Comments
 (0)