From 8512401bc947425d2a1df2e901b5aabc63235862 Mon Sep 17 00:00:00 2001 From: Anne Carlson Date: Wed, 11 Mar 2015 16:40:35 -0400 Subject: [PATCH] routing around image_preprocessing for urls --- indicoio/images/features.py | 7 +++---- indicoio/images/fer.py | 2 -- indicoio/utils/__init__.py | 12 +++++++++++- indicoio/utils/tests/test_utils.py | 15 +++++++++++++++ 4 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 indicoio/utils/tests/test_utils.py diff --git a/indicoio/images/features.py b/indicoio/images/features.py index ea9608b..8582c82 100644 --- a/indicoio/images/features.py +++ b/indicoio/images/features.py @@ -1,9 +1,7 @@ -import json - import requests import numpy as np -from indicoio.utils import image_preprocess, api_handler +from indicoio.utils import image_preprocess, api_handler, is_url import indicoio.config as config def facial_features(image, cloud=config.CLOUD, batch=False, auth=None, **kwargs): @@ -60,5 +58,6 @@ def image_features(image, cloud=config.CLOUD, batch=False, auth=None, **kwargs): :type image: numpy.ndarray :rtype: List containing features """ - image = image_preprocess(image, batch=batch) + if not is_url(image, batch=batch): + image = image_preprocess(image, batch=batch) return api_handler(image, cloud=cloud, api="imagefeatures", batch=batch, auth=auth, **kwargs) diff --git a/indicoio/images/fer.py b/indicoio/images/fer.py index 3365dec..4c6af93 100644 --- a/indicoio/images/fer.py +++ b/indicoio/images/fer.py @@ -1,5 +1,3 @@ -import json - import requests import numpy as np diff --git a/indicoio/utils/__init__.py b/indicoio/utils/__init__.py index d9ad14b..5944839 100644 --- a/indicoio/utils/__init__.py +++ b/indicoio/utils/__init__.py @@ -14,7 +14,7 @@ def api_handler(arg, cloud, api, batch=False, auth=None, **kwargs): if cloud: host = "%s.indico.domains" % cloud - else: + else: # default to indico public cloud host = config.PUBLIC_API_HOST @@ -142,3 +142,13 @@ def image_preprocess(image, batch=False): image = resize(image,(64,64)) image = image.tolist() return image + + +def is_url(data, batch=False): + if batch and isinstance(data[0], basestring): + return True + if not batch and isinstance(data, basestring): + return True + return False + + diff --git a/indicoio/utils/tests/test_utils.py b/indicoio/utils/tests/test_utils.py new file mode 100644 index 0000000..deb9274 --- /dev/null +++ b/indicoio/utils/tests/test_utils.py @@ -0,0 +1,15 @@ +from indicoio.utils import is_url + +def test_is_urls(): + boring_image = [0]*(32**2) + boring_images = [boring_image]*100 + + assert not is_url(boring_image, batch=False) + assert not is_url(boring_images, batch=True) + + url = 'http://picturepicture.com/picture' + urls = [url]*100 + + assert is_url(url, batch=False) + assert is_url(urls, batch=True) +