from flask import Flask, jsonify, request from more_itertools import peekable def set_up_processing_server(process_fn): app = Flask(__name__) response_payload_iter = None @app.route("/ready", methods=["GET"]) def ready(): resp = jsonify("OK") resp.status_code = 200 return resp @app.route("/process", methods=["POST", "PATCH"]) def process(): response_payload = process_fn(request, final=request.method == "POST") return jsonify(response_payload) @app.route("/submit", methods=["POST"]) def submit(): nonlocal response_payload_iter response_payload_iter = peekable(process_fn(request)) return jsonify({"pickup_endpoint": "pickup"}) @app.route("/pickup", methods=["GET"]) def pickup(): print([*response_payload_iter]) response_payload = next(response_payload_iter) print("pl", response_payload) resp = jsonify({"a": 1}) resp.status_code = 200 return resp return app