def loadRequiredPackages(required, loadingProgressBar): try: # protect the required functions in a try statement, we want to load these things and they should be there but we can't force it to exist in older schemas, so this is in a try. required = cPickle.loads(required) if len(required) > 0: if 'CRANrepos' in redREnviron.settings.keys(): repo = redREnviron.settings['CRANrepos'] else: repo = None loadingProgressBar.setLabelText(_('Loading required R Packages. If not found they will be downloaded.\n This may take a while...')) RSession.require_librarys(required['R'], repository=repo) installedPackages = redRPackageManager.getInstalledPackages() downloadList = {} print type(required['RedR']) #print required['RedR'] for name,package in required['RedR'].items(): #print package if (package['Name'] not in installedPackages.keys()) or (float(package['Version']['Number']) > float(installedPackages[package['Name']]['Version']['Number'])): print 'my package number %s' % str(float(installedPackages[package['Name']]['Version']['Number'])), 'their package number %s' % str(float(package['Version']['Number'])) downloadList[package['Name']] = {'Version':unicode(package['Version']['Number']), 'installed':False} if len(downloadList.keys()) > 0: pm = redRPackageManager.packageManager(canvasDlg) pm.show() pm.askToInstall(downloadList, _('The following packages need to be installed before the session can be loaded.')) except Exception as inst: redRLog.log(redRLog.REDRCORE, redRLog.ERROR, _('redRSaveLoad loadRequiredPackages; error loading package %s') % inst)
def require_librarys(self, librarys, repository=None): qApp.setOverrideCursor(Qt.WaitCursor) if not repository and 'CRANrepos' in redREnviron.settings.keys(): repository = redREnviron.settings['CRANrepos'] #print _('Loading required librarys') success = RSession.require_librarys(librarys=librarys, repository=repository) self.requiredRLibraries.extend(librarys) qApp.restoreOverrideCursor() return success
def loadRequiredPackages(required, loadingProgressBar): try: # protect the required functions in a try statement, we want to load these things and they should be there but we can't force it to exist in older schemas, so this is in a try. required = cPickle.loads(required) if len(required) > 0: if 'CRANrepos' in redREnviron.settings.keys(): repo = redREnviron.settings['CRANrepos'] else: repo = None loadingProgressBar.setLabelText( _('Loading required R Packages. If not found they will be downloaded.\n This may take a while...' )) RSession.require_librarys(required['R'], repository=repo) installedPackages = redRPackageManager.packageManager.getInstalledPackages( ) downloadList = {} print type(required['RedR']) #print required['RedR'] for name, package in required['RedR'].items(): #print package if not (package['Name'] in installedPackages.keys() and package['Version']['Number'] == installedPackages[ package['Name']]['Version']['Number']): downloadList[package['Name']] = { 'Version': unicode(package['Version']['Number']), 'installed': False } if len(downloadList.keys()) > 0: pm = redRPackageManager.packageManagerDialog() pm.show() pm.askToInstall( downloadList, _('The following packages need to be installed before the session can be loaded.' )) except Exception as inst: redRLog.log( redRLog.REDRCORE, redRLog.ERROR, _('redRSaveLoad loadRequiredPackages; error loading package %s') % inst)
def require_librarys(self, librarys, repository = None, load = True): """Load R libraries using the :mod:`RSession` require_librarys function. Takes a list of strings as R libraries to load. These should be valid R packages or an error will occur. repository is an optional argument to specity a custom repository if the library is not in a standard location. """ qApp.setOverrideCursor(Qt.WaitCursor) if not repository and 'CRANrepos' in redREnviron.settings.keys(): repository = redREnviron.settings['CRANrepos'] #print _('Loading required librarys') try: success = RSession.require_librarys(librarys = librarys, repository = repository, load = load) self.requiredRLibraries.extend(librarys) finally: qApp.restoreOverrideCursor() return success
def require_librarys(self, libraries): return RSession.require_librarys(libraries)
def require_librarys(self, libraries): return RSession.require_librarys(libraries)
def resolveRDependencies(self, packageList): import RSession packageList = [x.strip() for x in packageList] RSession.require_librarys(packageList)