def register(): try: vprint("Processes: ", app.processes) vprint("Predictors: ", app.predictors) if len(app.processes) == app.user_max: return register_response( status=afy_flask_register_status.QUOTA_EXCEEDED, error="Quota Exceeded") predictor_args = { 'config_path': app.opt.config, 'checkpoint_path': app.opt.checkpoint, 'relative': app.opt.relative, 'adapt_movement_scale': app.opt.adapt_scale, 'enc_downscale': app.opt.enc_downscale } if app.predictors: predictor = app.predictors.pop() else: predictor = predictor_local.PredictorLocal(**predictor_args) while True: token = generate_token() if token not in app.processes: break app.processes[token] = {} app.processes[token]['predictor'] = predictor return register_response(status=afy_flask_register_status.SUCCESS, token=token) except Exception as e: if app.verbose: traceback.print_exc() return register_response(error=str(e))
def vprint(*data): if app.verbose: print(*data) predictor_args = { 'config_path': app.opt.config, 'checkpoint_path': app.opt.checkpoint, 'relative': app.opt.relative, 'adapt_movement_scale': app.opt.adapt_scale, 'enc_downscale': app.opt.enc_downscale } for i in range(app.user_max): predictor = predictor_local.PredictorLocal(**predictor_args) app.predictors.append(predictor) print("Predictor {} loaded".format(i + 1)) print("All predictors loaded") def generate_token(): return str(binascii.hexlify(os.urandom(20)).decode()) def register_response(status=afy_flask_register_status.UNKNOWN_ERROR, token=None, error=None): resp = {} resp['status'] = status if token is not None: