diff options
author | Terry Chia <terrycwk1994@gmail.com> | 2014-07-27 12:27:52 +0800 |
---|---|---|
committer | Terry Chia <terrycwk1994@gmail.com> | 2014-07-27 12:27:52 +0800 |
commit | da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22 (patch) | |
tree | 4623c3f938868ec54a12bd7e16eda71ad71869da | |
parent | 3319c95bf861f806a1b237c99661b30379389063 (diff) | |
download | cryptography-da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22.tar.gz cryptography-da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22.tar.bz2 cryptography-da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22.zip |
Added entry_points.
-rw-r--r-- | cryptography/hazmat/backends/__init__.py | 29 | ||||
-rw-r--r-- | setup.py | 16 |
2 files changed, 31 insertions, 14 deletions
diff --git a/cryptography/hazmat/backends/__init__.py b/cryptography/hazmat/backends/__init__.py index ae78822c..663d1f55 100644 --- a/cryptography/hazmat/backends/__init__.py +++ b/cryptography/hazmat/backends/__init__.py @@ -13,13 +13,9 @@ from __future__ import absolute_import, division, print_function +import pkg_resources + from cryptography.hazmat.backends.multibackend import MultiBackend -from cryptography.hazmat.bindings.commoncrypto.binding import ( - Binding as CommonCryptoBinding -) -from cryptography.hazmat.bindings.openssl.binding import ( - Binding as OpenSSLBinding -) _available_backends_list = None @@ -31,16 +27,23 @@ def _available_backends(): if _available_backends_list is None: _available_backends_list = [] - if CommonCryptoBinding.is_available(): - from cryptography.hazmat.backends import commoncrypto - _available_backends_list.append(commoncrypto.backend) + for backend in pkg_resources.iter_entry_points( + "cryptography.hazmat.backends" + ): + is_backend_available = pkg_resources.get_entry_info( + backend.dist, + "cryptography.hazmat.is_backend_available", + backend.name + ) - if OpenSSLBinding.is_available(): - from cryptography.hazmat.backends import openssl - _available_backends_list.append(openssl.backend) + if is_backend_available is not None: + is_backend_available = is_backend_available.load(require=False) + if not is_backend_available(): + continue - return _available_backends_list + _available_backends_list.append(backend.load(require=False)) + return _available_backends_list _default_backend = None @@ -32,13 +32,15 @@ with open(os.path.join(base_dir, "cryptography", "__about__.py")) as f: exec(f.read(), about) +SETUPTOOLS_DEPENDENCY = "setuptools" CFFI_DEPENDENCY = "cffi>=0.8" SIX_DEPENDENCY = "six>=1.4.1" VECTORS_DEPENDENCY = "cryptography_vectors=={0}".format(about['__version__']) requirements = [ CFFI_DEPENDENCY, - SIX_DEPENDENCY + SIX_DEPENDENCY, + SETUPTOOLS_DEPENDENCY ] # If you add a new dep here you probably need to add it in the tox.ini as well @@ -173,5 +175,17 @@ setup( "build": CFFIBuild, "install": CFFIInstall, "test": PyTest, + }, + + entry_points={ + "cryptography.hazmat.backends": [ + "commoncrypto = cryptography.hazmat.backends.commoncrypto:backend", + "openssl = cryptography.hazmat.backends.openssl:backend" + ], + + "cryptography.hazmat.is_backend_available": [ + "commoncrypto = cryptography.hazmat.bindings.commoncrypto." + "binding:Binding.is_available" + ] } ) |