]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/__init__.py
setup: simplify parsing of python version number
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / __init__.py
1
2 """
3 Decentralized storage grid.
4
5 maintainer web site: U{http://allmydata.com/}
6
7 community web site: U{http://allmydata.org/}
8 """
9
10 __version__ = "unknown"
11 try:
12     from _version import __version__
13 except ImportError:
14     # We're running in a tree that hasn't run "./setup.py darcsver", and didn't
15     # come with a _version.py, so we don't know what our version is. This should
16     # not happen very often.
17     pass
18
19 hush_pyflakes = __version__
20 del hush_pyflakes
21
22 import _auto_deps
23 _auto_deps.require_auto_deps()
24
25 def get_package_versions():
26     import OpenSSL, allmydata, foolscap, nevow, pycryptopp, simplejson, twisted, zfec, sys
27
28     try:
29         pyver = '.'.join([str(c) for c in sys.version_info])
30     except:
31         # This will probably never happen, but if it does:
32         pyver = sys.version
33
34     setuptools_version = "unavailable"
35     try:
36         import setuptools
37         setuptools_version = setuptools.__version__
38     except ImportError:
39         pass
40     return {
41         'pyopenssl': OpenSSL.__version__,
42         'allmydata': allmydata.__version__,
43         'foolscap': foolscap.__version__,
44         'nevow': nevow.__version__,
45         'pycryptopp': pycryptopp.__version__,
46         'setuptools': setuptools_version,
47         'simplejson': simplejson.__version__,
48         'twisted': twisted.__version__,
49         'zfec': zfec.__version__,
50         'python': pyver,
51         }
52
53 def get_package_versions_string():
54     versions = get_package_versions()
55     res = []
56     for p in ["allmydata", "foolscap", "pycryptopp", "zfec", "twisted", "nevow", "python"]:
57         if versions.has_key(p):
58             res.append(str(p) + ": " + str(versions[p]))
59             del versions[p]
60         else:
61             res.append(str(p) + ": UNKNOWN")
62     for p, v in versions.iteritems():
63         res.append(str(p) + ": " + str(v))
64     return ', '.join(res)