88from databricks .labs .ucx .assessment .aws import run_command , AWSResources
99from databricks .labs .ucx .aws .access import AWSResourcePermissions
1010from databricks .labs .ucx .aws .credentials import IamRoleMigration , IamRoleCreation
11+ from databricks .labs .ucx .aws .locations import AWSExternalLocationsMigration
1112from databricks .labs .ucx .azure .access import AzureResourcePermissions
1213from databricks .labs .ucx .azure .credentials import StorageCredentialManager , ServicePrincipalMigration
1314from databricks .labs .ucx .azure .locations import ExternalLocationsMigration
14- from databricks .labs .ucx .aws .locations import AWSExternalLocationsMigration
1515from databricks .labs .ucx .azure .resources import AzureAPIClient , AzureResources
1616from databricks .labs .ucx .contexts .application import CliContext
17- from databricks .labs .ucx .source_code .files import LocalFileMigrator
17+ from databricks .labs .ucx .source_code .files import LocalFileMigrator , LocalCodeLinter
18+ from databricks .labs .ucx .source_code .notebooks .loaders import NotebookLoader
1819from databricks .labs .ucx .workspace_access .clusters import ClusterAccess
1920
2021
@@ -31,10 +32,6 @@ def workspace_client(self) -> WorkspaceClient:
3132 def sql_backend (self ) -> SqlBackend :
3233 return StatementExecutionBackend (self .workspace_client , self .config .warehouse_id )
3334
34- @cached_property
35- def local_file_migrator (self ):
36- return LocalFileMigrator (self .languages )
37-
3835 @cached_property
3936 def cluster_access (self ):
4037 return ClusterAccess (self .installation , self .workspace_client , self .prompts )
@@ -169,3 +166,22 @@ def iam_role_creation(self):
169166 self .workspace_client ,
170167 self .aws_resource_permissions ,
171168 )
169+
170+ @cached_property
171+ def notebook_loader (self ) -> NotebookLoader :
172+ return NotebookLoader ()
173+
174+
175+ class LocalCheckoutContext (WorkspaceContext ):
176+ """Local context extends Workspace context to provide extra properties
177+ for running local operations."""
178+
179+ @cached_property
180+ def local_file_migrator (self ):
181+ return LocalFileMigrator (self .languages )
182+
183+ @cached_property
184+ def local_code_linter (self ):
185+ return LocalCodeLinter (
186+ self .file_loader , self .folder_loader , self .path_lookup , self .dependency_resolver , lambda : self .languages
187+ )
0 commit comments