Marthee commited on
Commit
fe36685
·
verified ·
1 Parent(s): 3776609

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -17
app.py CHANGED
@@ -6,6 +6,7 @@ from PIL import Image
6
  import cv2
7
  import numpy as np
8
  import pilecaps_adr
 
9
  import base64
10
  from db import dropbox_connect
11
  import cv2
@@ -98,26 +99,26 @@ def getInfo2toMeasure():
98
 
99
 
100
 
101
- @app.route('/getprojectnames/',methods=['GET'])
102
- def getprjnamesfromTestAPI():
103
- progress_updates = [] # Shared list to store progress
 
 
104
 
105
- def generate_progressProjnames():
106
- yield f"data: 10\n\n" # Initial progress
107
- # Call retrieveProjects and pass a callback to update the shared list
108
- prjnames,prjids=API.getPrjNames( progress_callback=lambda p: progress_updates.append(p))
109
- # Continuously yield progress updates from the shared list
110
 
111
- while progress_updates:
112
- progress = progress_updates.pop(0) # Get the next progress value
113
- yield f"data: {progress}\n\n"
114
- # Final progress and result
115
- yield f"data: 80\n\n"
116
- yield f"data: 100\n\n"
117
- result = json.dumps([prjnames,prjids])
118
- yield f"data: {result}\n\n"
119
- return Response(generate_progressProjnames(), content_type='text/event-stream', headers={"Cache-Control": "no-cache", "X-Accel-Buffering": "no"})
120
 
 
 
 
121
 
122
 
123
  @app.route('/getprojectparts/<jsdata>',methods=['GET'])
 
6
  import cv2
7
  import numpy as np
8
  import pilecaps_adr
9
+ import sys # Required for flushing output
10
  import base64
11
  from db import dropbox_connect
12
  import cv2
 
99
 
100
 
101
 
102
+ def generate_progressProjnames():
103
+ yield "data: 10\n\n"
104
+ sys.stdout.flush() # Force immediate send
105
+
106
+ prjnames, prjids = API.getPrjNames(progress_callback=lambda p: progress_updates.append(p))
107
 
108
+ while progress_updates:
109
+ progress = progress_updates.pop(0)
110
+ yield f"data: {progress}\n\n"
111
+ sys.stdout.flush()
 
112
 
113
+ yield "data: 80\n\n"
114
+ sys.stdout.flush()
115
+
116
+ yield "data: 100\n\n"
117
+ sys.stdout.flush()
 
 
 
 
118
 
119
+ result = json.dumps([prjnames, prjids])
120
+ yield f"data: {result}\n\n"
121
+ sys.stdout.flush()
122
 
123
 
124
  @app.route('/getprojectparts/<jsdata>',methods=['GET'])