diff options
Diffstat (limited to 'kpov_judge/test_task.py')
-rwxr-xr-x | kpov_judge/test_task.py | 38 |
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) |