summaryrefslogtreecommitdiff
path: root/kpov_judge/test_task.py
diff options
context:
space:
mode:
Diffstat (limited to 'kpov_judge/test_task.py')
-rwxr-xr-xkpov_judge/test_task.py38
1 files changed, 19 insertions, 19 deletions
diff --git a/kpov_judge/test_task.py b/kpov_judge/test_task.py
index 37033d2..4251b50 100755
--- a/kpov_judge/test_task.py
+++ b/kpov_judge/test_task.py
@@ -3,8 +3,8 @@
import yaml
import json
-import urllib
-import urllib2
+import urllib.request, urllib.parse, urllib.error
+import urllib.request, urllib.error, urllib.parse
try:
from dialog import Dialog
except:
@@ -34,7 +34,7 @@ DEFAULT_LANGUAGE = 'si'
or from a file."""
def get_params_dialog(params, meta, param_name_list=None, dialog=None, language = None):
if param_name_list is None:
- param_name_list = meta.keys()
+ param_name_list = list(meta.keys())
if language is None:
language = params.get('language', DEFAULT_LANGUAGE)
for name in param_name_list:
@@ -63,28 +63,28 @@ def get_params_dialog(params, meta, param_name_list=None, dialog=None, language
def add_meta_to_argparser(argparser, meta, defaults = {}):
language = defaults.get('language', DEFAULT_LANGUAGE)
- for k, v in meta.iteritems():
+ for k, v in meta.items():
try:
desc = v['descriptions'][language].encode("utf-8")
except:
desc = k
# print("{} {}".format(desc, type(desc)))
- argparser.add_argument('--'+k, nargs='?', help=desc, type=unicode, default=defaults.get(k, None))
+ argparser.add_argument('--'+k, nargs='?', help=desc, type=str, default=defaults.get(k, None))
return argparser
def http_auth(url, username, password):
- password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
+ password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
# Add the username and password.
# If we knew the realm, we could use it instead of None.
password_mgr.add_password(None, url, username, password)
- handler = urllib2.HTTPBasicAuthHandler(password_mgr)
+ handler = urllib.request.HTTPBasicAuthHandler(password_mgr)
# create "opener" (OpenerDirector instance)
- opener = urllib2.build_opener(handler)
+ opener = urllib.request.build_opener(handler)
# use the opener to fetch a URL
# opener.open(SERVER_URL)
# Install the opener.
# Now all calls to urllib2.urlopen use our opener.
- urllib2.install_opener(opener)
+ urllib.request.install_opener(opener)
def load_task(stream):
# the stream should compile into at least the function
@@ -110,7 +110,7 @@ def locate_task(params, argparser, dialog):
params = get_params_dialog(params, url_meta, dialog = dialog)
# then the student's ID (and password if neccessarry)
fetch_params_meta = {
- 'username':{'descriptions': {'si': u'Uporabniško ime', 'en': u'Username'}, },
+ 'username':{'descriptions': {'si': 'Uporabniško ime', 'en': 'Username'}, },
}
if params['task_url'] is not None and (
params['task_url'].startswith('http')):
@@ -120,7 +120,7 @@ def locate_task(params, argparser, dialog):
argparser = add_meta_to_argparser(argparser, meta = fetch_params_meta, defaults = params)
args, unknown_args = argparser.parse_known_args()
# update params with the now known args
- for k, v in fetch_params_meta.iteritems():
+ for k, v in fetch_params_meta.items():
params[k] = vars(args).get(k, params.get(k, None))
if dialog is not None:
params = get_params_dialog(params, fetch_params_meta, dialog=dialog)
@@ -166,12 +166,12 @@ if __name__ == '__main__':
task_name = params['task_name']
if task_url.startswith('http'):
http_auth(task_url, params['username'], params['password'])
- print "fetching {task_url}/{task_name}/task.py".format(**params)
- req = urllib2.Request("{task_url}/{task_name}/task.py".format(**params))
- source = urllib2.urlopen(req)
+ print("fetching {task_url}/{task_name}/task.py".format(**params))
+ req = urllib.request.Request("{task_url}/{task_name}/task.py".format(**params))
+ source = urllib.request.urlopen(req)
task, task_check, task_params_meta, gen_params = load_task(source)
except Exception as e:
- print params
+ print(params)
print(e)
if basic_args.help:
argparser.print_help()
@@ -190,8 +190,8 @@ if __name__ == '__main__':
task_params.update(gen_params(params['username'], task_params_meta))
# print ("params after: {} {}".format(params, task_params))
if task_url.startswith('http'):
- req = urllib2.Request("{task_url}/{task_name}/params.json".format(**params))
- web_task_params = json.load(urllib2.urlopen(req))
+ req = urllib.request.Request("{task_url}/{task_name}/params.json".format(**params))
+ web_task_params = json.load(urllib.request.urlopen(req))
task_params.update(web_task_params)
params_argparser = argparse.ArgumentParser(parents=[argparser], conflict_handler='resolve', add_help=True)
params_argparser = add_meta_to_argparser(params_argparser, task_params_meta, defaults=task_params)
@@ -208,7 +208,7 @@ if __name__ == '__main__':
exit(0)
# run task.task()
public_params = dict()
- for k in inspect.getargs(task.func_code)[0]:
+ for k in inspect.getargs(task.__code__)[0]:
public_params[k] = task_params[k]
params['task_params'][params['task_name']] = task_params
# save parameters for the next run
@@ -224,7 +224,7 @@ if __name__ == '__main__':
exit(1)
try:
result, hints = task_check(task_result, task_params)
- print result, hints
+ print(result, hints)
except Exception as e:
print("Error running task_check(results, params):")
print(e)