PyRemoteSdkAdditionalData (@NotNull Sdk sdk, @Nullable Element element) { final String path = sdk.getHomePath(); assert path != null; final PyRemoteSdkAdditionalData data = new PyRemoteSdkAdditionalData(RemoteSdkCredentialsHolder.getInterpreterPathFromFullPath(path), false); data.load(element); if (element != null) { CredentialsManager.getInstance().loadCredentials(path, element, data); if (data.myRemoteConnectionCredentialsWrapper.getRemoteConnectionType().hasPrefix(RemoteCredentialsHolder.SSH_PREFIX)) { CredentialsManager.updateOutdatedSdk(data, null); } data.myRemoteSdkProperties.load(element); data.setSkeletonsPath(StringUtil.nullize(element.getAttributeValue(SKELETONS_PATH))); String helpersPath = StringUtil.nullize(element.getAttributeValue("PYCHARM_HELPERS_PATH")); if (helpersPath != null) { data.setHelpersPath(helpersPath); } data.setVersionString(StringUtil.nullize(element.getAttributeValue(VERSION))); data.setRunAsRootViaSudo(StringUtil.equals(element.getAttributeValue(RUN_AS_ROOT_VIA_SUDO), "true")); } return data; }