-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyver.py
More file actions
executable file
·56 lines (51 loc) · 2.51 KB
/
pyver.py
File metadata and controls
executable file
·56 lines (51 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 )