From 18c0ba61c52aa9a22cb4c4b7f75f0aaf133805bc Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 17 Apr 2011 01:02:05 +0400 Subject: [PATCH] Fix #417 (Bug in with SQLAlchemy 0.7b3) --- pyfa.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pyfa.py b/pyfa.py index 5518ff21c..22eae09a1 100755 --- a/pyfa.py +++ b/pyfa.py @@ -19,6 +19,7 @@ #=============================================================================== import sys +import re if not hasattr(sys, 'frozen'): @@ -36,19 +37,18 @@ if not hasattr(sys, 'frozen'): try: import sqlalchemy - saVersion = sqlalchemy.__version__.split(".") - saMajor = int(saVersion[0]) - saMinor = int(saVersion[1]) - saBuild = int(saVersion[2]) - - if saMinor < 5: - print "Pyfa requires sqlalchemy 0.5.8 at least but current sqlalchemy version is %s\nYou can download sqlalchemy (0.5.8+) from http://www.sqlalchemy.org/" % sqlalchemy.__version__ - sys.exit(1) - else: - if saMinor == 5 and saBuild < 8: - print "Pyfa requires sqlalchemy 0.5.8 at least but current sqlalchemy version is %s\nYou can download sqlalchemy (0.5.8+) from http://www.sqlalchemy.org/" % sqlalchemy.__version__ + saVersion = sqlalchemy.__version__ + saMatch = re.match("([0-9]+).([0-9]+)([b\.])([0-9]+)", saVersion) + if saMatch: + saMajor = int(saMatch.group(1)) + saMinor = int(saMatch.group(2)) + betaFlag = True if saMatch.group(3) == "b" else False + saBuild = int(saMatch.group(4)) if not betaFlag else 0 + if saMajor == 0 and (saMinor < 5 or (saMinor == 5 and saBuild < 8)): + print "Pyfa requires sqlalchemy 0.5.8 at least but current sqlalchemy version is %s\nYou can download sqlalchemy (0.5.8+) from http://www.sqlalchemy.org/".format(sqlalchemy.__version__) sys.exit(1) - + else: + print "Unknown sqlalchemy version string format, skipping check" except ImportError: print "Cannot find sqlalchemy.\nYou can download sqlalchemy (0.6+) from http://www.sqlalchemy.org/"