Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 0046e0cf authored by CAMPION Sebastien's avatar CAMPION Sebastien
Browse files

Enable token by local file

parent 8ca4c2d9
No related branches found
No related tags found
No related merge requests found
import os, logging
import logging
import os
import time
try:
......@@ -13,8 +13,16 @@ except ImportError:
import requests
log = logging.getLogger('allgo')
__version__ = '0.1.4'
__version__ = '0.1.7'
def local_token():
from os.path import expanduser
home = expanduser("~")
filetoken = os.path.join(home, '.allgo_token')
if os.path.exists(filetoken):
with open(filetoken) as f:
return f.read()
class App:
"""
......@@ -28,7 +36,14 @@ class App:
:param token: if not provided, we check ALLGO_TOKEN env variable and notebook parameters
"""
self.name = name
self.token = token if token else os.environ.get('ALLGO_TOKEN', None)
if token:
self.token = token
elif 'ALLGO_TOKEN' in os.environ.keys():
self.token = os.environ.get('ALLGO_TOKEN')
elif local_token():
self.token = local_token()
else:
raise Exception("You must provide a token in parameter or define an environment variable 'ALLGO_TOKEN'")
def run(self, files, outputdir='.', params=''):
"""
......@@ -38,12 +53,14 @@ class App:
:param params: a string parameters see the application documentation
:return:
"""
headers = {'Authorization': 'Token token={}'.format(_token)}
headers = {'Authorization': 'Token token={}'.format(self.token)}
data = {"job[webapp_name]": self.name,
"job[webapp_id]": self.name,
"job[param]": params}
ALLGO_URL = os.environ.get('ALLGO_URL', "https://allgo.inria.fr")
r = requests.post('%s/api/v1/jobs' % ALLGO_URL, headers=headers, files=files, data=data)
r = requests.post('%s/api/v1/jobs/' % ALLGO_URL, headers=headers, files=files, data=data)
r.raise_for_status()
r = r.json()
jobid = r['id']
results = None
while True:
......@@ -60,7 +77,7 @@ class App:
raise Exception('Job %s failed with status %s', (jobid, status))
elif status == 'done' and results:
for filename, url in results[jobid].items:
for filename, url in results[str(jobid)].items():
filepath = os.path.join(outputdir, filename)
with open(filepath, 'wb') as fb:
fb.write(requests.get(url, stream=True).content)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment