simi
[iramuteq] / checkinstall.py
index 8fbf6d7..e7dca8a 100644 (file)
@@ -2,7 +2,7 @@
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2008 Pierre Ratinaud
-#Lisense: GNU/GPL
+#License: GNU/GPL
 
 import os
 import sys
@@ -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,12 +122,14 @@ def FindRPAthWin32():
     if progpaths != [] :
         for progpath in progpaths :
             rpath = os.path.join(progpath, "R")
-        if os.path.exists(rpath) :
-            for i in range(13,20):
-                for j in range(0,15):
-                    path=os.path.join(rpath,"R-2."+str(i)+"."+str(j),'bin','R.exe')
-                    if os.path.exists(path):
-                        BestPath=path
+            if os.path.exists(rpath) :
+                for maj in range(2,4) :
+                    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():
@@ -123,22 +147,8 @@ def RLibsAreInstalled(self) :
     else :
         return True
 
-def install_textometrieR(self) :
-    dlg = wx.ProgressDialog("Installation de textometrieR",
-    "Veuillez patientez...",
-    maximum= 2,
-    parent=self,
-    style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT
-    )
-    dlg.Center()
-    dlg.Update(1, 'Installation de textometrieR')
-    path = os.path.join(self.AppliPath, 'Rlib', 'textometrieR')
-    exec_RCMD(self.RPath, path)
-    dlg.Update(2,'fini')
-    dlg.Destroy()
-
 def CheckRPackages(self):
-    listdep = ['ca', 'rgl', 'gee', 'ape', 'igraph','proxy', 'wordcloud', 'irlba', 'textometrieR']
+    listdep = ['ca', 'rgl', 'gee', 'ape', 'igraph','proxy', 'wordcloud', 'irlba', 'textometry']
     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)
@@ -158,10 +168,6 @@ def CheckRPackages(self):
             log.info('packages %s : OK' % bib)
     dlg.Update(len(listdep),'fini')
     dlg.Destroy()
-    install_textoR = False
-    if 'textometrieR' in nolib :
-         nolib.pop(nolib.index('textometrieR'))
-         install_textoR = True
     if nolib != [] :
         txt = '\n'.join(nolib)
         msg = u"""Les bibliothèques de R suivantes sont manquantes :
@@ -218,9 +224,7 @@ Sans ces bibliothèques, IRamuteq ne fonctionnera pas.
             dlg.Update(len(nolib) + 1, 'fin')
             dlg.Destroy()
         dial.Destroy()
-    if install_textoR :
-         install_textometrieR(self)
-    if nolib == [] and not install_textoR :
+    if nolib == [] : 
         self.pref.set('iramuteq', 'rlibs', True)
         with open(self.ConfigPath['preferences'], 'w') as f :
             self.pref.write(f)