def test_library_folder(self): """ Test retrieving/setting the library folder """ self.assertIn('/profiles/default/processing/rlibs', RUtils.r_library_folder()) ProcessingConfig.setSettingValue(RUtils.R_LIBS_USER, '/usr/local') self.assertEqual(RUtils.r_library_folder(), '/usr/local') ProcessingConfig.setSettingValue(RUtils.R_LIBS_USER, None) self.assertIn('/profiles/default/processing/rlibs', RUtils.r_library_folder())
def build_script_header_commands(self, _, __, ___): """ Builds the set of script startup commands for the algorithm """ commands = list() # Just use main mirror commands.append('options("repos"="{}")'.format(RUtils.package_repo())) # Try to install packages if needed if RUtils.use_user_library(): commands.append('.libPaths(\"' + str(RUtils.r_library_folder()).replace('\\', '/') + '\")') packages = RUtils.get_required_packages(self.script) packages.extend(['rgdal', 'raster']) for p in packages: commands.append('tryCatch(find.package("' + p + '"), error=function(e) install.packages("' + p + '", dependencies=TRUE))') commands.append('library("raster")') commands.append('library("rgdal")') return commands
def load(self): """ Called when first loading provider """ ProcessingConfig.settingIcons[self.name()] = self.icon() ProcessingConfig.addSetting( Setting(self.name(), 'ACTIVATE_R', self.tr('Activate'), False)) ProcessingConfig.addSetting( Setting(self.name(), RUtils.RSCRIPTS_FOLDER, self.tr('R scripts folder'), RUtils.default_scripts_folder(), valuetype=Setting.MULTIPLE_FOLDERS)) ProcessingConfig.addSetting( Setting(self.name(), 'ACTIVATE_R', self.tr('Activate'), False)) ProcessingConfig.addSetting( Setting( self.name(), RUtils.R_USE_USER_LIB, self.tr('Use user library folder instead of system libraries'), True)) ProcessingConfig.addSetting( Setting(self.name(), RUtils.R_LIBS_USER, self.tr('User library folder'), RUtils.r_library_folder(), valuetype=Setting.FOLDER)) ProcessingConfig.addSetting( Setting(self.name(), RUtils.R_REPO, self.tr('Package repository'), "http://cran.at.r-project.org/", valuetype=Setting.STRING)) ProcessingConfig.addSetting( Setting(self.name(), RUtils.R_FOLDER, self.tr('R folder'), RUtils.r_binary_folder(), valuetype=Setting.FOLDER)) if RUtils.is_windows(): ProcessingConfig.addSetting( Setting(self.name(), RUtils.R_USE64, self.tr('Use 64 bit version'), False)) ProviderActions.registerProviderActions(self, self.actions) ProviderContextMenuActions.registerProviderContextMenuActions( self.contextMenuActions) ProcessingConfig.readSettings() self.refreshAlgorithms() return True