Mercurial > traipse_dev
diff pyver.py @ 0:4385a7d0efd1 grumpy-goblin
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author | sirebral |
---|---|
date | Tue, 14 Jul 2009 16:41:58 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pyver.py Tue Jul 14 16:41:58 2009 -0500 @@ -0,0 +1,56 @@ +import sys # Needed for version +import string # Needed for split +from orpg.orpg_version import * # To get NEEDS_PYTHON_MAJOR, MINOR, and MICRO + +def getNumber(numberstringtoconvert): + currentnumberstring = "" + for number in numberstringtoconvert: + if number >= "0" and number <="9": + currentnumberstring += number + else: + break + if currentnumberstring == "": + return 0 + else: + return int(currentnumberstring) +# This checks to make sure a certain version of python or later is in use +# The actual version requested is set in orpg/openrpg_version +def checkPyVersion(): + + # taking the first split on whitespace of sys.version gives us the version info without the build stuff + vernumstring = string.split(sys.version)[0] + + # This splits the version string into (major,minor,micro). Actually, a complicating factor + # is that there sometimes isn't a micro, e.g. 2.0. We'll just do it the hard way to build + # the numbers instead of tuple unpacking. + splits = string.split(vernumstring,'.') + + # Assign default values + micro = 0 + minor = 0 + major = 0 + # Assign the integer conversion of each, assuming that it was found. If not found, we assumed 0 just above. + if len(splits) > 0: + major = getNumber(splits[0]) + if len(splits) > 1: + minor = getNumber(splits[1]) + if len(splits) > 2: + micro = getNumber(splits[2]) + # Check against min version info from orpg/orpg_version + if major >= NEEDS_PYTHON_MAJOR: + if major > NEEDS_PYTHON_MAJOR: # If it's greater, there's no need to check the minor + return + if minor >= NEEDS_PYTHON_MINOR: + if minor > NEEDS_PYTHON_MINOR: # If it's greater, there's no need to check the micro + return + if micro >= NEEDS_PYTHON_MICRO: + return + + # If we get here, then the version check failed so we inform the user of the required version and exit + print "Invalid python version being used. Detected version %s," % (vernumstring) + print "but version %i.%i.%i or better is required!" % (NEEDS_PYTHON_MAJOR,NEEDS_PYTHON_MINOR,NEEDS_PYTHON_MICRO) + print "You either have the wrong version of Python installed or you" + print "have multiple versions installed. If you have multiple versions," + print "please make sure Python %i.%i.%i or better is found first in your path or explicitly" % (NEEDS_PYTHON_MAJOR,NEEDS_PYTHON_MINOR,NEEDS_PYTHON_MICRO) + print "start using, \"<path>\python <program>\"." + sys.exit( 1 )