PyRemotePathMapper (@Nullable Project project, @Nullable PyRemotePathMapper pathMapper, @NotNull RemoteSdkAdditionalData<?> data) { @NotNull PyRemotePathMapper newPathMapper = PyRemotePathMapper.cloneMapper(pathMapper); addHelpersMapping(data, newPathMapper); newPathMapper.addAll(data.getPathMappings().getPathMappings(), PyRemotePathMapper.PyPathMappingType.SYS_PATH); if (project != null) { final RemoteMappingsManager.Mappings mappings = RemoteMappingsManager.getInstance(project).getForServer(PYTHON_PREFIX, data.getSdkId()); if (mappings != null) { newPathMapper.addAll(mappings.getSettings(), PyRemotePathMapper.PyPathMappingType.USER_DEFINED); } for (PathMappingProvider mappingProvider : PathMappingProvider.getSuitableMappingProviders(data)) { PathMappingSettings settings = ProgressManagerExtKt.runUnderProgress(ProgressManager.getInstance(), PyBundle.message("remote.interpreter.accessing.remote.interpreter.progress.title"), new Function0<>() { @Override public PathMappingSettings invoke() { //Path mapping may require external process with WSL return mappingProvider.getPathMappingSettings(project, data); } }); newPathMapper.addAll(settings.getPathMappings(), PyRemotePathMapper.PyPathMappingType.REPLICATED_FOLDER); } } return newPathMapper; }