MacOS Big Sur and R > 4 under windows
[iramuteq] / checkinstall.py
index 1152290..17d32fd 100644 (file)
@@ -23,26 +23,48 @@ def IsNew(self):
         version_user = self.pref.get('iramuteq','version_nb').split('.')
     except NoOptionError :
         return True
+    userab = False
+    globab = False
     if version_user :
         version_user[0] = int(version_user[0])
         version_user[1] = int(version_user[1])
         version_glob[0] = int(version_glob[0])
         version_glob[1] = int(version_glob[1])
+        if len(version_user) == 3 :
+            if 'a' in version_user[2] :
+                userab = 'a'
+                version_user[2] = int(version_user[2].replace('a', ''))
+            elif 'b' in version_user[2] :
+                userab = 'b'
+                version_user[2] = int(version_user[2].replace('b', ''))
+            else :
+                version_user[2] = int(version_user[2])
+        if len(version_glob) == 3 :
+            if 'a' in version_glob[2] :
+                globab = 'a'
+                version_glob[2] = int(version_glob[2].replace('a', ''))
+            elif 'b' in version_glob[2] :
+                globab = 'b'
+                version_glob[2] = int(version_glob[2].replace('b', ''))
+            else :
+                version_glob[2] = int(version_glob[2])
         if len(version_user) == len(version_glob) :
             if version_glob > version_user :
                 return True
+            elif version_glob == version_user :
+                if globab == userab :
+                    return False
+                elif globab > userab :
+                    return True
+                else :
+                    return False
             else :
                 return False
-        if len(version_glob) == 2 :
-            if version_glob[:2] >= version_user[:2] :
+        else :
+            if version_glob > version_user :
                 return True
             else :
                 return False
-        elif len(version_glob) == 3 :
-            if version_glob[:2] <= version_user[:2] :
-                return False
-            else :
-                return True
 
 def UpgradeConf(self) :
     log.info('upgrade conf')
@@ -100,15 +122,14 @@ def FindRPAthWin32():
     if progpaths != [] :
         for progpath in progpaths :
             rpath = os.path.join(progpath, "R")
-        if os.path.exists(rpath) :
-            for amj in range(2,6) :
-                for i in range(0,50):
-                    for j in range(0,50):
-                        for poss in ['', 'i386', 'x64'] :
-                            path=os.path.join(rpath,"R-3."+str(i)+"."+str(j),'bin',poss,'R.exe')
-                            print path
-                            if os.path.exists(path):
-                                BestPath=path
+            if os.path.exists(rpath) :
+                for maj in range(2,6) :
+                    for i in range(0,30):
+                        for j in range(0,20):
+                            for poss in ['', 'i386', 'x64'] :
+                                path=os.path.join(rpath,"R-%i.%i.%i" % (maj, i, j),'bin',poss,'R.exe')
+                                if os.path.exists(path):
+                                    BestPath=path
     return BestPath
 
 def FindRPathNix():
@@ -117,6 +138,8 @@ def FindRPathNix():
         BestPath='/usr/bin/R'
     elif os.path.exists('/usr/local/bin/R'):
         BestPath='/usr/local/bin/R'
+    elif os.path.exists('/Library/Frameworks/R.framework/Resources/bin/R') :
+        BestPath='/Library/Frameworks/R.framework/Resources/bin/R'
     return BestPath
 
 def RLibsAreInstalled(self) :
@@ -127,7 +150,8 @@ def RLibsAreInstalled(self) :
         return True
 
 def CheckRPackages(self):
-    listdep = ['ca', 'rgl', 'gee', 'ape', 'igraph','proxy', 'wordcloud', 'irlba', 'textometry']
+    listdep = ['ca', 'rgl', 'gee', 'ape', 'igraph','proxy', 'wordcloud',
+               'irlba', 'textometry', 'intergraph', 'sna', 'network']
     nolib = []
     i=0
     dlg = wx.ProgressDialog("Test des librairies de R", "test en cours...", maximum = len(listdep), parent=self, style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT)
@@ -153,12 +177,12 @@ def CheckRPackages(self):
 %s
 
 Sans ces bibliothèques, IRamuteq ne fonctionnera pas.
-    
+
 - Vous pouvez installer ces bibliothèques manuellement :
         Cliquez sur Annuler
         Lancez R
         Tapez install.packages('nom de la bibiothèque')
-        
+
 - ou laisser IRamuteq les installer automatiquement en cliquant sur VALIDER .
         Les bibliothèques seront téléchargées depuis le site miroir de R %s.
         """ % (txt, self.pref.get('iramuteq','rmirror'))
@@ -204,7 +228,7 @@ Sans ces bibliothèques, IRamuteq ne fonctionnera pas.
             dlg.Destroy()
         dial.Destroy()
     if nolib == [] : 
-        #self.pref.set('iramuteq', 'rlibs', True)
+        self.pref.set('iramuteq', 'rlibs', True)
         with open(self.ConfigPath['preferences'], 'w') as f :
             self.pref.write(f)
         return True