88import joblib # type: ignore
99
1010from ..application .ports import caching
11- from ..application .ports .filesystem import AbstractFileSystem
11+ from ..application .ports .filesystem import AbstractFileSystem , FileSystem2
1212from ..application .ports .graph import ImportGraph
1313from ..application .ports .importscanner import AbstractImportScanner
1414from ..application .ports .modulefinder import AbstractModuleFinder , FoundPackage , ModuleFile
@@ -61,6 +61,7 @@ def build_graph(
6161 """
6262
6363 file_system : AbstractFileSystem = settings .FILE_SYSTEM
64+ file_system_2 : FileSystem2 | None = settings .FILE_SYSTEM_2
6465
6566 found_packages = _find_packages (
6667 file_system = file_system ,
@@ -70,6 +71,7 @@ def build_graph(
7071 imports_by_module = _scan_packages (
7172 found_packages = found_packages ,
7273 file_system = file_system ,
74+ file_system_2 = file_system_2 ,
7375 include_external_packages = include_external_packages ,
7476 exclude_type_checking_imports = exclude_type_checking_imports ,
7577 cache_dir = cache_dir ,
@@ -115,6 +117,7 @@ def _validate_package_names_are_strings(
115117def _scan_packages (
116118 found_packages : Set [FoundPackage ],
117119 file_system : AbstractFileSystem ,
120+ file_system_2 : FileSystem2 | None ,
118121 include_external_packages : bool ,
119122 exclude_type_checking_imports : bool ,
120123 cache_dir : Union [str , Type [NotSupplied ], None ],
@@ -146,6 +149,7 @@ def _scan_packages(
146149 _scan_imports (
147150 remaining_module_files_to_scan ,
148151 file_system = file_system ,
152+ file_system_2 = file_system_2 ,
149153 found_packages = found_packages ,
150154 include_external_packages = include_external_packages ,
151155 exclude_type_checking_imports = exclude_type_checking_imports ,
@@ -214,14 +218,20 @@ def _scan_imports(
214218 module_files : Collection [ModuleFile ],
215219 * ,
216220 file_system : AbstractFileSystem ,
221+ file_system_2 : FileSystem2 | None ,
217222 found_packages : Set [FoundPackage ],
218223 include_external_packages : bool ,
219224 exclude_type_checking_imports : bool ,
220225) -> Dict [ModuleFile , Set [DirectImport ]]:
221- chunks = _create_chunks (module_files )
226+ if file_system_2 :
227+ # Multiprocessing is not supported - just do one chunk.
228+ chunks = (module_files ,)
229+ else :
230+ chunks = _create_chunks (module_files )
222231 return _scan_chunks (
223232 chunks ,
224233 file_system ,
234+ file_system_2 ,
225235 found_packages ,
226236 include_external_packages ,
227237 exclude_type_checking_imports ,
@@ -259,12 +269,14 @@ def _decide_number_of_processes(number_of_module_files: int) -> int:
259269def _scan_chunks (
260270 chunks : Collection [Collection [ModuleFile ]],
261271 file_system : AbstractFileSystem ,
272+ file_system_2 : FileSystem2 | None ,
262273 found_packages : Set [FoundPackage ],
263274 include_external_packages : bool ,
264275 exclude_type_checking_imports : bool ,
265276) -> Dict [ModuleFile , Set [DirectImport ]]:
266277 import_scanner : AbstractImportScanner = settings .IMPORT_SCANNER_CLASS (
267278 file_system = file_system ,
279+ file_system_2 = file_system_2 ,
268280 found_packages = found_packages ,
269281 include_external_packages = include_external_packages ,
270282 )
0 commit comments