Globals/__init__.py

changeset 2087
795992a5c561
parent 1509
c0b5e693b0eb
child 2302
f29e9405c851
--- a/Globals/__init__.py	Mon Oct 01 19:55:49 2012 +0200
+++ b/Globals/__init__.py	Tue Oct 02 19:53:31 2012 +0200
@@ -10,6 +10,8 @@
 import sys
 import os
 
+from PyQt4.QtCore import QDir
+
 # names of the various settings objects
 settingsNameOrganization = "Eric5"
 settingsNameGlobal = "eric5"
@@ -21,6 +23,8 @@
 recentNameFiles = "Files"
 recentNameHosts = "Hosts6"
 
+configDir = None
+
 
 def isWindowsPlatform():
     """
@@ -49,6 +53,98 @@
     return sys.platform.startswith("linux")
 
 
+def checkBlacklistedVersions():
+    """
+    Module functions to check for blacklisted versions of the prerequisites.
+    
+    @return flag indicating good versions were found (boolean)
+    """
+    from install import BlackLists, PlatformsBlackLists
+    
+    # determine the platform dependent black list
+    if isWindowsPlatform():
+        PlatformBlackLists = PlatformsBlackLists["windows"]
+    elif isLinuxPlatform():
+        PlatformBlackLists = PlatformsBlackLists["linux"]
+    else:
+        PlatformBlackLists = PlatformsBlackLists["mac"]
+    
+    # check version of sip
+    try:
+        import sipconfig
+        sipVersion = sipconfig.Configuration().sip_version_str
+        # always assume, that snapshots are good
+        if "snapshot" not in sipVersion:
+            # check for blacklisted versions
+            for vers in BlackLists["sip"] + PlatformBlackLists["sip"]:
+                if vers == sipVersion:
+                    print('Sorry, sip version {0} is not compatible with eric5.'\
+                          .format(vers))
+                    print('Please install another version.')
+                    return False
+    except ImportError:
+        pass
+    
+    # check version of PyQt
+    from PyQt4.QtCore import PYQT_VERSION_STR
+    pyqtVersion = PYQT_VERSION_STR
+    # always assume, that snapshots are good
+    if "snapshot" not in pyqtVersion:
+        # check for blacklisted versions
+        for vers in BlackLists["PyQt4"] + PlatformBlackLists["PyQt4"]:
+            if vers == pyqtVersion:
+                print('Sorry, PyQt4 version {0} is not compatible with eric5.'\
+                      .format(vers))
+                print('Please install another version.')
+                return False
+    
+    # check version of QScintilla
+    from PyQt4.Qsci import QSCINTILLA_VERSION_STR
+    scintillaVersion = QSCINTILLA_VERSION_STR
+    # always assume, that snapshots are new enough
+    if "snapshot" not in scintillaVersion:
+        # check for blacklisted versions
+        for vers in BlackLists["QScintilla2"] + PlatformBlackLists["QScintilla2"]:
+            if vers == scintillaVersion:
+                print('Sorry, QScintilla2 version {0} is not compatible with eric5.'\
+                      .format(vers))
+                print('Please install another version.')
+                return False
+    
+    return True
+
+
+def getConfigDir():
+    """
+    Module function to get the name of the directory storing the config data.
+    
+    @return directory name of the config dir (string)
+    """
+    if configDir is not None and os.path.exists(configDir):
+        hp = configDir
+    else:
+        if isWindowsPlatform():
+            cdn = "_eric5"
+        else:
+            cdn = ".eric5"
+            
+        hp = QDir.homePath()
+        dn = QDir(hp)
+        dn.mkdir(cdn)
+        hp += "/" + cdn
+    return QDir.toNativeSeparators(hp)
+
+
+def setConfigDir(d):
+    """
+    Module function to set the name of the directory storing the config data.
+    
+    @param d name of an existing directory (string)
+    """
+    global configDir
+    configDir = os.path.expanduser(d)
+
+
 ################################################################################
 ## functions for searching a Python2 interpreter
 ################################################################################

eric ide

mercurial