From e6e1fd060eb78c6d4e268388ef793ac07fa25f7f Mon Sep 17 00:00:00 2001 From: Honza Kral Date: Fri, 11 Oct 2013 10:37:04 +0200 Subject: [PATCH] Make requests an optional dependency --- elasticsearch/connection/http_requests.py | 11 +++++++++-- setup.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/elasticsearch/connection/http_requests.py b/elasticsearch/connection/http_requests.py index d667b2b8..f7a223dd 100644 --- a/elasticsearch/connection/http_requests.py +++ b/elasticsearch/connection/http_requests.py @@ -1,12 +1,16 @@ import time -import requests +try: + import requests + REQUESTS_AVAILABLE = True +except ImportError: + REQUESTS_AVAILABLE = False try: from urllib import urlencode except ImportError: from urllib.parse import urlencode from .base import Connection -from ..exceptions import ConnectionError +from ..exceptions import ConnectionError, ImproperlyConfigured class RequestsHttpConnection(Connection): """ @@ -17,6 +21,9 @@ class RequestsHttpConnection(Connection): :arg use_ssl: use ssl for the connection if `True` """ def __init__(self, host='localhost', port=9200, http_auth=None, use_ssl=False, **kwargs): + if not REQUESTS_AVAILABLE: + raise ImproperlyConfigured("Please install requests to use RequestsHttpConnection.") + super(RequestsHttpConnection, self).__init__(host= host, port=port, **kwargs) self.session = requests.session() if http_auth is not None: diff --git a/setup.py b/setup.py index 895ff176..c07b479c 100644 --- a/setup.py +++ b/setup.py @@ -13,10 +13,10 @@ long_description = f.read().strip() f.close() install_requires = [ - 'requests>=1.0.0, <3.0.0', 'urllib3>=1.5, <2.0', ] tests_require = [ + 'requests>=1.0.0, <3.0.0', 'nose', 'coverage', 'mock',