Latest cryptography depends on enum34.
authorDaira Hopwood <daira@jacaranda.org>
Fri, 26 Dec 2014 22:29:42 +0000 (22:29 +0000)
committerBrian Warner <warner@lothar.com>
Tue, 20 Jan 2015 18:52:07 +0000 (10:52 -0800)
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
src/allmydata/__init__.py
src/allmydata/_auto_deps.py

index e07f73c2b9af126587d48e21e71d8359eb938bb3..44f971f8634fd86b8f9bf53678acdb29875d3be4 100644 (file)
@@ -188,8 +188,17 @@ def get_package_versions_and_locations():
 
     packages = []
 
-    def get_version(module, attr):
-        return str(getattr(module, attr, 'unknown'))
+    def get_version(module):
+        if hasattr(module, '__version__'):
+            return str(getattr(module, '__version__'))
+        elif hasattr(module, 'version'):
+            ver = getattr(module, 'version')
+            if isinstance(ver, tuple):
+                return '.'.join(map(str, ver))
+            else:
+                return str(ver)
+        else:
+            return 'unknown'
 
     for pkgname, modulename in [(__appname__, 'allmydata')] + package_imports:
         if modulename:
@@ -207,7 +216,7 @@ def get_package_versions_and_locations():
                 elif pkgname == 'setuptools' and hasattr(module, '_distribute'):
                     # distribute does not report its version in any module variables
                     comment = 'distribute'
-                packages.append( (pkgname, (get_version(module, '__version__'), package_dir(module.__file__), comment)) )
+                packages.append( (pkgname, (get_version(module), package_dir(module.__file__), comment)) )
         elif pkgname == 'python':
             packages.append( (pkgname, (platform.python_version(), sys.executable, None)) )
         elif pkgname == 'platform':
index b3f2f2e88c00157661114544444e2eaef683d9f0..7a8a18544b27523830015a7140f26a29a2af2eee 100644 (file)
@@ -204,6 +204,7 @@ if _can_use_pyOpenSSL_0_14:
         "cryptography",
         "cffi >= 0.8",          # latest cryptography depends on this version
         "six >= 1.4.1",         # latest cryptography depends on this version
+        "enum34",               # latest cryptography depends on this
         "pycparser",            # cffi depends on this
     ]
 
@@ -211,6 +212,7 @@ if _can_use_pyOpenSSL_0_14:
         ('cryptography',     'cryptography'),
         ('cffi',             'cffi'),
         ('six',              'six'),
+        ('enum34',           'enum'),
         ('pycparser',        'pycparser'),
     ]
 else: