Email + password auth from client

This commit is contained in:
Madison May
2014-11-28 12:52:04 -05:00
parent 9ed17b8f34
commit 8149908328
6 changed files with 34 additions and 17 deletions
+4 -4
View File
@@ -5,7 +5,7 @@ import numpy as np
from indicoio.utils import image_preprocess, api_handler from indicoio.utils import image_preprocess, api_handler
def facial_features(api_root, image, batch=False): def facial_features(api_root, image, batch=False, auth=None):
""" """
Given an grayscale input image of a face, returns a 48 dimensional feature vector explaining that face. Given an grayscale input image of a face, returns a 48 dimensional feature vector explaining that face.
Useful as a form of feature engineering for face oriented tasks. Useful as a form of feature engineering for face oriented tasks.
@@ -27,9 +27,9 @@ def facial_features(api_root, image, batch=False):
:type image: list of lists :type image: list of lists
:rtype: List containing feature responses :rtype: List containing feature responses
""" """
return api_handler(image, api_root + "facialfeatures", batch=batch) return api_handler(image, api_root + "facialfeatures", batch=batch, auth=auth)
def image_features(api_root, image, batch=False): def image_features(api_root, image, batch=False, auth=None):
""" """
Given an input image, returns a 2048 dimensional sparse feature vector explaining that image. Given an input image, returns a 2048 dimensional sparse feature vector explaining that image.
Useful as a form of feature engineering for image oriented tasks. Useful as a form of feature engineering for image oriented tasks.
@@ -60,4 +60,4 @@ def image_features(api_root, image, batch=False):
:rtype: List containing features :rtype: List containing features
""" """
image = image_preprocess(image) image = image_preprocess(image)
return api_handler(image, api_root + "imagefeatures", batch=batch) return api_handler(image, api_root + "imagefeatures", batch=batch, auth=auth)
+2 -2
View File
@@ -4,7 +4,7 @@ import requests
import numpy as np import numpy as np
from indicoio.utils import api_handler from indicoio.utils import api_handler
def fer(api_root, image, batch=False): def fer(api_root, image, batch=False, auth=None):
""" """
Given a grayscale input image of a face, returns a probability distribution over emotional state. Given a grayscale input image of a face, returns a probability distribution over emotional state.
Input should be in a list of list format, resizing will be attempted internally but for best Input should be in a list of list format, resizing will be attempted internally but for best
@@ -28,4 +28,4 @@ def fer(api_root, image, batch=False):
:rtype: Dictionary containing emotion probability pairs :rtype: Dictionary containing emotion probability pairs
""" """
return api_handler(image, api_root + "fer", batch=batch) return api_handler(image, api_root + "fer", batch=batch, auth=auth)
+2 -2
View File
@@ -1,6 +1,6 @@
from indicoio.utils import api_handler from indicoio.utils import api_handler
def language(api_root, text, batch=False): def language(api_root, text, batch=False, auth=None):
""" """
Given input text, returns a probability distribution over 33 possible Given input text, returns a probability distribution over 33 possible
languages of what language the text was written in. languages of what language the text was written in.
@@ -23,4 +23,4 @@ def language(api_root, text, batch=False):
:rtype: Dictionary of language probability pairs :rtype: Dictionary of language probability pairs
""" """
return api_handler(text, api_root + "language", batch=batch) return api_handler(text, api_root + "language", batch=batch, auth=auth)
+4 -4
View File
@@ -1,7 +1,7 @@
from indicoio import JSON_HEADERS from indicoio import JSON_HEADERS
from indicoio.utils import api_handler from indicoio.utils import api_handler
def political(api_root, text, batch=False): def political(api_root, text, batch=False, auth=None):
""" """
Given input text, returns a probability distribution over the political alignment of the speaker. Given input text, returns a probability distribution over the political alignment of the speaker.
@@ -27,9 +27,9 @@ def political(api_root, text, batch=False):
:rtype: Dictionary of party probability pairs :rtype: Dictionary of party probability pairs
""" """
return api_handler(text, api_root + "political", batch=batch) return api_handler(text, api_root + "political", batch=batch, auth=auth)
def posneg(api_root, text, batch=False): def posneg(api_root, text, batch=False, auth=None):
""" """
Given input text, returns a scalar estimate of the sentiment of that text. Given input text, returns a scalar estimate of the sentiment of that text.
Values are roughly in the range 0 to 1 with 0.5 indicating neutral sentiment. Values are roughly in the range 0 to 1 with 0.5 indicating neutral sentiment.
@@ -50,4 +50,4 @@ def posneg(api_root, text, batch=False):
:rtype: Float :rtype: Float
""" """
return api_handler(text, api_root + "sentiment", batch=batch) return api_handler(text, api_root + "sentiment", batch=batch, auth=auth)
+2 -2
View File
@@ -1,6 +1,6 @@
from indicoio.utils import api_handler from indicoio.utils import api_handler
def text_tags(api_root, text, batch=False): def text_tags(api_root, text, batch=False, auth=None):
""" """
Given input text, returns a probability distribution over 100 document categories Given input text, returns a probability distribution over 100 document categories
@@ -22,4 +22,4 @@ def text_tags(api_root, text, batch=False):
:rtype: Dictionary of class probability pairs :rtype: Dictionary of class probability pairs
""" """
return api_handler(text, api_root + "texttags", batch=batch) return api_handler(text, api_root + "texttags", batch=batch, auth=None)
+20 -3
View File
@@ -1,14 +1,31 @@
import inspect, json, requests import inspect, json, getpass, os
import requests
import numpy as np import numpy as np
from skimage.transform import resize from skimage.transform import resize
from indicoio import JSON_HEADERS from indicoio import JSON_HEADERS
def api_handler(arg, url, batch=False): def auth_query():
email = os.environ.get("INDICO_EMAIL")
password = os.environ.get("INDICO_PASSWORD")
# store settings
if not email:
email = raw_input("Email: ")
os.environ["INDICO_EMAIL"] = email
if not password:
password = getpass.getpass("Password: ")
os.environ["INDICO_PASSWORD"] = password
return (email, password)
def api_handler(arg, url, batch=False, auth=None):
data_dict = json.dumps({'data': arg}) data_dict = json.dumps({'data': arg})
if batch: if batch:
url += "/batch" url += "/batch"
response = requests.post(url, data=data_dict, headers=JSON_HEADERS).json() auth = auth_query()
response = requests.post(url, data=data_dict, headers=JSON_HEADERS, auth=auth).json()
results = response.get('results', False) results = response.get('results', False)
if not results: if not results:
error = response.get('error') error = response.get('error')