cola: move the cola.main package to cola.widgets.main and cola.models.main
[git-cola.git] / cola / version.py
bloba7449bcd3e6429829ba3418379cd938988eb9f15
1 # Copyright (c) David Aguilar
2 """Provide git-cola's version number"""
4 import os
5 import sys
7 if __name__ == '__main__':
8 srcdir = os.path.dirname(os.path.dirname(__file__))
9 sys.path.insert(1, srcdir)
11 from cola.git import git
12 from cola.git import STDOUT
13 from cola.decorators import memoize
14 from cola._version import VERSION
16 # minimum version requirements
17 _versions = {
18 # git-diff learned --patience in 1.6.2
19 # git-mergetool learned --no-prompt in 1.6.2
20 # git-difftool moved out of contrib in git 1.6.3
21 'git': '1.6.3',
22 'python': '2.4',
23 'pyqt': '4.4',
24 'pyqt_qrunnable': '4.4',
25 'diff-submodule': '1.6.6',
29 def get(key):
30 """Returns an entry from the known versions table"""
31 return _versions.get(key)
34 def version():
35 """Returns the current version"""
36 return VERSION
39 @memoize
40 def check_version(min_ver, ver):
41 """Check whether ver is greater or equal to min_ver
42 """
43 min_ver_list = version_to_list(min_ver)
44 ver_list = version_to_list(ver)
45 return min_ver_list <= ver_list
48 @memoize
49 def check(key, ver):
50 """Checks if a version is greater than the known version for <what>"""
51 return check_version(get(key), ver)
54 def version_to_list(version):
55 """Convert a version string to a list of numbers or strings
56 """
57 ver_list = []
58 for p in version.split('.'):
59 try:
60 n = int(p)
61 except ValueError:
62 n = p
63 ver_list.append(n)
64 return ver_list
67 @memoize
68 def git_version_str():
69 """Returns the current GIT version"""
70 return git.version()[STDOUT].strip()
72 @memoize
73 def git_version():
74 """Returns the current GIT version"""
75 parts = git_version_str().split()
76 if parts and len(parts) >= 3:
77 return parts[2]
78 else:
79 # minimum supported version
80 return '1.6.3'
83 def print_version(brief=False):
84 if brief:
85 print('%s' % version())
86 else:
87 print('cola version %s' % version())
90 if __name__ == '__main__':
91 print(version())