Commit
·
d7a1342
1
Parent(s):
67fc68f
update_
Browse files
main.py
CHANGED
@@ -66,10 +66,13 @@ try:
|
|
66 |
gensim_data_dir = os.path.join(cache_dir, 'gensim-data')
|
67 |
upload_dir = os.path.join(cache_dir, 'uploads')
|
68 |
ans_image_dir = os.path.join(cache_dir, 'ans_image')
|
|
|
69 |
|
70 |
# Create directories with correct permissions
|
71 |
-
for directory in [cache_dir, nltk_data_dir, gensim_data_dir, upload_dir, ans_image_dir]:
|
72 |
os.makedirs(directory, exist_ok=True)
|
|
|
|
|
73 |
except Exception as e:
|
74 |
print(f"Warning: Could not create cache directories: {e}")
|
75 |
# Fallback to temporary directories
|
@@ -78,6 +81,7 @@ except Exception as e:
|
|
78 |
gensim_data_dir = tempfile.mkdtemp(prefix='gensim_data_')
|
79 |
upload_dir = tempfile.mkdtemp(prefix='uploads_')
|
80 |
ans_image_dir = tempfile.mkdtemp(prefix='ans_image_')
|
|
|
81 |
|
82 |
# Set environment variables
|
83 |
os.environ['HF_HOME'] = cache_dir
|
@@ -280,6 +284,10 @@ def compute_marks():
|
|
280 |
processed_answers.append(ans)
|
281 |
answers = processed_answers
|
282 |
|
|
|
|
|
|
|
|
|
283 |
# Get files from the request
|
284 |
files = request.files.getlist('files[]')
|
285 |
if not files:
|
@@ -299,16 +307,24 @@ def compute_marks():
|
|
299 |
# Create student directory if it doesn't exist
|
300 |
student_dir = os.path.join(ans_image_dir, student_folder)
|
301 |
os.makedirs(student_dir, exist_ok=True)
|
|
|
302 |
|
303 |
# Save the file
|
304 |
filepath = os.path.join(student_dir, filename)
|
305 |
file.save(filepath)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
|
307 |
# Add to data structure
|
308 |
if student_folder not in data:
|
309 |
data[student_folder] = []
|
310 |
-
data[student_folder].append(
|
311 |
-
log_print(f"Saved file: {filepath}")
|
312 |
|
313 |
if not data:
|
314 |
log_print("No valid image files were found in the upload", "ERROR")
|
@@ -439,11 +455,12 @@ def allowed_file(filename, allowed_extensions):
|
|
439 |
def cleanup_temp_files():
|
440 |
try:
|
441 |
import shutil
|
442 |
-
temp_dirs = [ans_image_dir, upload_dir]
|
443 |
for directory in temp_dirs:
|
444 |
if os.path.exists(directory):
|
445 |
shutil.rmtree(directory)
|
446 |
os.makedirs(directory, exist_ok=True)
|
|
|
447 |
log_print("Successfully cleaned up temporary files")
|
448 |
except Exception as e:
|
449 |
log_print(f"Error cleaning up temporary files: {e}", "ERROR")
|
|
|
66 |
gensim_data_dir = os.path.join(cache_dir, 'gensim-data')
|
67 |
upload_dir = os.path.join(cache_dir, 'uploads')
|
68 |
ans_image_dir = os.path.join(cache_dir, 'ans_image')
|
69 |
+
htr_images_dir = os.path.join(cache_dir, 'images')
|
70 |
|
71 |
# Create directories with correct permissions
|
72 |
+
for directory in [cache_dir, nltk_data_dir, gensim_data_dir, upload_dir, ans_image_dir, htr_images_dir]:
|
73 |
os.makedirs(directory, exist_ok=True)
|
74 |
+
# Ensure directory has write permissions
|
75 |
+
os.chmod(directory, 0o777)
|
76 |
except Exception as e:
|
77 |
print(f"Warning: Could not create cache directories: {e}")
|
78 |
# Fallback to temporary directories
|
|
|
81 |
gensim_data_dir = tempfile.mkdtemp(prefix='gensim_data_')
|
82 |
upload_dir = tempfile.mkdtemp(prefix='uploads_')
|
83 |
ans_image_dir = tempfile.mkdtemp(prefix='ans_image_')
|
84 |
+
htr_images_dir = tempfile.mkdtemp(prefix='htr_images_')
|
85 |
|
86 |
# Set environment variables
|
87 |
os.environ['HF_HOME'] = cache_dir
|
|
|
284 |
processed_answers.append(ans)
|
285 |
answers = processed_answers
|
286 |
|
287 |
+
# Create HTR images directory if it doesn't exist
|
288 |
+
os.makedirs(htr_images_dir, exist_ok=True)
|
289 |
+
os.chmod(htr_images_dir, 0o777) # Ensure write permissions
|
290 |
+
|
291 |
# Get files from the request
|
292 |
files = request.files.getlist('files[]')
|
293 |
if not files:
|
|
|
307 |
# Create student directory if it doesn't exist
|
308 |
student_dir = os.path.join(ans_image_dir, student_folder)
|
309 |
os.makedirs(student_dir, exist_ok=True)
|
310 |
+
os.chmod(student_dir, 0o777) # Ensure write permissions
|
311 |
|
312 |
# Save the file
|
313 |
filepath = os.path.join(student_dir, filename)
|
314 |
file.save(filepath)
|
315 |
+
os.chmod(filepath, 0o666) # Ensure file is readable/writable
|
316 |
+
|
317 |
+
# Create symlink in HTR images directory
|
318 |
+
htr_filepath = os.path.join(htr_images_dir, f"{student_folder}_{filename}")
|
319 |
+
if os.path.exists(htr_filepath):
|
320 |
+
os.remove(htr_filepath)
|
321 |
+
os.symlink(filepath, htr_filepath)
|
322 |
|
323 |
# Add to data structure
|
324 |
if student_folder not in data:
|
325 |
data[student_folder] = []
|
326 |
+
data[student_folder].append(htr_filepath.replace("\\", "/"))
|
327 |
+
log_print(f"Saved file: {filepath} and linked to {htr_filepath}")
|
328 |
|
329 |
if not data:
|
330 |
log_print("No valid image files were found in the upload", "ERROR")
|
|
|
455 |
def cleanup_temp_files():
|
456 |
try:
|
457 |
import shutil
|
458 |
+
temp_dirs = [ans_image_dir, upload_dir, htr_images_dir]
|
459 |
for directory in temp_dirs:
|
460 |
if os.path.exists(directory):
|
461 |
shutil.rmtree(directory)
|
462 |
os.makedirs(directory, exist_ok=True)
|
463 |
+
os.chmod(directory, 0o777) # Ensure write permissions
|
464 |
log_print("Successfully cleaned up temporary files")
|
465 |
except Exception as e:
|
466 |
log_print(f"Error cleaning up temporary files: {e}", "ERROR")
|