def requester_register(requester_type): options = request.get_json() crowd_provider = get_crowd_provider_from_type(requester_type) RequesterClass = crowd_provider.RequesterClass try: parsed_options = parse_arg_dict(RequesterClass, options) except Exception as e: traceback.print_exc(file=sys.stdout) return jsonify( {"success": False, "msg": f"error in parsing arguments: {str(e)}"} ) if "name" not in parsed_options: return jsonify( {"success": False, "msg": "No name was specified for the requester."} ) db = app.extensions["db"] requesters = db.find_requesters(requester_name=parsed_options["name"]) if len(requesters) == 0: requester = RequesterClass.new(db, parsed_options["name"]) else: requester = requesters[0] try: print(parsed_options) requester.register(parsed_options) return jsonify({"success": True}) except Exception as e: return jsonify({"success": False, "msg": str(e)})
def register_provider(args): """Register a requester with a crowd provider""" if len(args) == 0: click.echo( "Usage: mephisto register <provider_type> arg1=value arg2=value") return from mephisto.abstractions.databases.local_database import LocalMephistoDB from mephisto.operations.registry import get_crowd_provider_from_type from mephisto.operations.utils import parse_arg_dict, get_extra_argument_dicts provider_type, requester_args = args[0], args[1:] args_dict = dict(arg.split("=", 1) for arg in requester_args) crowd_provider = get_crowd_provider_from_type(provider_type) RequesterClass = crowd_provider.RequesterClass if len(requester_args) == 0: from tabulate import tabulate params = get_extra_argument_dicts(RequesterClass) for param in params: click.echo(param["desc"]) click.echo(tabulate(param["args"].values(), headers="keys")) return try: parsed_options = parse_arg_dict(RequesterClass, args_dict) except Exception as e: click.echo(str(e)) if parsed_options.name is None: click.echo("No name was specified for the requester.") db = LocalMephistoDB() requesters = db.find_requesters(requester_name=parsed_options.name) if len(requesters) == 0: requester = RequesterClass.new(db, parsed_options.name) else: requester = requesters[0] try: requester.register(parsed_options) click.echo("Registered successfully.") except Exception as e: click.echo(str(e))