From 8bfe9616012deab8f910e89b233ea819ec22c1c3 Mon Sep 17 00:00:00 2001 From: Alexander_Kabui Date: Thu, 9 Jan 2025 10:22:50 +0300 Subject: feat: Add streaming main endpoint. --- gn3/api/streaming.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gn3/api/streaming.py') diff --git a/gn3/api/streaming.py b/gn3/api/streaming.py index 7c9254a..6569ceb 100644 --- a/gn3/api/streaming.py +++ b/gn3/api/streaming.py @@ -1 +1,24 @@ """ File contains endpoint for computational streaming""" +import os +from flask import current_app +from flask import jsonify +from flask import Blueprint +from flask import request + +streaming = Blueprint("streaming", __name__) + + +@streaming.route("/stream/", methods=["GET"]) +def stream(identifier="output"): + """ This endpoints streams stdout from a file expects + the indetifier to be the file """ + output_file = os.path.join(current_app.config.get("TMPDIR"), + f"{identifier}.txt") + seek_position = int(request.args.get("peak", 0)) + with open(output_file, encoding="utf-8") as file_handler: + # read to the last position default to 0 + file_handler.seek(seek_position) + results = {"data": file_handler.readlines(), + "run_id": identifier, + "pointer": file_handler.tell()} + return jsonify(results) -- cgit 1.4.1