Scezui commited on
Commit
ee7e9d0
1 Parent(s): 6cde6a5

added the content editable and removed the whitespace delimiter and replaced it with getting the whole text

Browse files
Layoutlmv3_inference/__pycache__/annotate_image.cpython-311.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/annotate_image.cpython-311.pyc and b/Layoutlmv3_inference/__pycache__/annotate_image.cpython-311.pyc differ
 
Layoutlmv3_inference/__pycache__/inference_handler.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/inference_handler.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/inference_handler.cpython-310.pyc differ
 
Layoutlmv3_inference/__pycache__/ocr.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/ocr.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/ocr.cpython-310.pyc differ
 
Layoutlmv3_inference/inference_handler.py CHANGED
@@ -131,14 +131,14 @@ class ModelHandler(object):
131
 
132
  output_spans = []
133
  for span in spans:
134
- if len(span) == 1:
135
- output_span = {"text": span[0]['text'],
136
  "label": span[0]['label'],
137
  "words": [{
138
- 'id': span[0]['id'],
139
- 'box': span[0]['box'],
140
- 'text': span[0]['text']
141
- }],
142
  }
143
  else:
144
  output_span = {"text": ' '.join([entity['text'] for entity in span]),
@@ -148,7 +148,6 @@ class ModelHandler(object):
148
  'box': entity['box'],
149
  'text': entity['text']
150
  } for entity in span]
151
-
152
  }
153
  output_spans.append(output_span)
154
  docs.append({f'output': output_spans})
 
131
 
132
  output_spans = []
133
  for span in spans:
134
+ if span[0]['label'] in ['ITEMS', 'PRICE']:
135
+ output_span = {"text": ' '.join([entity['text'] for entity in span]) + '|',
136
  "label": span[0]['label'],
137
  "words": [{
138
+ 'id': entity['id'],
139
+ 'box': entity['box'],
140
+ 'text': entity['text']
141
+ } for entity in span]
142
  }
143
  else:
144
  output_span = {"text": ' '.join([entity['text'] for entity in span]),
 
148
  'box': entity['box'],
149
  'text': entity['text']
150
  } for entity in span]
 
151
  }
152
  output_spans.append(output_span)
153
  docs.append({f'output': output_spans})
Layoutlmv3_inference/ocr.py CHANGED
@@ -7,7 +7,6 @@ import requests
7
  import traceback
8
  import tempfile
9
 
10
- FLASK_DEBUG=1
11
  from PIL import Image
12
 
13
  def preprocess_image(image_path, max_file_size_mb=1, target_file_size_mb=0.5):
@@ -76,41 +75,8 @@ def enhance_txt(img, intensity_increase=20, bilateral_filter_diameter=9, bilater
76
  img = cv2.bilateralFilter(img, bilateral_filter_diameter, bilateral_filter_sigma_color, bilateral_filter_sigma_space)
77
 
78
  _, binary = cv2.threshold(blurred, threshold, 255, cv2.THRESH_BINARY)
 
79
 
80
- # Find contours in the edged image, keep only the largest ones, and initialize our screen contour
81
- contours, _ = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
82
- contours = sorted(contours, key = cv2.contourArea, reverse = True)[:5]
83
-
84
- # Initialize a variable to hold the screen contour
85
- screenContour = None
86
-
87
- # Loop over the contours
88
- for c in contours:
89
- # Approximate the contour
90
- peri = cv2.arcLength(c, True)
91
- approx = cv2.approxPolyDP(c, 0.02 * peri, True)
92
-
93
- # If our approximated contour has four points, then we can assume that we have found our screen
94
- if len(approx) == 4:
95
- screenContour = approx
96
- break
97
-
98
- # If no contour is found or the contour is small, use the whole image
99
- if screenContour is None or cv2.contourArea(screenContour) < 500:
100
- screenContour = np.array([[[0, 0]], [[w-1, 0]], [[w-1, h-1]], [[0, h-1]]])
101
-
102
- # Get the bounding rectangle around the contour
103
- x, y, w, h = cv2.boundingRect(screenContour)
104
-
105
- # Check if the bounding rectangle is within the image boundaries
106
- if x >= 0 and y >= 0 and x + w <= img.shape[1] and y + h <= img.shape[0]:
107
- # Crop the image using the bounding rectangle
108
- cropped_img = img[y:y+h, x:x+w]
109
- else:
110
- print("Bounding rectangle is out of image boundaries")
111
- cropped_img = img
112
-
113
- return cropped_img
114
 
115
  def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
116
  try:
@@ -126,7 +92,8 @@ def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
126
  url = "https://api.ocr.space/parse/image"
127
 
128
  # Define the API key and the language
129
- api_key = "K88232854988957" # Replace with your actual OCR Space API key
 
130
  language = "eng"
131
 
132
  # Save the preprocessed image
 
7
  import traceback
8
  import tempfile
9
 
 
10
  from PIL import Image
11
 
12
  def preprocess_image(image_path, max_file_size_mb=1, target_file_size_mb=0.5):
 
75
  img = cv2.bilateralFilter(img, bilateral_filter_diameter, bilateral_filter_sigma_color, bilateral_filter_sigma_space)
76
 
77
  _, binary = cv2.threshold(blurred, threshold, 255, cv2.THRESH_BINARY)
78
+ return binary
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
82
  try:
 
92
  url = "https://api.ocr.space/parse/image"
93
 
94
  # Define the API key and the language
95
+ # api_key = "K88232854988957" # Replace with your actual OCR Space API key
96
+ api_key = "K88232854988957"
97
  language = "eng"
98
 
99
  # Save the preprocessed image
Layoutlmv3_inference/ocr2.py ADDED
@@ -0,0 +1,233 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import pandas as pd
3
+ import cv2
4
+ import numpy as np
5
+ import json
6
+ import requests
7
+ import traceback
8
+ import tempfile
9
+
10
+ FLASK_DEBUG=1
11
+ from PIL import Image
12
+
13
+ def preprocess_image(image_path, max_file_size_mb=1, target_file_size_mb=0.5):
14
+ try:
15
+ # Read the image
16
+ image = cv2.imread(image_path)
17
+ # Enhance text
18
+ enhanced = enhance_txt(image)
19
+
20
+ # Save the enhanced image to a temporary file
21
+ temp_file_path = tempfile.NamedTemporaryFile(suffix='.jpg').name
22
+ cv2.imwrite(temp_file_path, enhanced)
23
+
24
+ # Check file size of the temporary file
25
+ file_size_mb = os.path.getsize(temp_file_path) / (1024 * 1024) # Convert to megabytes
26
+
27
+ while file_size_mb > max_file_size_mb:
28
+ print(f"File size ({file_size_mb} MB) exceeds the maximum allowed size ({max_file_size_mb} MB). Resizing the image.")
29
+ ratio = np.sqrt(target_file_size_mb / file_size_mb)
30
+ new_width = int(image.shape[1] * ratio)
31
+ new_height = int(image.shape[0] * ratio)
32
+
33
+ # Resize the image
34
+ enhanced = cv2.resize(enhanced, (new_width, new_height))
35
+
36
+ # Save the resized image to a temporary file
37
+ temp_file_path = tempfile.NamedTemporaryFile(suffix='.jpg').name
38
+ cv2.imwrite(temp_file_path, enhanced)
39
+
40
+ # Update file size
41
+ file_size_mb = os.path.getsize(temp_file_path) / (1024 * 1024)
42
+ print(f"New file size: ({file_size_mb} MB)")
43
+
44
+ # Return the final resized image
45
+ image_resized = cv2.imread(temp_file_path)
46
+ return image_resized
47
+
48
+ except Exception as e:
49
+ print(f"An error occurred in preprocess_image: {str(e)}")
50
+ return None
51
+
52
+
53
+ def enhance_txt(img, intensity_increase=20, bilateral_filter_diameter=9, bilateral_filter_sigma_color=75, bilateral_filter_sigma_space=75):
54
+ # Get the width and height of the image
55
+ w = img.shape[1]
56
+ h = img.shape[0]
57
+ w1 = int(w * 0.05)
58
+ w2 = int(w * 0.95)
59
+ h1 = int(h * 0.05)
60
+ h2 = int(h * 0.95)
61
+ ROI = img[h1:h2, w1:w2] # 95% of the center of the image
62
+ threshold = np.mean(ROI) * 0.88 # % of average brightness
63
+
64
+ # Convert image to grayscale
65
+ grayscale_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
66
+
67
+ # Apply Gaussian blur
68
+ blurred = cv2.GaussianBlur(grayscale_img, (1, 1), 0)
69
+
70
+ edged = 255 - cv2.Canny(blurred, 100, 150, apertureSize=7)
71
+
72
+ # Increase intensity by adding a constant value
73
+ img = np.clip(img + intensity_increase, 0, 255).astype(np.uint8)
74
+
75
+ # Apply bilateral filter to reduce noise
76
+ img = cv2.bilateralFilter(img, bilateral_filter_diameter, bilateral_filter_sigma_color, bilateral_filter_sigma_space)
77
+
78
+ _, binary = cv2.threshold(blurred, threshold, 255, cv2.THRESH_BINARY)
79
+
80
+ # Find contours in the edged image, keep only the largest ones, and initialize our screen contour
81
+ contours, _ = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
82
+ contours = sorted(contours, key = cv2.contourArea, reverse = True)[:5]
83
+
84
+ # Initialize a variable to hold the screen contour
85
+ screenContour = None
86
+
87
+ # Loop over the contours
88
+ for c in contours:
89
+ # Approximate the contour
90
+ peri = cv2.arcLength(c, True)
91
+ approx = cv2.approxPolyDP(c, 0.02 * peri, True)
92
+
93
+ # If our approximated contour has four points, then we can assume that we have found our screen
94
+ if len(approx) == 4:
95
+ screenContour = approx
96
+ break
97
+
98
+ # If no contour is found or the contour is small, use the whole image
99
+ if screenContour is None or cv2.contourArea(screenContour) < 500:
100
+ screenContour = np.array([[[0, 0]], [[w-1, 0]], [[w-1, h-1]], [[0, h-1]]])
101
+
102
+ # Get the bounding rectangle around the contour
103
+ x, y, w, h = cv2.boundingRect(screenContour)
104
+
105
+ # Check if the bounding rectangle is within the image boundaries
106
+ if x >= 0 and y >= 0 and x + w <= img.shape[1] and y + h <= img.shape[0]:
107
+ # Crop the image using the bounding rectangle
108
+ cropped_img = img[y:y+h, x:x+w]
109
+ else:
110
+ print("Bounding rectangle is out of image boundaries")
111
+ cropped_img = img
112
+
113
+ return cropped_img
114
+
115
+ def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
116
+ try:
117
+ image_name = os.path.basename(image_path)
118
+ image_name = image_name[:image_name.find('.')]
119
+
120
+ # Create the "temp" folder if it doesn't exist
121
+ temp_folder = "static/temp"
122
+ if not os.path.exists(temp_folder):
123
+ os.makedirs(temp_folder)
124
+
125
+ # Define the OCR API endpoint
126
+ url = "https://api.ocr.space/parse/image"
127
+
128
+ # Define the API key and the language
129
+ api_key = "K88232854988957" # Replace with your actual OCR Space API key
130
+ language = "eng"
131
+
132
+ # Save the preprocessed image
133
+ cv2.imwrite(os.path.join(temp_folder, f"{image_name}_preprocessed.jpg"), preprocessed_image)
134
+
135
+ # Open the preprocessed image file as binary
136
+ with open(os.path.join(temp_folder, f"{image_name}_preprocessed.jpg"), "rb") as f:
137
+ # Define the payload for the API request
138
+ payload = {
139
+ "apikey": api_key,
140
+ "language": language,
141
+ "isOverlayRequired": True,
142
+ "OCREngine": 2
143
+ }
144
+ # Define the file parameter for the API request
145
+ file = {
146
+ "file": f
147
+ }
148
+ # Send the POST request to the OCR API
149
+ response = requests.post(url, data=payload, files=file)
150
+
151
+ # Check the status code of the response
152
+ if response.status_code == 200:
153
+ # Parse the JSON response
154
+ result = response.json()
155
+ print("---JSON file saved")
156
+ # Save the OCR result as JSON
157
+ with open(os.path.join(temp_folder, f"{image_name}_ocr.json"), 'w') as f:
158
+ json.dump(result, f)
159
+
160
+ return os.path.join(temp_folder, f"{image_name}_ocr.json")
161
+ else:
162
+ # Print the error message
163
+ print("Error: " + response.text)
164
+ return None
165
+
166
+ except Exception as e:
167
+ print(f"An error occurred during OCR request: {str(e)}")
168
+ return None
169
+
170
+ def clean_tesseract_output(json_output_path):
171
+ try:
172
+ with open(json_output_path, 'r') as json_file:
173
+ data = json.load(json_file)
174
+
175
+ lines = data['ParsedResults'][0]['TextOverlay']['Lines']
176
+
177
+ words = []
178
+ for line in lines:
179
+ for word_info in line['Words']:
180
+ word = {}
181
+ origin_box = [
182
+ word_info['Left'],
183
+ word_info['Top'],
184
+ word_info['Left'] + word_info['Width'],
185
+ word_info['Top'] + word_info['Height']
186
+ ]
187
+
188
+ word['word_text'] = word_info['WordText']
189
+ word['word_box'] = origin_box
190
+ words.append(word)
191
+
192
+ return words
193
+ except (KeyError, IndexError, FileNotFoundError, json.JSONDecodeError) as e:
194
+ print(f"Error cleaning Tesseract output: {str(e)}")
195
+ return None
196
+
197
+ def prepare_batch_for_inference(image_paths):
198
+ # print("my_function was called")
199
+ # traceback.print_stack() # This will print the stack trace
200
+ print(f"Number of images to process: {len(image_paths)}") # Print the total number of images to be processed
201
+ print("1. Preparing for Inference")
202
+ tsv_output_paths = []
203
+
204
+ inference_batch = dict()
205
+ print("2. Starting Preprocessing")
206
+ # Ensure that the image is only 1
207
+ for image_path in image_paths:
208
+ print(f"Processing the image: {image_path}") # Print the image being processed
209
+ print("3. Preprocessing the Receipt")
210
+ preprocessed_image = preprocess_image(image_path)
211
+ if preprocessed_image is not None:
212
+ print("4. Preprocessing done. Running OCR")
213
+ json_output_path = run_tesseract_on_preprocessed_image(preprocessed_image, image_path)
214
+ print("5. OCR Complete")
215
+ if json_output_path:
216
+ tsv_output_paths.append(json_output_path)
217
+
218
+ print("6. Preprocessing and OCR Done")
219
+ # clean_outputs is a list of lists
220
+ clean_outputs = [clean_tesseract_output(tsv_path) for tsv_path in tsv_output_paths]
221
+ print("7. Cleaned OCR output")
222
+ word_lists = [[word['word_text'] for word in clean_output] for clean_output in clean_outputs]
223
+ print("8. Word List Created")
224
+ boxes_lists = [[word['word_box'] for word in clean_output] for clean_output in clean_outputs]
225
+ print("9. Box List Created")
226
+ inference_batch = {
227
+ "image_path": image_paths,
228
+ "bboxes": boxes_lists,
229
+ "words": word_lists
230
+ }
231
+
232
+ print("10. Prepared for Inference Batch")
233
+ return inference_batch
app.py CHANGED
@@ -1,6 +1,6 @@
1
 
2
  # Dependencies
3
- from flask import Flask, request, render_template, jsonify, send_file, redirect, url_for, flash, send_from_directory, session
4
  from PIL import Image, ImageDraw
5
  import torch
6
  from transformers import LayoutLMv2ForTokenClassification, LayoutLMv3Tokenizer
@@ -15,7 +15,6 @@ import sys
15
  from fastai import *
16
  from fastai.vision import *
17
  from fastai.metrics import error_rate
18
- from fastai.learner import load_learner
19
  from werkzeug.utils import secure_filename
20
  import pandas as pd
21
  from itertools import zip_longest
@@ -25,7 +24,6 @@ import signal
25
  import shutil
26
  from datetime import datetime
27
  import zipfile
28
- from pathlib import Path
29
 
30
  # LLM
31
  import argparse
@@ -104,24 +102,36 @@ def upload_files():
104
 
105
 
106
  def make_predictions(image_paths):
107
- model_path = Path('model/export')
108
- learner = load_learner(model_path)
109
-
110
- predictions = []
 
 
 
 
 
 
111
 
112
- for image_path in image_paths:
113
- # Open the image using fastai's open_image function
114
- image = open_image(image_path)
115
 
116
- # Make a prediction
117
- prediction_class, prediction_idx, probabilities = learner.predict(image)
118
 
119
- # If you want the predicted class as a string
120
- predicted_class_str = str(prediction_class)
121
-
122
- predictions.append(predicted_class_str)
 
 
123
 
124
- return predictions
 
 
 
 
125
 
126
 
127
  @app.route('/predict/<filenames>', methods=['GET', 'POST'])
@@ -222,10 +232,10 @@ def stop_inference():
222
  logging.error(f"Error terminating run_inference process: {err}")
223
 
224
  # Define a function to replace all symbols with periods
225
- def replace_symbols_with_period(value):
226
- # return re.sub(r'\W+', '.', str(value))
227
- return value.replace(',', '.')
228
-
229
 
230
 
231
  @app.route('/create_csv', methods=['GET'])
@@ -257,8 +267,13 @@ def create_csv():
257
  label_texts = {}
258
  for item in all_data:
259
  label = item['label']
260
- text = item['text']
261
- label_texts[label] = text
 
 
 
 
 
262
 
263
  # Writing data to CSV file with ordered columns
264
  csv_file_path = os.path.join(output_folder_path, os.path.splitext(filename)[0] + '.csv')
@@ -268,18 +283,20 @@ def create_csv():
268
  csv_writer.writeheader()
269
 
270
  # Constructing rows for the CSV file
271
- items = label_texts.get('ITEMS', '').split()
272
- prices = label_texts.get('PRICE', '').split()
273
- max_length = max(len(items), len(prices))
274
  for i in range(max_length):
275
  row_data = {}
276
  for label in column_order:
277
- # Use get() with default '' to handle missing labels gracefully
278
- row_data[label] = label_texts.get(label, '')
279
- # Check if items and prices are separated by space
280
- if i < len(items) and i < len(prices):
281
- row_data['ITEMS'] = items[i]
282
- row_data['PRICE'] = prices[i]
 
 
 
 
283
  csv_writer.writerow(row_data)
284
 
285
  # Combining contents of CSV files into a single CSV file
@@ -305,6 +322,10 @@ def create_csv():
305
  print(f"An error occurred in create_csv: {str(e)}")
306
  return None
307
 
 
 
 
 
308
  except FileNotFoundError as e:
309
  print(f"File not found error: {str(e)}")
310
  return jsonify({'error': 'File not found.'}), 404
@@ -322,17 +343,16 @@ def create_csv():
322
  def get_data():
323
  return send_from_directory('static/temp/inferenced','output.csv', as_attachment=False)
324
 
325
- from flask import jsonify
326
 
327
- @app.route('/download_csv', methods=['GET'])
328
  def download_csv():
329
  try:
330
- output_file_path = r"static/temp/inferenced/output.csv" # path to output CSV file
331
- # Check if the file exists
332
- if os.path.exists(output_file_path):
333
- return send_file(output_file_path, as_attachment=True, download_name='output.csv')
334
- else:
335
- return jsonify({"error": "CSV file not found"})
336
  except Exception as e:
337
  return jsonify({"error": f"Download failed: {str(e)}"})
338
 
 
1
 
2
  # Dependencies
3
+ from flask import Flask, request, render_template, jsonify, send_file, redirect, url_for, flash, send_from_directory, session, Response
4
  from PIL import Image, ImageDraw
5
  import torch
6
  from transformers import LayoutLMv2ForTokenClassification, LayoutLMv3Tokenizer
 
15
  from fastai import *
16
  from fastai.vision import *
17
  from fastai.metrics import error_rate
 
18
  from werkzeug.utils import secure_filename
19
  import pandas as pd
20
  from itertools import zip_longest
 
24
  import shutil
25
  from datetime import datetime
26
  import zipfile
 
27
 
28
  # LLM
29
  import argparse
 
102
 
103
 
104
  def make_predictions(image_paths):
105
+ temp = None
106
+ try:
107
+ # For Windows OS
108
+ temp = pathlib.PosixPath # Save the original state
109
+ pathlib.PosixPath = pathlib.WindowsPath # Change to WindowsPath temporarily
110
+
111
+ model_path = Path(r'model/export')
112
+ learner = load_learner(model_path)
113
+
114
+ predictions = []
115
 
116
+ for image_path in image_paths:
117
+ # Open the image using fastai's open_image function
118
+ image = open_image(image_path)
119
 
120
+ # Make a prediction
121
+ prediction_class, prediction_idx, probabilities = learner.predict(image)
122
 
123
+ # If you want the predicted class as a string
124
+ predicted_class_str = str(prediction_class)
125
+
126
+ predictions.append(predicted_class_str)
127
+
128
+ return predictions
129
 
130
+ except Exception as e:
131
+ return {"error in make_predictions": str(e)}
132
+
133
+ finally:
134
+ pathlib.PosixPath = temp
135
 
136
 
137
  @app.route('/predict/<filenames>', methods=['GET', 'POST'])
 
232
  logging.error(f"Error terminating run_inference process: {err}")
233
 
234
  # Define a function to replace all symbols with periods
235
+ def replace_symbols_with_period(text):
236
+ # Replace all non-alphanumeric characters with a period
237
+ text = re.sub(r'\W+', '.', text)
238
+ return text
239
 
240
 
241
  @app.route('/create_csv', methods=['GET'])
 
267
  label_texts = {}
268
  for item in all_data:
269
  label = item['label']
270
+ text = item['text'].replace('|', '') # Strip the pipe character
271
+ if label == 'VATTAX' or label == 'TOTAL':
272
+ text = replace_symbols_with_period(text.replace(' ', '')) # Remove spaces and replace symbols with periods
273
+ if label in label_texts:
274
+ label_texts[label].append(text)
275
+ else:
276
+ label_texts[label] = [text]
277
 
278
  # Writing data to CSV file with ordered columns
279
  csv_file_path = os.path.join(output_folder_path, os.path.splitext(filename)[0] + '.csv')
 
283
  csv_writer.writeheader()
284
 
285
  # Constructing rows for the CSV file
286
+ max_length = max(len(v) for v in label_texts.values())
 
 
287
  for i in range(max_length):
288
  row_data = {}
289
  for label in column_order:
290
+ if label in label_texts: # Check if the label exists in the dictionary
291
+ if label == 'ITEMS' or label == 'PRICE':
292
+ if i < len(label_texts.get(label, [])):
293
+ row_data[label] = label_texts[label][i]
294
+ else:
295
+ row_data[label] = ''
296
+ else:
297
+ row_data[label] = label_texts[label][0]
298
+ else:
299
+ row_data[label] = '' # If the label does not exist, set the value to an empty string
300
  csv_writer.writerow(row_data)
301
 
302
  # Combining contents of CSV files into a single CSV file
 
322
  print(f"An error occurred in create_csv: {str(e)}")
323
  return None
324
 
325
+ except Exception as e:
326
+ print(f"An error occurred in create_csv: {str(e)}")
327
+ return None
328
+
329
  except FileNotFoundError as e:
330
  print(f"File not found error: {str(e)}")
331
  return jsonify({'error': 'File not found.'}), 404
 
343
  def get_data():
344
  return send_from_directory('static/temp/inferenced','output.csv', as_attachment=False)
345
 
 
346
 
347
+ @app.route('/download_csv', methods=['POST'])
348
  def download_csv():
349
  try:
350
+ csv_data = request.data.decode('utf-8') # Get the CSV data from the request
351
+ return Response(
352
+ csv_data,
353
+ mimetype="text/csv",
354
+ headers={"Content-disposition":
355
+ "attachment; filename=output.csv"})
356
  except Exception as e:
357
  return jsonify({"error": f"Download failed: {str(e)}"})
358
 
inferenced/csv_files/Output_0.csv DELETED
@@ -1,3 +0,0 @@
1
- RECEIPTNUMBER,MERCHANTNAME,MERCHANTADDRESS,TRANSACTIONDATE,TRANSACTIONTIME,ITEMS,PRICE,TOTAL,VATTAX
2
- # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,NESTEALEMICET500ML,35.000,76.00,8.14
3
- # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,ArlaGStrwbryT200ml,41.000,76.00,8.14
 
 
 
 
inferenced/output.csv DELETED
@@ -1,3 +0,0 @@
1
- RECEIPTNUMBER,MERCHANTNAME,MERCHANTADDRESS,TRANSACTIONDATE,TRANSACTIONTIME,ITEMS,PRICE,TOTAL,VATTAX
2
- # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,NESTEALEMICET500ML,35.000,76.00,8.14
3
- # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,ArlaGStrwbryT200ml,41.000,76.00,8.14
 
 
 
 
log/error_output.log CHANGED
@@ -645,3 +645,498 @@ TypeError: The view function for 'create_csv' did not return a valid response. T
645
  2024-05-14 23:36:06,565 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/site.js HTTP/1.1" 304 -
646
  2024-05-14 23:36:08,126 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:08] "GET /static/images/favicon.ico HTTP/1.1" 304 -
647
  2024-05-14 23:36:39,815 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\app.py', reloading
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
645
  2024-05-14 23:36:06,565 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/site.js HTTP/1.1" 304 -
646
  2024-05-14 23:36:08,126 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:08] "GET /static/images/favicon.ico HTTP/1.1" 304 -
647
  2024-05-14 23:36:39,815 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\app.py', reloading
648
+ 2024-05-15 15:06:02,225 ERROR app 'NoneType' object is not iterable
649
+ 2024-05-15 15:06:02,238 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:02] "GET /run_inference HTTP/1.1" 302 -
650
+ 2024-05-15 15:06:02,287 ERROR app Exception on /create_csv [GET]
651
+ Traceback (most recent call last):
652
+ File "C:\Users\Ayoo\anaconda3\lib\site-packages\flask\app.py", line 2525, in wsgi_app
653
+ response = self.full_dispatch_request()
654
+ File "C:\Users\Ayoo\anaconda3\lib\site-packages\flask\app.py", line 1823, in full_dispatch_request
655
+ return self.finalize_request(rv)
656
+ File "C:\Users\Ayoo\anaconda3\lib\site-packages\flask\app.py", line 1842, in finalize_request
657
+ response = self.make_response(rv)
658
+ File "C:\Users\Ayoo\anaconda3\lib\site-packages\flask\app.py", line 2134, in make_response
659
+ raise TypeError(
660
+ TypeError: The view function for 'create_csv' did not return a valid response. The function either returned None or ended without a return statement.
661
+ 2024-05-15 15:06:02,300 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:02] "GET /create_csv HTTP/1.1" 500 -
662
+ 2024-05-15 15:06:03,126 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:03] "GET /get_data HTTP/1.1" 404 -
663
+ 2024-05-15 15:06:03,142 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:03] "GET /static/temp/img_display/sample1_grace.jpg_inference.jpg HTTP/1.1" 404 -
664
+ 2024-05-15 15:06:40,142 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET / HTTP/1.1" 200 -
665
+ 2024-05-15 15:06:40,208 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /styles.css HTTP/1.1" 404 -
666
+ 2024-05-15 15:06:40,227 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/css/style.css HTTP/1.1" 304 -
667
+ 2024-05-15 15:06:40,235 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/css/color.css HTTP/1.1" 304 -
668
+ 2024-05-15 15:06:40,243 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
669
+ 2024-05-15 15:06:40,247 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/css/animate.css HTTP/1.1" 304 -
670
+ 2024-05-15 15:06:40,264 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/images/logo.png HTTP/1.1" 304 -
671
+ 2024-05-15 15:06:40,280 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
672
+ 2024-05-15 15:06:40,283 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/wow.min.js HTTP/1.1" 304 -
673
+ 2024-05-15 15:06:40,287 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
674
+ 2024-05-15 15:06:40,292 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
675
+ 2024-05-15 15:06:40,295 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
676
+ 2024-05-15 15:06:40,319 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
677
+ 2024-05-15 15:06:40,335 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
678
+ 2024-05-15 15:06:40,340 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
679
+ 2024-05-15 15:06:40,348 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
680
+ 2024-05-15 15:06:40,366 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
681
+ 2024-05-15 15:06:40,371 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
682
+ 2024-05-15 15:06:40,374 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
683
+ 2024-05-15 15:06:40,385 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:40] "GET /static/js/site.js HTTP/1.1" 304 -
684
+ 2024-05-15 15:06:43,388 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:43] "GET /static/images/favicon.ico HTTP/1.1" 304 -
685
+ 2024-05-15 15:06:55,940 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:55] "POST /upload HTTP/1.1" 302 -
686
+ 2024-05-15 15:06:56,852 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /predict/%5B'sample1_grace.jpg'%5D HTTP/1.1" 200 -
687
+ 2024-05-15 15:06:56,915 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /predict/css/animate.css HTTP/1.1" 404 -
688
+ 2024-05-15 15:06:56,917 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /static/css/color.css HTTP/1.1" 304 -
689
+ 2024-05-15 15:06:56,918 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /static/css/style.css HTTP/1.1" 304 -
690
+ 2024-05-15 15:06:56,920 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
691
+ 2024-05-15 15:06:56,953 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /static/images/logo.png HTTP/1.1" 304 -
692
+ 2024-05-15 15:06:56,954 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:56] "GET /static/temp/img_display/sample1_grace.jpg HTTP/1.1" 200 -
693
+ 2024-05-15 15:06:57,035 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
694
+ 2024-05-15 15:06:57,042 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/images/avatar.gif HTTP/1.1" 304 -
695
+ 2024-05-15 15:06:57,053 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/wow.min.js HTTP/1.1" 304 -
696
+ 2024-05-15 15:06:57,057 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
697
+ 2024-05-15 15:06:57,069 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
698
+ 2024-05-15 15:06:57,070 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
699
+ 2024-05-15 15:06:57,099 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
700
+ 2024-05-15 15:06:57,107 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
701
+ 2024-05-15 15:06:57,114 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
702
+ 2024-05-15 15:06:57,135 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
703
+ 2024-05-15 15:06:57,137 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
704
+ 2024-05-15 15:06:57,148 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
705
+ 2024-05-15 15:06:57,150 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/js/site.js HTTP/1.1" 304 -
706
+ 2024-05-15 15:06:57,307 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:06:57] "GET /static/images/favicon.ico HTTP/1.1" 304 -
707
+ 2024-05-15 15:07:46,204 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:07:46] "GET /run_inference HTTP/1.1" 302 -
708
+ 2024-05-15 15:07:46,233 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:07:46] "GET /create_csv HTTP/1.1" 204 -
709
+ 2024-05-15 15:07:46,800 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:07:46] "GET /get_data HTTP/1.1" 200 -
710
+ 2024-05-15 15:07:46,804 INFO werkzeug 127.0.0.1 - - [15/May/2024 15:07:46] "GET /static/temp/img_display/sample1_grace.jpg_inference.jpg HTTP/1.1" 200 -
711
+ 2024-05-15 16:06:00,097 ERROR app 'NoneType' object is not iterable
712
+ 2024-05-15 16:06:00,108 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:00] "GET /run_inference HTTP/1.1" 302 -
713
+ 2024-05-15 16:06:00,179 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:00] "GET /create_csv HTTP/1.1" 500 -
714
+ 2024-05-15 16:06:00,738 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:00] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 404 -
715
+ 2024-05-15 16:06:00,771 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:00] "GET /get_data HTTP/1.1" 404 -
716
+ 2024-05-15 16:06:24,108 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET / HTTP/1.1" 200 -
717
+ 2024-05-15 16:06:24,171 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/css/style.css HTTP/1.1" 304 -
718
+ 2024-05-15 16:06:24,188 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /styles.css HTTP/1.1" 404 -
719
+ 2024-05-15 16:06:24,206 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/css/color.css HTTP/1.1" 304 -
720
+ 2024-05-15 16:06:24,212 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
721
+ 2024-05-15 16:06:24,222 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/css/animate.css HTTP/1.1" 304 -
722
+ 2024-05-15 16:06:24,246 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
723
+ 2024-05-15 16:06:24,253 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/images/logo.png HTTP/1.1" 304 -
724
+ 2024-05-15 16:06:24,264 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
725
+ 2024-05-15 16:06:24,275 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/wow.min.js HTTP/1.1" 304 -
726
+ 2024-05-15 16:06:24,277 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
727
+ 2024-05-15 16:06:24,292 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
728
+ 2024-05-15 16:06:24,301 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
729
+ 2024-05-15 16:06:24,311 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
730
+ 2024-05-15 16:06:24,325 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
731
+ 2024-05-15 16:06:24,326 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
732
+ 2024-05-15 16:06:24,344 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
733
+ 2024-05-15 16:06:24,361 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
734
+ 2024-05-15 16:06:24,364 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
735
+ 2024-05-15 16:06:24,377 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:24] "GET /static/js/site.js HTTP/1.1" 304 -
736
+ 2024-05-15 16:06:27,144 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:27] "GET /static/images/favicon.ico HTTP/1.1" 304 -
737
+ 2024-05-15 16:06:33,925 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:33] "POST /upload HTTP/1.1" 302 -
738
+ 2024-05-15 16:06:34,628 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /predict/%5B'sample_coop.jpg'%5D HTTP/1.1" 200 -
739
+ 2024-05-15 16:06:34,679 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/css/style.css HTTP/1.1" 304 -
740
+ 2024-05-15 16:06:34,703 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /predict/css/animate.css HTTP/1.1" 404 -
741
+ 2024-05-15 16:06:34,706 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/css/color.css HTTP/1.1" 304 -
742
+ 2024-05-15 16:06:34,707 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
743
+ 2024-05-15 16:06:34,758 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/temp/img_display/sample_coop.jpg HTTP/1.1" 200 -
744
+ 2024-05-15 16:06:34,761 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/images/logo.png HTTP/1.1" 304 -
745
+ 2024-05-15 16:06:34,786 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/images/avatar.gif HTTP/1.1" 304 -
746
+ 2024-05-15 16:06:34,800 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
747
+ 2024-05-15 16:06:34,842 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/wow.min.js HTTP/1.1" 304 -
748
+ 2024-05-15 16:06:34,855 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
749
+ 2024-05-15 16:06:34,864 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
750
+ 2024-05-15 16:06:34,900 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
751
+ 2024-05-15 16:06:34,916 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
752
+ 2024-05-15 16:06:34,926 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
753
+ 2024-05-15 16:06:34,928 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
754
+ 2024-05-15 16:06:34,939 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
755
+ 2024-05-15 16:06:34,950 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
756
+ 2024-05-15 16:06:34,956 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
757
+ 2024-05-15 16:06:34,963 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:34] "GET /static/js/site.js HTTP/1.1" 304 -
758
+ 2024-05-15 16:06:35,145 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:06:35] "GET /static/images/favicon.ico HTTP/1.1" 304 -
759
+ 2024-05-15 16:09:26,641 ERROR app 'NoneType' object is not iterable
760
+ 2024-05-15 16:09:26,648 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:26] "GET /run_inference HTTP/1.1" 302 -
761
+ 2024-05-15 16:09:26,722 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:26] "GET /create_csv HTTP/1.1" 500 -
762
+ 2024-05-15 16:09:28,112 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:28] "GET /get_data HTTP/1.1" 404 -
763
+ 2024-05-15 16:09:28,136 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:28] "GET /static/temp/img_display/sample_coop.jpg_inference.jpg HTTP/1.1" 404 -
764
+ 2024-05-15 16:09:38,490 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET / HTTP/1.1" 200 -
765
+ 2024-05-15 16:09:38,543 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/css/style.css HTTP/1.1" 304 -
766
+ 2024-05-15 16:09:38,555 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/css/color.css HTTP/1.1" 304 -
767
+ 2024-05-15 16:09:38,577 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /styles.css HTTP/1.1" 404 -
768
+ 2024-05-15 16:09:38,583 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
769
+ 2024-05-15 16:09:38,591 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/css/animate.css HTTP/1.1" 304 -
770
+ 2024-05-15 16:09:38,617 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
771
+ 2024-05-15 16:09:38,618 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
772
+ 2024-05-15 16:09:38,619 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/wow.min.js HTTP/1.1" 304 -
773
+ 2024-05-15 16:09:38,624 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/images/logo.png HTTP/1.1" 304 -
774
+ 2024-05-15 16:09:38,659 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
775
+ 2024-05-15 16:09:38,664 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
776
+ 2024-05-15 16:09:38,682 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
777
+ 2024-05-15 16:09:38,692 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
778
+ 2024-05-15 16:09:38,713 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
779
+ 2024-05-15 16:09:38,728 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
780
+ 2024-05-15 16:09:38,747 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
781
+ 2024-05-15 16:09:38,748 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
782
+ 2024-05-15 16:09:38,760 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
783
+ 2024-05-15 16:09:38,776 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:38] "GET /static/js/site.js HTTP/1.1" 304 -
784
+ 2024-05-15 16:09:40,195 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:40] "GET /static/images/favicon.ico HTTP/1.1" 304 -
785
+ 2024-05-15 16:09:46,302 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:46] "POST /upload HTTP/1.1" 302 -
786
+ 2024-05-15 16:09:47,292 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /predict/%5B'sample1_711.jpg'%5D HTTP/1.1" 200 -
787
+ 2024-05-15 16:09:47,367 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/css/color.css HTTP/1.1" 304 -
788
+ 2024-05-15 16:09:47,367 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/css/style.css HTTP/1.1" 304 -
789
+ 2024-05-15 16:09:47,376 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
790
+ 2024-05-15 16:09:47,381 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /predict/css/animate.css HTTP/1.1" 404 -
791
+ 2024-05-15 16:09:47,401 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/images/logo.png HTTP/1.1" 304 -
792
+ 2024-05-15 16:09:47,409 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/temp/img_display/sample1_711.jpg HTTP/1.1" 200 -
793
+ 2024-05-15 16:09:47,540 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
794
+ 2024-05-15 16:09:47,558 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/images/avatar.gif HTTP/1.1" 304 -
795
+ 2024-05-15 16:09:47,572 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
796
+ 2024-05-15 16:09:47,576 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/wow.min.js HTTP/1.1" 304 -
797
+ 2024-05-15 16:09:47,586 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
798
+ 2024-05-15 16:09:47,592 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
799
+ 2024-05-15 16:09:47,613 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
800
+ 2024-05-15 16:09:47,614 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
801
+ 2024-05-15 16:09:47,618 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
802
+ 2024-05-15 16:09:47,634 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
803
+ 2024-05-15 16:09:47,653 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
804
+ 2024-05-15 16:09:47,668 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
805
+ 2024-05-15 16:09:47,696 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/js/site.js HTTP/1.1" 304 -
806
+ 2024-05-15 16:09:47,871 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:09:47] "GET /static/images/favicon.ico HTTP/1.1" 304 -
807
+ 2024-05-15 16:12:24,808 ERROR app 'NoneType' object is not iterable
808
+ 2024-05-15 16:12:24,810 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:12:24] "GET /run_inference HTTP/1.1" 302 -
809
+ 2024-05-15 16:12:24,858 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:12:24] "GET /create_csv HTTP/1.1" 500 -
810
+ 2024-05-15 16:12:26,096 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:12:26] "GET /get_data HTTP/1.1" 404 -
811
+ 2024-05-15 16:12:26,098 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:12:26] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 404 -
812
+ 2024-05-15 16:13:29,777 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:29] "GET /predict/%5B'sample1_711.jpg'%5D HTTP/1.1" 200 -
813
+ 2024-05-15 16:13:29,817 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:29] "GET /static/css/style.css HTTP/1.1" 200 -
814
+ 2024-05-15 16:13:29,835 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:29] "GET /predict/css/animate.css HTTP/1.1" 404 -
815
+ 2024-05-15 16:13:29,839 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:29] "GET /static/css/font-awesome.min.css HTTP/1.1" 200 -
816
+ 2024-05-15 16:13:29,841 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:29] "GET /static/css/color.css HTTP/1.1" 200 -
817
+ 2024-05-15 16:13:30,812 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:30] "GET /static/temp/img_display/sample1_711.jpg HTTP/1.1" 200 -
818
+ 2024-05-15 16:13:30,816 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:30] "GET /static/images/logo.png HTTP/1.1" 200 -
819
+ 2024-05-15 16:13:30,878 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:30] "GET /static/images/avatar.gif HTTP/1.1" 200 -
820
+ 2024-05-15 16:13:31,006 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 200 -
821
+ 2024-05-15 16:13:31,023 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/wow.min.js HTTP/1.1" 200 -
822
+ 2024-05-15 16:13:31,038 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/featherlight.min.js HTTP/1.1" 200 -
823
+ 2024-05-15 16:13:31,049 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 200 -
824
+ 2024-05-15 16:13:31,062 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 200 -
825
+ 2024-05-15 16:13:31,077 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 200 -
826
+ 2024-05-15 16:13:31,090 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/jquery.easing.min.js HTTP/1.1" 200 -
827
+ 2024-05-15 16:13:31,100 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 200 -
828
+ 2024-05-15 16:13:31,119 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 200 -
829
+ 2024-05-15 16:13:31,130 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/images-loaded.min.js HTTP/1.1" 200 -
830
+ 2024-05-15 16:13:31,147 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/lightbox.min.js HTTP/1.1" 200 -
831
+ 2024-05-15 16:13:31,159 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:31] "GET /static/js/site.js HTTP/1.1" 200 -
832
+ 2024-05-15 16:13:36,515 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:13:36] "GET /static/images/favicon.ico HTTP/1.1" 200 -
833
+ 2024-05-15 16:14:13,613 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:13] "GET /run_inference HTTP/1.1" 302 -
834
+ 2024-05-15 16:14:13,657 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:13] "GET /create_csv HTTP/1.1" 204 -
835
+ 2024-05-15 16:14:15,163 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:15] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 404 -
836
+ 2024-05-15 16:14:15,186 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:15] "GET /get_data HTTP/1.1" 200 -
837
+ 2024-05-15 16:14:45,702 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:45] "GET /predict/%5B'sample1_711.jpg'%5D HTTP/1.1" 200 -
838
+ 2024-05-15 16:14:45,763 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:45] "GET /predict/css/animate.css HTTP/1.1" 404 -
839
+ 2024-05-15 16:14:45,767 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:45] "GET /static/css/style.css HTTP/1.1" 200 -
840
+ 2024-05-15 16:14:45,768 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:45] "GET /static/css/font-awesome.min.css HTTP/1.1" 200 -
841
+ 2024-05-15 16:14:45,768 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:45] "GET /static/css/color.css HTTP/1.1" 200 -
842
+ 2024-05-15 16:14:46,238 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/temp/img_display/sample1_711.jpg HTTP/1.1" 200 -
843
+ 2024-05-15 16:14:46,242 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/images/logo.png HTTP/1.1" 200 -
844
+ 2024-05-15 16:14:46,300 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/images/avatar.gif HTTP/1.1" 200 -
845
+ 2024-05-15 16:14:46,433 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 200 -
846
+ 2024-05-15 16:14:46,452 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/wow.min.js HTTP/1.1" 200 -
847
+ 2024-05-15 16:14:46,464 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/featherlight.min.js HTTP/1.1" 200 -
848
+ 2024-05-15 16:14:46,478 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 200 -
849
+ 2024-05-15 16:14:46,493 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 200 -
850
+ 2024-05-15 16:14:46,504 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 200 -
851
+ 2024-05-15 16:14:46,515 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/jquery.easing.min.js HTTP/1.1" 200 -
852
+ 2024-05-15 16:14:46,532 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 200 -
853
+ 2024-05-15 16:14:46,544 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 200 -
854
+ 2024-05-15 16:14:46,563 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/images-loaded.min.js HTTP/1.1" 200 -
855
+ 2024-05-15 16:14:46,577 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/lightbox.min.js HTTP/1.1" 200 -
856
+ 2024-05-15 16:14:46,591 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:46] "GET /static/js/site.js HTTP/1.1" 200 -
857
+ 2024-05-15 16:14:51,203 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:14:51] "GET /static/images/favicon.ico HTTP/1.1" 200 -
858
+ 2024-05-15 16:15:11,019 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:15:11] "GET /run_inference HTTP/1.1" 302 -
859
+ 2024-05-15 16:15:11,034 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:15:11] "GET /create_csv HTTP/1.1" 204 -
860
+ 2024-05-15 16:15:11,577 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:15:11] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 404 -
861
+ 2024-05-15 16:15:11,578 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:15:11] "GET /get_data HTTP/1.1" 200 -
862
+ 2024-05-15 16:16:42,927 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:42] "GET / HTTP/1.1" 200 -
863
+ 2024-05-15 16:16:43,008 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/css/style.css HTTP/1.1" 304 -
864
+ 2024-05-15 16:16:43,020 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/css/color.css HTTP/1.1" 304 -
865
+ 2024-05-15 16:16:43,024 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /styles.css HTTP/1.1" 404 -
866
+ 2024-05-15 16:16:43,033 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/css/animate.css HTTP/1.1" 304 -
867
+ 2024-05-15 16:16:43,036 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
868
+ 2024-05-15 16:16:43,059 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/images/logo.png HTTP/1.1" 304 -
869
+ 2024-05-15 16:16:43,063 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
870
+ 2024-05-15 16:16:43,076 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
871
+ 2024-05-15 16:16:43,076 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/wow.min.js HTTP/1.1" 304 -
872
+ 2024-05-15 16:16:43,086 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
873
+ 2024-05-15 16:16:43,099 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
874
+ 2024-05-15 16:16:43,102 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
875
+ 2024-05-15 16:16:43,102 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
876
+ 2024-05-15 16:16:43,115 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
877
+ 2024-05-15 16:16:43,132 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
878
+ 2024-05-15 16:16:43,165 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
879
+ 2024-05-15 16:16:43,170 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
880
+ 2024-05-15 16:16:43,176 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
881
+ 2024-05-15 16:16:43,182 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:43] "GET /static/js/site.js HTTP/1.1" 304 -
882
+ 2024-05-15 16:16:45,632 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:45] "GET /static/images/favicon.ico HTTP/1.1" 304 -
883
+ 2024-05-15 16:16:52,509 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:52] "POST /upload HTTP/1.1" 302 -
884
+ 2024-05-15 16:16:53,421 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /predict/%5B'sample1_711.jpg'%5D HTTP/1.1" 200 -
885
+ 2024-05-15 16:16:53,482 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/css/style.css HTTP/1.1" 304 -
886
+ 2024-05-15 16:16:53,496 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /predict/css/animate.css HTTP/1.1" 404 -
887
+ 2024-05-15 16:16:53,496 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/css/color.css HTTP/1.1" 304 -
888
+ 2024-05-15 16:16:53,507 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
889
+ 2024-05-15 16:16:53,521 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/images/logo.png HTTP/1.1" 304 -
890
+ 2024-05-15 16:16:53,545 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/temp/img_display/sample1_711.jpg HTTP/1.1" 200 -
891
+ 2024-05-15 16:16:53,578 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/images/avatar.gif HTTP/1.1" 304 -
892
+ 2024-05-15 16:16:53,617 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
893
+ 2024-05-15 16:16:53,630 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/wow.min.js HTTP/1.1" 304 -
894
+ 2024-05-15 16:16:53,641 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
895
+ 2024-05-15 16:16:53,665 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
896
+ 2024-05-15 16:16:53,673 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
897
+ 2024-05-15 16:16:53,678 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
898
+ 2024-05-15 16:16:53,685 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
899
+ 2024-05-15 16:16:53,694 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
900
+ 2024-05-15 16:16:53,700 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
901
+ 2024-05-15 16:16:53,722 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
902
+ 2024-05-15 16:16:53,745 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
903
+ 2024-05-15 16:16:53,748 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/js/site.js HTTP/1.1" 304 -
904
+ 2024-05-15 16:16:53,846 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:16:53] "GET /static/images/favicon.ico HTTP/1.1" 304 -
905
+ 2024-05-15 16:20:08,746 ERROR app 'NoneType' object is not iterable
906
+ 2024-05-15 16:20:08,765 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:08] "GET /run_inference HTTP/1.1" 302 -
907
+ 2024-05-15 16:20:08,846 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:08] "GET /create_csv HTTP/1.1" 500 -
908
+ 2024-05-15 16:20:09,408 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:09] "GET /get_data HTTP/1.1" 404 -
909
+ 2024-05-15 16:20:09,416 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:09] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 404 -
910
+ 2024-05-15 16:20:47,725 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET / HTTP/1.1" 200 -
911
+ 2024-05-15 16:20:47,796 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /styles.css HTTP/1.1" 404 -
912
+ 2024-05-15 16:20:47,815 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/css/color.css HTTP/1.1" 304 -
913
+ 2024-05-15 16:20:47,822 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
914
+ 2024-05-15 16:20:47,823 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/css/animate.css HTTP/1.1" 304 -
915
+ 2024-05-15 16:20:47,836 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/css/style.css HTTP/1.1" 304 -
916
+ 2024-05-15 16:20:47,864 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/images/logo.png HTTP/1.1" 304 -
917
+ 2024-05-15 16:20:47,866 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
918
+ 2024-05-15 16:20:47,877 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
919
+ 2024-05-15 16:20:47,892 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
920
+ 2024-05-15 16:20:47,894 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/wow.min.js HTTP/1.1" 304 -
921
+ 2024-05-15 16:20:47,917 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
922
+ 2024-05-15 16:20:47,934 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
923
+ 2024-05-15 16:20:47,946 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
924
+ 2024-05-15 16:20:47,950 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
925
+ 2024-05-15 16:20:47,959 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
926
+ 2024-05-15 16:20:47,974 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
927
+ 2024-05-15 16:20:47,991 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
928
+ 2024-05-15 16:20:47,999 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:47] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
929
+ 2024-05-15 16:20:48,009 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:48] "GET /static/js/site.js HTTP/1.1" 304 -
930
+ 2024-05-15 16:20:50,132 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:50] "GET /static/images/favicon.ico HTTP/1.1" 304 -
931
+ 2024-05-15 16:20:56,370 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:56] "POST /upload HTTP/1.1" 302 -
932
+ 2024-05-15 16:20:57,197 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /predict/%5B'sample_coop.jpg'%5D HTTP/1.1" 200 -
933
+ 2024-05-15 16:20:57,253 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/css/style.css HTTP/1.1" 304 -
934
+ 2024-05-15 16:20:57,279 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /predict/css/animate.css HTTP/1.1" 404 -
935
+ 2024-05-15 16:20:57,279 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/css/color.css HTTP/1.1" 304 -
936
+ 2024-05-15 16:20:57,282 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
937
+ 2024-05-15 16:20:57,323 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/images/logo.png HTTP/1.1" 304 -
938
+ 2024-05-15 16:20:57,394 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/temp/img_display/sample_coop.jpg HTTP/1.1" 200 -
939
+ 2024-05-15 16:20:57,404 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/images/avatar.gif HTTP/1.1" 304 -
940
+ 2024-05-15 16:20:57,456 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/wow.min.js HTTP/1.1" 304 -
941
+ 2024-05-15 16:20:57,485 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
942
+ 2024-05-15 16:20:57,489 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
943
+ 2024-05-15 16:20:57,515 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
944
+ 2024-05-15 16:20:57,531 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
945
+ 2024-05-15 16:20:57,542 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
946
+ 2024-05-15 16:20:57,550 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
947
+ 2024-05-15 16:20:57,556 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
948
+ 2024-05-15 16:20:57,562 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
949
+ 2024-05-15 16:20:57,573 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
950
+ 2024-05-15 16:20:57,579 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
951
+ 2024-05-15 16:20:57,589 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/js/site.js HTTP/1.1" 304 -
952
+ 2024-05-15 16:20:57,776 INFO werkzeug 127.0.0.1 - - [15/May/2024 16:20:57] "GET /static/images/favicon.ico HTTP/1.1" 304 -
953
+ 2024-05-15 16:23:35,405 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\Layoutlmv3_inference\\inference_handler.py', reloading
954
+ 2024-05-15 16:23:35,407 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\Layoutlmv3_inference\\inference_handler.py', reloading
955
+ 2024-05-15 18:08:02,544 ERROR app 'NoneType' object is not iterable
956
+ 2024-05-15 18:08:02,549 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:02] "GET /run_inference HTTP/1.1" 302 -
957
+ 2024-05-15 18:08:02,694 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:02] "GET /create_csv HTTP/1.1" 500 -
958
+ 2024-05-15 18:08:03,229 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:03] "GET /get_data HTTP/1.1" 404 -
959
+ 2024-05-15 18:08:03,241 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:03] "GET /static/temp/img_display/receipt_991.jpg_inference.jpg HTTP/1.1" 404 -
960
+ 2024-05-15 18:08:37,481 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:37] "GET / HTTP/1.1" 200 -
961
+ 2024-05-15 18:08:37,632 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:37] "GET /styles.css HTTP/1.1" 404 -
962
+ 2024-05-15 18:08:37,692 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:37] "GET /static/images/logo.png HTTP/1.1" 304 -
963
+ 2024-05-15 18:08:37,762 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:37] "GET /static/css/style.css HTTP/1.1" 304 -
964
+ 2024-05-15 18:08:37,812 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:37] "GET /static/css/color.css HTTP/1.1" 304 -
965
+ 2024-05-15 18:08:37,936 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:37] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
966
+ 2024-05-15 18:08:38,009 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/css/animate.css HTTP/1.1" 304 -
967
+ 2024-05-15 18:08:38,074 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
968
+ 2024-05-15 18:08:38,187 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
969
+ 2024-05-15 18:08:38,206 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/wow.min.js HTTP/1.1" 304 -
970
+ 2024-05-15 18:08:38,303 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
971
+ 2024-05-15 18:08:38,341 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
972
+ 2024-05-15 18:08:38,369 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
973
+ 2024-05-15 18:08:38,415 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
974
+ 2024-05-15 18:08:38,430 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
975
+ 2024-05-15 18:08:38,485 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
976
+ 2024-05-15 18:08:38,631 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
977
+ 2024-05-15 18:08:38,671 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
978
+ 2024-05-15 18:08:38,674 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/site.js HTTP/1.1" 304 -
979
+ 2024-05-15 18:08:38,717 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:38] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
980
+ 2024-05-15 18:08:39,149 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:39] "GET /static/images/favicon.ico HTTP/1.1" 304 -
981
+ 2024-05-15 18:08:46,500 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:46] "POST /upload HTTP/1.1" 302 -
982
+ 2024-05-15 18:08:52,435 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:52] "POST /upload HTTP/1.1" 302 -
983
+ 2024-05-15 18:08:57,492 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:57] "GET /predict/%5B'receipt_867.jpg'%5D HTTP/1.1" 200 -
984
+ 2024-05-15 18:08:57,619 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:57] "GET /predict/%5B'receipt_867.jpg'%5D HTTP/1.1" 200 -
985
+ 2024-05-15 18:08:57,795 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:57] "GET /static/css/style.css HTTP/1.1" 304 -
986
+ 2024-05-15 18:08:57,906 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:57] "GET /static/css/color.css HTTP/1.1" 304 -
987
+ 2024-05-15 18:08:57,946 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:57] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
988
+ 2024-05-15 18:08:57,954 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:57] "GET /predict/css/animate.css HTTP/1.1" 404 -
989
+ 2024-05-15 18:08:58,085 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/temp/img_display/receipt_867.jpg HTTP/1.1" 200 -
990
+ 2024-05-15 18:08:58,186 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/images/logo.png HTTP/1.1" 304 -
991
+ 2024-05-15 18:08:58,457 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/images/avatar.gif HTTP/1.1" 304 -
992
+ 2024-05-15 18:08:58,477 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
993
+ 2024-05-15 18:08:58,626 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/wow.min.js HTTP/1.1" 304 -
994
+ 2024-05-15 18:08:58,632 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
995
+ 2024-05-15 18:08:58,639 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
996
+ 2024-05-15 18:08:58,693 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
997
+ 2024-05-15 18:08:58,787 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
998
+ 2024-05-15 18:08:58,950 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:58] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
999
+ 2024-05-15 18:08:59,019 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:59] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
1000
+ 2024-05-15 18:08:59,094 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:59] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
1001
+ 2024-05-15 18:08:59,129 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:59] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
1002
+ 2024-05-15 18:08:59,160 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:59] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
1003
+ 2024-05-15 18:08:59,194 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:08:59] "GET /static/js/site.js HTTP/1.1" 304 -
1004
+ 2024-05-15 18:09:00,368 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:09:00] "GET /static/images/favicon.ico HTTP/1.1" 304 -
1005
+ 2024-05-15 18:11:05,367 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:11:05] "GET /run_inference HTTP/1.1" 302 -
1006
+ 2024-05-15 18:11:05,423 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:11:05] "GET /create_csv HTTP/1.1" 204 -
1007
+ 2024-05-15 18:11:06,737 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:11:06] "GET /static/temp/img_display/receipt_867.jpg_inference.jpg HTTP/1.1" 200 -
1008
+ 2024-05-15 18:11:06,977 INFO werkzeug 127.0.0.1 - - [15/May/2024 18:11:06] "GET /get_data HTTP/1.1" 200 -
1009
+ 2024-05-15 18:14:11,927 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\Layoutlmv3_inference\\inference_handler.py', reloading
1010
+ 2024-05-15 18:14:11,936 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\Layoutlmv3_inference\\inference_handler.py', reloading
1011
+ 2024-05-15 19:38:24,151 ERROR app 'NoneType' object is not iterable
1012
+ 2024-05-15 19:38:24,159 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:24] "GET /run_inference HTTP/1.1" 302 -
1013
+ 2024-05-15 19:38:24,298 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:24] "GET /create_csv HTTP/1.1" 500 -
1014
+ 2024-05-15 19:38:24,867 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:24] "GET /get_data HTTP/1.1" 404 -
1015
+ 2024-05-15 19:38:24,881 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:24] "GET /static/temp/img_display/receipt_857.jpg_inference.jpg HTTP/1.1" 404 -
1016
+ 2024-05-15 19:38:57,336 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET / HTTP/1.1" 200 -
1017
+ 2024-05-15 19:38:57,480 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /static/css/style.css HTTP/1.1" 304 -
1018
+ 2024-05-15 19:38:57,614 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /static/css/color.css HTTP/1.1" 304 -
1019
+ 2024-05-15 19:38:57,631 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
1020
+ 2024-05-15 19:38:57,652 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /static/css/animate.css HTTP/1.1" 304 -
1021
+ 2024-05-15 19:38:57,717 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /styles.css HTTP/1.1" 404 -
1022
+ 2024-05-15 19:38:57,785 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /static/images/logo.png HTTP/1.1" 304 -
1023
+ 2024-05-15 19:38:57,974 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:57] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
1024
+ 2024-05-15 19:38:58,083 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
1025
+ 2024-05-15 19:38:58,084 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/wow.min.js HTTP/1.1" 304 -
1026
+ 2024-05-15 19:38:58,085 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
1027
+ 2024-05-15 19:38:58,096 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
1028
+ 2024-05-15 19:38:58,103 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
1029
+ 2024-05-15 19:38:58,244 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
1030
+ 2024-05-15 19:38:58,335 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
1031
+ 2024-05-15 19:38:58,466 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
1032
+ 2024-05-15 19:38:58,520 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
1033
+ 2024-05-15 19:38:58,555 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
1034
+ 2024-05-15 19:38:58,572 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
1035
+ 2024-05-15 19:38:58,617 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:58] "GET /static/js/site.js HTTP/1.1" 304 -
1036
+ 2024-05-15 19:38:59,136 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:38:59] "GET /static/images/favicon.ico HTTP/1.1" 304 -
1037
+ 2024-05-15 19:39:10,717 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:10] "POST /upload HTTP/1.1" 302 -
1038
+ 2024-05-15 19:39:14,066 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /predict/%5B'receipt_857.jpg'%5D HTTP/1.1" 200 -
1039
+ 2024-05-15 19:39:14,290 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
1040
+ 2024-05-15 19:39:14,299 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/css/color.css HTTP/1.1" 304 -
1041
+ 2024-05-15 19:39:14,301 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/css/style.css HTTP/1.1" 304 -
1042
+ 2024-05-15 19:39:14,316 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /predict/css/animate.css HTTP/1.1" 404 -
1043
+ 2024-05-15 19:39:14,334 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/images/logo.png HTTP/1.1" 304 -
1044
+ 2024-05-15 19:39:14,532 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/temp/img_display/receipt_857.jpg HTTP/1.1" 200 -
1045
+ 2024-05-15 19:39:14,737 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/images/avatar.gif HTTP/1.1" 304 -
1046
+ 2024-05-15 19:39:14,840 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
1047
+ 2024-05-15 19:39:14,899 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/js/wow.min.js HTTP/1.1" 304 -
1048
+ 2024-05-15 19:39:14,938 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
1049
+ 2024-05-15 19:39:14,955 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
1050
+ 2024-05-15 19:39:14,981 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
1051
+ 2024-05-15 19:39:14,993 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:14] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
1052
+ 2024-05-15 19:39:15,038 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
1053
+ 2024-05-15 19:39:15,047 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
1054
+ 2024-05-15 19:39:15,068 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
1055
+ 2024-05-15 19:39:15,116 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
1056
+ 2024-05-15 19:39:15,148 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
1057
+ 2024-05-15 19:39:15,156 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/js/site.js HTTP/1.1" 304 -
1058
+ 2024-05-15 19:39:15,951 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:39:15] "GET /static/images/favicon.ico HTTP/1.1" 304 -
1059
+ 2024-05-15 19:40:07,064 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:40:07] "GET /run_inference HTTP/1.1" 302 -
1060
+ 2024-05-15 19:40:07,190 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:40:07] "GET /create_csv HTTP/1.1" 204 -
1061
+ 2024-05-15 19:40:07,799 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:40:07] "GET /get_data HTTP/1.1" 200 -
1062
+ 2024-05-15 19:40:07,802 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:40:07] "GET /static/temp/img_display/receipt_857.jpg_inference.jpg HTTP/1.1" 200 -
1063
+ 2024-05-15 19:47:23,767 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:23] "GET / HTTP/1.1" 200 -
1064
+ 2024-05-15 19:47:24,030 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/css/color.css HTTP/1.1" 304 -
1065
+ 2024-05-15 19:47:24,134 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /styles.css HTTP/1.1" 404 -
1066
+ 2024-05-15 19:47:24,169 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
1067
+ 2024-05-15 19:47:24,220 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/css/style.css HTTP/1.1" 304 -
1068
+ 2024-05-15 19:47:24,239 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/css/animate.css HTTP/1.1" 304 -
1069
+ 2024-05-15 19:47:24,287 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/images/logo.png HTTP/1.1" 304 -
1070
+ 2024-05-15 19:47:24,296 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
1071
+ 2024-05-15 19:47:24,352 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
1072
+ 2024-05-15 19:47:24,365 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
1073
+ 2024-05-15 19:47:24,372 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/wow.min.js HTTP/1.1" 304 -
1074
+ 2024-05-15 19:47:24,400 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
1075
+ 2024-05-15 19:47:24,498 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
1076
+ 2024-05-15 19:47:24,550 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
1077
+ 2024-05-15 19:47:24,552 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
1078
+ 2024-05-15 19:47:24,570 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
1079
+ 2024-05-15 19:47:24,657 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
1080
+ 2024-05-15 19:47:24,700 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
1081
+ 2024-05-15 19:47:24,751 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
1082
+ 2024-05-15 19:47:24,956 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:24] "GET /static/js/site.js HTTP/1.1" 304 -
1083
+ 2024-05-15 19:47:26,004 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:26] "GET /static/images/favicon.ico HTTP/1.1" 304 -
1084
+ 2024-05-15 19:47:43,964 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:43] "POST /upload HTTP/1.1" 302 -
1085
+ 2024-05-15 19:47:49,816 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:49] "GET /predict/%5B'receipt_898.jpg'%5D HTTP/1.1" 200 -
1086
+ 2024-05-15 19:47:49,966 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:49] "GET /static/css/style.css HTTP/1.1" 304 -
1087
+ 2024-05-15 19:47:49,986 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:49] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
1088
+ 2024-05-15 19:47:49,987 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:49] "GET /static/css/color.css HTTP/1.1" 304 -
1089
+ 2024-05-15 19:47:50,103 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /predict/css/animate.css HTTP/1.1" 404 -
1090
+ 2024-05-15 19:47:50,154 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/temp/img_display/receipt_898.jpg HTTP/1.1" 200 -
1091
+ 2024-05-15 19:47:50,167 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/images/logo.png HTTP/1.1" 304 -
1092
+ 2024-05-15 19:47:50,413 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/images/avatar.gif HTTP/1.1" 304 -
1093
+ 2024-05-15 19:47:50,418 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
1094
+ 2024-05-15 19:47:50,522 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
1095
+ 2024-05-15 19:47:50,532 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/wow.min.js HTTP/1.1" 304 -
1096
+ 2024-05-15 19:47:50,622 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
1097
+ 2024-05-15 19:47:50,817 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
1098
+ 2024-05-15 19:47:50,837 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
1099
+ 2024-05-15 19:47:50,869 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
1100
+ 2024-05-15 19:47:50,996 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:50] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
1101
+ 2024-05-15 19:47:51,008 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:51] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
1102
+ 2024-05-15 19:47:51,084 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:51] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
1103
+ 2024-05-15 19:47:51,171 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:51] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
1104
+ 2024-05-15 19:47:51,191 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:51] "GET /static/js/site.js HTTP/1.1" 304 -
1105
+ 2024-05-15 19:47:51,722 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:47:51] "GET /static/images/favicon.ico HTTP/1.1" 304 -
1106
+ 2024-05-15 19:49:16,407 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:49:16] "GET /run_inference HTTP/1.1" 302 -
1107
+ 2024-05-15 19:49:18,134 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:49:18] "GET /create_csv HTTP/1.1" 204 -
1108
+ 2024-05-15 19:49:19,489 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:49:19] "GET /get_data HTTP/1.1" 200 -
1109
+ 2024-05-15 19:49:19,496 INFO werkzeug 127.0.0.1 - - [15/May/2024 19:49:19] "GET /static/temp/img_display/receipt_898.jpg_inference.jpg HTTP/1.1" 200 -
1110
+ 2024-05-15 19:58:44,252 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\app.py', reloading
1111
+ 2024-05-15 19:58:44,258 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\app.py', reloading
1112
+ 2024-05-15 23:23:01,553 ERROR app 'NoneType' object is not iterable
1113
+ 2024-05-15 23:23:01,558 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:01] "GET /run_inference HTTP/1.1" 302 -
1114
+ 2024-05-15 23:23:01,712 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:01] "GET /create_csv HTTP/1.1" 500 -
1115
+ 2024-05-15 23:23:02,296 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /static/temp/img_display/receipt_1009.jpg_inference.jpg HTTP/1.1" 404 -
1116
+ 2024-05-15 23:23:02,303 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /static/temp/img_display/receipt_1010.jpg_inference.jpg HTTP/1.1" 404 -
1117
+ 2024-05-15 23:23:02,349 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /get_data HTTP/1.1" 404 -
1118
+ 2024-05-15 23:23:02,373 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /static/temp/img_display/receipt_1011.jpg_inference.jpg HTTP/1.1" 404 -
1119
+ 2024-05-15 23:23:02,432 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /static/temp/img_display/receipt_1013.jpg_inference.jpg HTTP/1.1" 404 -
1120
+ 2024-05-15 23:23:02,478 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /static/temp/img_display/receipt_1012.jpg_inference.jpg HTTP/1.1" 404 -
1121
+ 2024-05-15 23:23:02,497 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:23:02] "GET /static/temp/img_display/receipt_1014.jpg_inference.jpg HTTP/1.1" 404 -
1122
+ 2024-05-15 23:26:16,691 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:16] "GET / HTTP/1.1" 200 -
1123
+ 2024-05-15 23:26:16,815 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:16] "GET /styles.css HTTP/1.1" 404 -
1124
+ 2024-05-15 23:26:16,832 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:16] "GET /static/css/style.css HTTP/1.1" 304 -
1125
+ 2024-05-15 23:26:16,972 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:16] "GET /static/css/color.css HTTP/1.1" 304 -
1126
+ 2024-05-15 23:26:17,036 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
1127
+ 2024-05-15 23:26:17,053 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/css/animate.css HTTP/1.1" 304 -
1128
+ 2024-05-15 23:26:17,087 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/images/logo.png HTTP/1.1" 304 -
1129
+ 2024-05-15 23:26:17,145 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
1130
+ 2024-05-15 23:26:17,215 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
1131
+ 2024-05-15 23:26:17,376 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/wow.min.js HTTP/1.1" 304 -
1132
+ 2024-05-15 23:26:17,428 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
1133
+ 2024-05-15 23:26:17,433 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
1134
+ 2024-05-15 23:26:17,451 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
1135
+ 2024-05-15 23:26:17,471 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
1136
+ 2024-05-15 23:26:17,504 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
1137
+ 2024-05-15 23:26:17,517 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
1138
+ 2024-05-15 23:26:17,551 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
1139
+ 2024-05-15 23:26:17,561 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
1140
+ 2024-05-15 23:26:17,576 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
1141
+ 2024-05-15 23:26:17,625 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:17] "GET /static/js/site.js HTTP/1.1" 304 -
1142
+ 2024-05-15 23:26:20,290 INFO werkzeug 127.0.0.1 - - [15/May/2024 23:26:20] "GET /static/images/favicon.ico HTTP/1.1" 304 -
requirements.txt CHANGED
@@ -1,17 +1,14 @@
1
- pandas
2
- # git+https://github.com/huggingface/transformers.git
3
- # git+https://github.com/huggingface/datasets.git
4
  dill<0.3.5
5
  seqeval
6
  accelerate
7
  flask
8
- fastai
9
- # pytesseract==0.3.8
10
- pillow==9.5.0
11
- tqdm==4.66.1
 
 
12
  gunicorn
13
  opencv-python-headless
14
- transformers==4.31.0
15
- numpy==1.24.3
16
- datasets==2.14.6
17
- Werkzeug
 
1
+ git+https://github.com/huggingface/transformers.git
2
+ git+https://github.com/huggingface/datasets.git
 
3
  dill<0.3.5
4
  seqeval
5
  accelerate
6
  flask
7
+ fastai==1.0.61
8
+ pytesseract
9
+ pandas
10
+ numpy
11
+ pillow
12
+ tqdm
13
  gunicorn
14
  opencv-python-headless
 
 
 
 
static/css/extractor.css ADDED
@@ -0,0 +1,682 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ body {
3
+ background-color: #ddd;
4
+ }
5
+
6
+ .containerz {
7
+ display: flex;
8
+ width: 100vw;
9
+ height: 100vh;
10
+ }
11
+
12
+ .left-column {
13
+ padding-top: 100px;
14
+ flex: 2;
15
+ background-color: #ddd;
16
+ padding: 20px;
17
+ max-height: 100vh;
18
+ width: 100%;
19
+ max-width: 100%;
20
+ box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
21
+ overflow-y: auto;
22
+ }
23
+
24
+ #canvas-container {
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ /* Wrap items to next line when they exceed the container width */
28
+ justify-content: center;
29
+ /* Center items horizontally */
30
+ gap: 10px;
31
+ /* Add some space between images */
32
+ max-width: 100%;
33
+ /* Ensure images don't exceed the container width */
34
+ margin-top: 70px;
35
+ }
36
+
37
+ .image-container {
38
+ width: 200px;
39
+ /* Set your desired width */
40
+ height: 300px;
41
+ /* Set your desired height */
42
+ background-color: white;
43
+ /* White background */
44
+ padding: 30px 30px 40px 30px;
45
+ /* Add padding */
46
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
47
+ border-radius: 10px;
48
+ }
49
+
50
+ .image-container:hover {
51
+ transition: all 0.3s;
52
+ transform: translateY(1.5px);
53
+ box-shadow: 0 6px 8px rgba(0, 0, 0, 0.4);
54
+ }
55
+
56
+ .image-container img {
57
+ width: 100%;
58
+ height: 100%;
59
+ object-fit: contain;
60
+ box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1);
61
+ transition: all 0.3s;
62
+ }
63
+
64
+ p.images-name {
65
+ text-overflow: ellipsis;
66
+ white-space: nowrap;
67
+ overflow: hidden;
68
+ font-size: 10px;
69
+ margin: 5px 0 0 0;
70
+ text-align: center;
71
+ padding: 0;
72
+ }
73
+
74
+ .right-column {
75
+ flex: 2;
76
+ background-color: #ffffff;
77
+ padding: 20px;
78
+ overflow-y: auto;
79
+ max-height: 100vh;
80
+ }
81
+
82
+ .backbutton {
83
+ box-sizing: border-box;
84
+ border-radius: 10px;
85
+ color: var(--secondary-color);
86
+ padding: 1em 1.8em;
87
+ display: flex;
88
+ transition: 0.2s background;
89
+ align-items: center;
90
+ gap: 0.6em;
91
+ font-weight: bold;
92
+ background: rgba(255, 255, 255, 0.6);
93
+ backdrop-filter: blur(10px);
94
+ border: none;
95
+ cursor: pointer;
96
+ position: fixed;
97
+ z-index: 999;
98
+ }
99
+
100
+ .backbutton span {
101
+ text-decoration: none;
102
+ color: black;
103
+ font-family: 'Poppins', sans-serif, Arial, Helvetica;
104
+ font-size: 14px;
105
+ font-weight: 300;
106
+ }
107
+
108
+ .backbutton:hover {
109
+ background: linear-gradient(45deg, #FF6347, #FFA07A);
110
+ transition: all .3s ease-in-out;
111
+ }
112
+
113
+ .backbutton:hover span {
114
+ color: white;
115
+ transition: all .3s ease-in-out;
116
+ }
117
+
118
+ .backbutton:hover i {
119
+ color: white;
120
+ transition: all .3s ease-in-out;
121
+ }
122
+
123
+ .left-column h1 {
124
+ padding-top: 45px;
125
+ }
126
+
127
+ #canvas-container {
128
+ position: relative;
129
+ width: 100%;
130
+ height: 100%;
131
+ }
132
+
133
+ #canvas {
134
+ cursor: grab;
135
+ user-select: none;
136
+ }
137
+
138
+ #upload-input {
139
+ margin-top: 10px;
140
+ object-position: center;
141
+ }
142
+
143
+ .bordered-table {
144
+ justify-content: center;
145
+ display: flex;
146
+ padding: 0px 30px;
147
+ }
148
+
149
+ .bordered-table tbody td.full-width {
150
+ display: flex;
151
+ flex-wrap: wrap;
152
+ align-items: center;
153
+ }
154
+
155
+ .bordered-table tbody td.full-width .label {
156
+ width: 100px;
157
+ text-align: right;
158
+ margin-right: 5px;
159
+ }
160
+
161
+ .bordered-table tbody td .full-width input {
162
+ flex-grow: 1;
163
+ }
164
+
165
+ .bordered-table tbody td.full-width {
166
+ display: grid;
167
+ grid-template-columns: 100px 1fr;
168
+ }
169
+
170
+ .bordered-table tbody td.full-width .label {
171
+ justify-self: end;
172
+ }
173
+
174
+ #logox {
175
+ display: flex;
176
+ justify-content: center;
177
+ }
178
+
179
+ #logox img {
180
+ position: relative;
181
+ object-position: center;
182
+ width: 25%;
183
+ height: 25%;
184
+ padding: 10px 10px 10px 10px;
185
+ }
186
+
187
+ .receipt {
188
+ margin: 20px 20px;
189
+ }
190
+
191
+ .receipt1 {
192
+ margin: 20px 20px;
193
+ font: 14px;
194
+ }
195
+
196
+ .receipt1 table {
197
+ border-radius: 10px;
198
+ }
199
+
200
+ .receipt h1 {
201
+ text-align: center;
202
+ }
203
+
204
+ .receipt .details {
205
+ margin: 0px 0px 0px 15px;
206
+ }
207
+
208
+ .receipt table {
209
+ width: 100%;
210
+ border-collapse: collapse;
211
+ margin-bottom: 20px;
212
+ }
213
+
214
+ .receipt table {
215
+ border-radius: 10px;
216
+ }
217
+
218
+ .receipt table th,
219
+ .receipt table td {
220
+ border: 1px solid #ccc;
221
+ padding: 5px;
222
+ }
223
+
224
+ .receipt table th {
225
+ background-color: #f0f0f0;
226
+ text-align: left;
227
+ font-size: 16px;
228
+ font-weight: 500;
229
+ text-align: center;
230
+ }
231
+
232
+ .receipt table td {
233
+ text-align: center;
234
+ font-size: 14px;
235
+ max-width: 150px;
236
+ /* Set the maximum width */
237
+ overflow: hidden;
238
+ text-overflow: ellipsis;
239
+ white-space: nowrap;
240
+ padding: 0 20px;
241
+ }
242
+
243
+ #dataTable {
244
+ border-radius: 10px;
245
+ border-collapse: collapse;
246
+ width: 100%;
247
+ width: 100%;
248
+ border-collapse: collapse;
249
+ table-layout: fixed;
250
+ overflow-x: auto;
251
+ }
252
+
253
+ #receiptdiv {
254
+ display: none;
255
+ }
256
+
257
+ #dataTable th,
258
+ #dataTable td {
259
+ font-size: 12px;
260
+ text-align: center;
261
+ padding: 3px;
262
+ }
263
+
264
+ #downloadbutton {
265
+ display: none;
266
+ }
267
+
268
+ #loadingSpinner {
269
+ position: relative;
270
+ top: 20%;
271
+ left: 50%;
272
+ transform: translate(-50%, -50%);
273
+ border: 4px solid rgba(0, 0, 0, 0.1);
274
+ border-left: 4px solid #FF8B4A;
275
+ border-radius: 50%;
276
+ width: 30px;
277
+ height: 30px;
278
+ animation: spin 1s linear infinite;
279
+ display: none;
280
+ /* Hide initially */
281
+ }
282
+
283
+ @keyframes spin {
284
+ 0% {
285
+ transform: rotate(0deg);
286
+ }
287
+
288
+ 100% {
289
+ transform: rotate(360deg);
290
+ }
291
+ }
292
+
293
+ #uploadbutton:disabled {
294
+ cursor: not-allowed;
295
+ background-color: #dddddd;
296
+ }
297
+
298
+ .labels {
299
+ margin: 0 0 0 20px;
300
+ font-weight: 500;
301
+ }
302
+
303
+ .labels p {
304
+ font-size: 14px;
305
+ padding-top: 8px;
306
+ line-height: 5px;
307
+ color: ccc;
308
+ padding: 8px 0 0 0;
309
+ text-align: left;
310
+ }
311
+
312
+ #filenm {
313
+ position: relative;
314
+ z-index: 999;
315
+ }
316
+
317
+ .valid {
318
+ padding-left: 8px;
319
+ font-weight: 300;
320
+ font-size: 14px;
321
+ }
322
+
323
+ .details1 {
324
+ border-radius: 10px;
325
+ z-index: -1;
326
+ }
327
+
328
+ .details {}
329
+
330
+ .exportbutton {
331
+ margin-right: 17px;
332
+ box-sizing: border-box;
333
+ border-radius: 10px;
334
+ padding: 1em 1.8em;
335
+ display: flex;
336
+ transition: 0.2s background;
337
+ align-items: center;
338
+ gap: 0.6em;
339
+ font-weight: 400;
340
+ background: linear-gradient(45deg, #FF6347, #FFA07A);
341
+ backdrop-filter: blur(10px);
342
+ border: 2px solid transparent;
343
+ color: white;
344
+ cursor: pointer;
345
+ }
346
+
347
+ .exportbutton:hover {
348
+ border: 2px solid #FF8B4A;
349
+ background: #f5f5f5;
350
+ color: #000;
351
+ transition: all .3s ease-in-out;
352
+ }
353
+
354
+ @media (max-width: 1024px) {
355
+ .filenm {
356
+ border-radius: 10px;
357
+ gap: 0.3em;
358
+ font-size: 9px;
359
+ padding: 9px 11px;
360
+ margin: 0;
361
+ }
362
+
363
+ .filenm span {
364
+ text-overflow: ellipsis;
365
+ white-space: nowrap;
366
+ overflow: hidden;
367
+ }
368
+
369
+ .backbutton span {
370
+ font-size: 9px;
371
+ }
372
+
373
+ .backbutton {
374
+ padding: 12px 14px;
375
+ border-radius: 10px;
376
+ }
377
+
378
+ .receipt {
379
+ margin: 15px 15px;
380
+ }
381
+
382
+ p {
383
+ padding: 10px;
384
+ font-size: 13px;
385
+ }
386
+
387
+ p.desc {
388
+ font-size: 8px;
389
+ text-align: left;
390
+ }
391
+
392
+ .labels {
393
+ text-align: left;
394
+ }
395
+
396
+ .labels p {
397
+ padding: 8px 0 8px 0;
398
+ }
399
+
400
+ .avatargif img {
401
+ margin-top: 1.5em;
402
+ }
403
+ }
404
+
405
+ @media (max-width: 768px) {
406
+ #logox img {
407
+ position: relative;
408
+ object-position: center;
409
+ width: 30%;
410
+ height: 30%;
411
+ padding: 10px 10px 10px 10px;
412
+ }
413
+
414
+ .filenm {
415
+ border-radius: 6px;
416
+ gap: 0.3em;
417
+ font-size: 10px;
418
+ padding: 10px 12px;
419
+ margin: 0;
420
+ }
421
+
422
+ .filenm span {
423
+ text-overflow: ellipsis;
424
+ white-space: nowrap;
425
+ overflow: hidden;
426
+ }
427
+
428
+ .backbutton span {
429
+ font-size: 10px;
430
+ }
431
+
432
+ .backbutton {
433
+ padding: 12px 14px;
434
+ border-radius: 6px;
435
+ }
436
+
437
+ .labels {
438
+ padding: 0 0 5px 0;
439
+ margin: 0;
440
+ }
441
+
442
+ p {
443
+ padding: 8px;
444
+ font-size: 12px;
445
+ }
446
+
447
+ .uploadbutton {
448
+ padding: 8px 24px;
449
+ font-size: 14px;
450
+ font-weight: 300;
451
+ }
452
+
453
+ p.desc {
454
+ font-size: 6px;
455
+ line-height: 12px;
456
+ }
457
+
458
+ .valid {
459
+ padding-left: 5px;
460
+ font-size: 12px;
461
+ }
462
+
463
+ .labels p {
464
+ padding: 8px 0 8px 0;
465
+ }
466
+
467
+ #dataTable th,
468
+ #dataTable td {
469
+ font-size: 6px;
470
+ text-align: left;
471
+ padding: 1px;
472
+ }
473
+
474
+ .exportbutton {
475
+ margin-left: 17px;
476
+ border-radius: 5px;
477
+ padding: .8em 1em;
478
+ font-weight: 300;
479
+ font-size: 12px;
480
+ }
481
+
482
+ .avatargif img {
483
+ margin-top: 1.25em;
484
+ }
485
+ }
486
+
487
+ @media screen and (max-width: 576px) {
488
+
489
+ /* Styles for screens up to 576px wide */
490
+ .containerz {
491
+ flex-direction: column;
492
+ }
493
+
494
+ .left-column,
495
+ .right-column {
496
+ flex: 1;
497
+ width: 100%;
498
+ }
499
+
500
+ .left-column {
501
+ box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
502
+ padding: 10px;
503
+ }
504
+
505
+ .right-column {
506
+ border-radius: 20px;
507
+ flex: 1.2;
508
+ }
509
+
510
+ .filenm {
511
+ border-radius: 7px;
512
+ gap: 0.3em;
513
+ font-size: 12px;
514
+ white-space: nowrap;
515
+ overflow: hidden;
516
+ text-overflow: ellipsis;
517
+ padding: 8px 10px;
518
+ margin: 0;
519
+ }
520
+
521
+ .backbutton span {
522
+ font-size: 12px;
523
+ }
524
+
525
+ .backbutton {
526
+ padding: 8px 10px;
527
+ border-radius: 7px;
528
+ }
529
+
530
+ .labels {
531
+ padding: 0 0 5px 0;
532
+ margin: 0;
533
+ }
534
+
535
+ .uploadbutton {
536
+ padding: 6px 22px;
537
+ font-size: 12px;
538
+ font-weight: 300;
539
+ }
540
+
541
+ p.desc {
542
+ font-size: 4px;
543
+ text-align: left;
544
+ line-height: 10px;
545
+ }
546
+
547
+ .valid {
548
+ padding-left: 5px;
549
+ font-size: 10px;
550
+ }
551
+
552
+ .labels p {
553
+ padding: 8px 0 8px 0;
554
+ }
555
+
556
+ #dataTable th,
557
+ #dataTable td {
558
+ font-size: 6px;
559
+ text-align: left;
560
+ padding: 1px;
561
+ }
562
+
563
+ .exportbutton {
564
+ margin-left: 17px;
565
+ border-radius: 5px;
566
+ padding: .5em .8em;
567
+ font-weight: 300;
568
+ font-size: 10px;
569
+ }
570
+
571
+ .avatargif img {
572
+ margin-top: 1em;
573
+ }
574
+ }
575
+
576
+ p.desc {
577
+ font-size: 10px;
578
+ font-family: 'Poppins';
579
+ font-weight: 200;
580
+ margin: 0;
581
+ padding: 0;
582
+ line-height: 12px;
583
+ font-style: italic;
584
+ }
585
+
586
+ .fa-spinner {
587
+ font-size: 16px;
588
+ }
589
+
590
+ .avatargif {
591
+ display: flex;
592
+ justify-content: center;
593
+ align-items: center;
594
+ }
595
+
596
+ .avatargif img {
597
+ margin-top: 3.5em;
598
+ width: 40%;
599
+ height: 40%;
600
+ }
601
+
602
+ .red-border {
603
+ border: 2px solid red;
604
+ }
605
+
606
+ .green-border {
607
+ border: 2px solid green;
608
+ }
609
+
610
+ ::-webkit-scrollbar {
611
+ display: none;
612
+ }
613
+
614
+ .image-container:hover .tooltiptext {
615
+ visibility: visible;
616
+ opacity: 1;
617
+ }
618
+
619
+ .tooltiptext {
620
+ font-size: 12px;
621
+ visibility: hidden;
622
+ width: 160px;
623
+ background-color: #333;
624
+ color: #fff;
625
+ text-align: center;
626
+ border-radius: 8px;
627
+ padding: 5px;
628
+ position: absolute;
629
+ z-index: 99;
630
+ bottom: 105%;
631
+ left: 50%;
632
+ margin-left: -80px;
633
+ opacity: 0;
634
+ transition: opacity 0.3s;
635
+ }
636
+
637
+ .tooltiptext::after {
638
+ content: "";
639
+ position: absolute;
640
+ top: 100%;
641
+ left: 50%;
642
+ margin-left: -5px;
643
+ border-width: 5px;
644
+ border-style: solid;
645
+ border-color: #333 transparent transparent transparent;
646
+ }
647
+
648
+ .zoomed-image-container {
649
+ position: fixed;
650
+ top: 0;
651
+ left: 0;
652
+ width: 50%;
653
+ height: 100%;
654
+ background-color: rgba(0, 0, 0, 0.8);
655
+ display: flex;
656
+ justify-content: center;
657
+ align-items: center;
658
+ z-index: 999;
659
+ }
660
+
661
+ .zoomed-image-container img {
662
+ max-width: 90%;
663
+ max-height: 90%;
664
+ object-fit: contain;
665
+ }
666
+
667
+ @media (max-width: 576px) {
668
+ .zoomed-image-container {
669
+ position: fixed;
670
+ top: 0;
671
+ left: 0;
672
+ width: 100%;
673
+ height: 45%;
674
+ background-color: rgba(0, 0, 0, 0.8);
675
+ display: flex;
676
+ justify-content: center;
677
+ align-items: center;
678
+ z-index: 999;
679
+ /* Optional: If you want to hide the scrollbar in Firefox */
680
+ scrollbar-width: none;
681
+ }
682
+ }
templates/extractor.html CHANGED
@@ -9,7 +9,9 @@
9
  <link rel="shortcut icon" href="/static/images/favicon.ico" title="Favicon" />
10
 
11
  <!-- Main CSS Files -->
12
- <link rel="stylesheet" href="/static/css/style.css">
 
 
13
 
14
  <!-- Color CSS -->
15
  <link rel="stylesheet" href="/static/css/color.css">
@@ -27,689 +29,7 @@
27
  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600&display=swap"
28
  rel="stylesheet">
29
  <title>ExCeipt | Extractor</title>
30
- <style>
31
- body {
32
- background-color: #ddd;
33
- }
34
-
35
- .containerz {
36
- display: flex;
37
- width: 100vw;
38
- height: 100vh;
39
- }
40
-
41
- .left-column {
42
- padding-top: 100px;
43
- flex: 2;
44
- background-color: #ddd;
45
- padding: 20px;
46
- max-height: 100vh;
47
- width: 100%;
48
- max-width: 100%;
49
- box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
50
- overflow-y: auto;
51
- }
52
-
53
- #canvas-container {
54
- display: flex;
55
- flex-wrap: wrap;
56
- /* Wrap items to next line when they exceed the container width */
57
- justify-content: center;
58
- /* Center items horizontally */
59
- gap: 10px;
60
- /* Add some space between images */
61
- max-width: 100%;
62
- /* Ensure images don't exceed the container width */
63
- margin-top: 70px;
64
- }
65
-
66
- .image-container {
67
- width: 200px;
68
- /* Set your desired width */
69
- height: 300px;
70
- /* Set your desired height */
71
- background-color: white;
72
- /* White background */
73
- padding: 30px 30px 40px 30px;
74
- /* Add padding */
75
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
76
- border-radius: 10px;
77
- }
78
-
79
- .image-container:hover {
80
- transition: all 0.3s;
81
- transform: translateY(1.5px);
82
- box-shadow: 0 6px 8px rgba(0, 0, 0, 0.4);
83
- }
84
-
85
- .image-container img {
86
- width: 100%;
87
- height: 100%;
88
- object-fit: contain;
89
- box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1);
90
- transition: all 0.3s;
91
- }
92
-
93
- p.images-name {
94
- text-overflow: ellipsis;
95
- white-space: nowrap;
96
- overflow: hidden;
97
- font-size: 10px;
98
- margin: 5px 0 0 0;
99
- text-align: center;
100
- padding: 0;
101
- }
102
-
103
- .right-column {
104
- flex: 2;
105
- background-color: #ffffff;
106
- padding: 20px;
107
- overflow-y: auto;
108
- max-height: 100vh;
109
- }
110
-
111
- .backbutton {
112
- box-sizing: border-box;
113
- border-radius: 10px;
114
- color: var(--secondary-color);
115
- padding: 1em 1.8em;
116
- display: flex;
117
- transition: 0.2s background;
118
- align-items: center;
119
- gap: 0.6em;
120
- font-weight: bold;
121
- background: rgba(255, 255, 255, 0.6);
122
- backdrop-filter: blur(10px);
123
- border: none;
124
- cursor: pointer;
125
- position: fixed;
126
- z-index: 999;
127
- }
128
-
129
- .backbutton span {
130
- text-decoration: none;
131
- color: black;
132
- font-family: 'Poppins', sans-serif, Arial, Helvetica;
133
- font-size: 14px;
134
- font-weight: 300;
135
- }
136
-
137
- .backbutton:hover {
138
- background: linear-gradient(45deg, #FF6347, #FFA07A);
139
- transition: all .3s ease-in-out;
140
- }
141
-
142
- .backbutton:hover span {
143
- color: white;
144
- transition: all .3s ease-in-out;
145
- }
146
-
147
- .backbutton:hover i {
148
- color: white;
149
- transition: all .3s ease-in-out;
150
- }
151
-
152
- .left-column h1 {
153
- padding-top: 45px;
154
- }
155
-
156
- #canvas-container {
157
- position: relative;
158
- width: 100%;
159
- height: 100%;
160
- }
161
-
162
- #canvas {
163
- cursor: grab;
164
- user-select: none;
165
- }
166
-
167
- #upload-input {
168
- margin-top: 10px;
169
- object-position: center;
170
- }
171
-
172
- .bordered-table {
173
- justify-content: center;
174
- display: flex;
175
- padding: 0px 30px;
176
- }
177
-
178
- .bordered-table tbody td.full-width {
179
- display: flex;
180
- flex-wrap: wrap;
181
- align-items: center;
182
- }
183
-
184
- .bordered-table tbody td.full-width .label {
185
- width: 100px;
186
- text-align: right;
187
- margin-right: 5px;
188
- }
189
-
190
- .bordered-table tbody td .full-width input {
191
- flex-grow: 1;
192
- }
193
-
194
- .bordered-table tbody td.full-width {
195
- display: grid;
196
- grid-template-columns: 100px 1fr;
197
- }
198
-
199
- .bordered-table tbody td.full-width .label {
200
- justify-self: end;
201
- }
202
-
203
- #logox {
204
- display: flex;
205
- justify-content: center;
206
- }
207
-
208
- #logox img {
209
- position: relative;
210
- object-position: center;
211
- width: 25%;
212
- height: 25%;
213
- padding: 10px 10px 10px 10px;
214
- }
215
-
216
- .receipt {
217
- margin: 20px 20px;
218
- }
219
-
220
- .receipt1 {
221
- margin: 20px 20px;
222
- font: 14px;
223
- }
224
-
225
- .receipt1 table {
226
- border-radius: 10px;
227
- }
228
-
229
- .receipt h1 {
230
- text-align: center;
231
- }
232
-
233
- .receipt .details {
234
- margin: 0px 0px 0px 15px;
235
- }
236
-
237
- .receipt table {
238
- width: 100%;
239
- border-collapse: collapse;
240
- margin-bottom: 20px;
241
- }
242
-
243
- .receipt table {
244
- border-radius: 10px;
245
- }
246
-
247
- .receipt table th,
248
- .receipt table td {
249
- border: 1px solid #ccc;
250
- padding: 5px;
251
- }
252
-
253
- .receipt table th {
254
- background-color: #f0f0f0;
255
- text-align: left;
256
- font-size: 16px;
257
- font-weight: 500;
258
- text-align: center;
259
- }
260
-
261
- .receipt table td {
262
- text-align: center;
263
- font-size: 14px;
264
- max-width: 150px;
265
- /* Set the maximum width */
266
- overflow: hidden;
267
- text-overflow: ellipsis;
268
- white-space: nowrap;
269
- padding: 0 20px;
270
- }
271
-
272
- #dataTable {
273
- border-radius: 10px;
274
- border-collapse: collapse;
275
- width: 100%;
276
- width: 100%;
277
- border-collapse: collapse;
278
- table-layout: fixed;
279
- overflow-x: auto;
280
- }
281
-
282
- #receiptdiv {
283
- display: none;
284
- }
285
-
286
- #dataTable th,
287
- #dataTable td {
288
- font-size: 12px;
289
- text-align: center;
290
- padding: 3px;
291
- }
292
-
293
- #downloadbutton {
294
- display: none;
295
- }
296
-
297
- #loadingSpinner {
298
- position: relative;
299
- top: 20%;
300
- left: 50%;
301
- transform: translate(-50%, -50%);
302
- border: 4px solid rgba(0, 0, 0, 0.1);
303
- border-left: 4px solid #FF8B4A;
304
- border-radius: 50%;
305
- width: 30px;
306
- height: 30px;
307
- animation: spin 1s linear infinite;
308
- display: none;
309
- /* Hide initially */
310
- }
311
-
312
- @keyframes spin {
313
- 0% {
314
- transform: rotate(0deg);
315
- }
316
-
317
- 100% {
318
- transform: rotate(360deg);
319
- }
320
- }
321
-
322
- #uploadbutton:disabled {
323
- cursor: not-allowed;
324
- background-color: #dddddd;
325
- }
326
-
327
- .labels {
328
- margin: 0 0 0 20px;
329
- font-weight: 500;
330
- }
331
-
332
- .labels p {
333
- font-size: 14px;
334
- padding-top: 8px;
335
- line-height: 5px;
336
- color: ccc;
337
- padding: 8px 0 0 0;
338
- text-align: left;
339
- }
340
-
341
- #filenm {
342
- position: relative;
343
- z-index: 999;
344
- }
345
-
346
- .valid {
347
- padding-left: 8px;
348
- font-weight: 300;
349
- font-size: 14px;
350
- }
351
-
352
- .details1 {
353
- border-radius: 10px;
354
- z-index: -1;
355
- }
356
-
357
- .details {}
358
-
359
- .exportbutton {
360
- margin-right: 17px;
361
- box-sizing: border-box;
362
- border-radius: 10px;
363
- padding: 1em 1.8em;
364
- display: flex;
365
- transition: 0.2s background;
366
- align-items: center;
367
- gap: 0.6em;
368
- font-weight: 400;
369
- background: linear-gradient(45deg, #FF6347, #FFA07A);
370
- backdrop-filter: blur(10px);
371
- border: 2px solid transparent;
372
- color: white;
373
- cursor: pointer;
374
- }
375
-
376
- .exportbutton:hover {
377
- border: 2px solid #FF8B4A;
378
- background: #f5f5f5;
379
- color: #000;
380
- transition: all .3s ease-in-out;
381
- }
382
-
383
- @media (max-width: 1024px) {
384
- .filenm {
385
- border-radius: 10px;
386
- gap: 0.3em;
387
- font-size: 9px;
388
- padding: 9px 11px;
389
- margin: 0;
390
- }
391
-
392
- .filenm span {
393
- text-overflow: ellipsis;
394
- white-space: nowrap;
395
- overflow: hidden;
396
- }
397
-
398
- .backbutton span {
399
- font-size: 9px;
400
- }
401
-
402
- .backbutton {
403
- padding: 12px 14px;
404
- border-radius: 10px;
405
- }
406
-
407
- .receipt {
408
- margin: 15px 15px;
409
- }
410
-
411
- p {
412
- padding: 10px;
413
- font-size: 13px;
414
- }
415
-
416
- p.desc {
417
- font-size: 8px;
418
- text-align: left;
419
- }
420
-
421
- .labels {
422
- text-align: left;
423
- }
424
-
425
- .labels p {
426
- padding: 8px 0 8px 0;
427
- }
428
-
429
- .avatargif img {
430
- margin-top: 1.5em;
431
- }
432
- }
433
-
434
- @media (max-width: 768px) {
435
- #logox img {
436
- position: relative;
437
- object-position: center;
438
- width: 30%;
439
- height: 30%;
440
- padding: 10px 10px 10px 10px;
441
- }
442
-
443
- .filenm {
444
- border-radius: 6px;
445
- gap: 0.3em;
446
- font-size: 10px;
447
- padding: 10px 12px;
448
- margin: 0;
449
- }
450
-
451
- .filenm span {
452
- text-overflow: ellipsis;
453
- white-space: nowrap;
454
- overflow: hidden;
455
- }
456
-
457
- .backbutton span {
458
- font-size: 10px;
459
- }
460
-
461
- .backbutton {
462
- padding: 12px 14px;
463
- border-radius: 6px;
464
- }
465
-
466
- .labels {
467
- padding: 0 0 5px 0;
468
- margin: 0;
469
- }
470
-
471
- p {
472
- padding: 8px;
473
- font-size: 12px;
474
- }
475
-
476
- .uploadbutton {
477
- padding: 8px 24px;
478
- font-size: 14px;
479
- font-weight: 300;
480
- }
481
-
482
- p.desc {
483
- font-size: 6px;
484
- line-height: 12px;
485
- }
486
-
487
- .valid {
488
- padding-left: 5px;
489
- font-size: 12px;
490
- }
491
-
492
- .labels p {
493
- padding: 8px 0 8px 0;
494
- }
495
-
496
- #dataTable th,
497
- #dataTable td {
498
- font-size: 6px;
499
- text-align: left;
500
- padding: 1px;
501
- }
502
-
503
- .exportbutton {
504
- margin-left: 17px;
505
- border-radius: 5px;
506
- padding: .8em 1em;
507
- font-weight: 300;
508
- font-size: 12px;
509
- }
510
-
511
- .avatargif img {
512
- margin-top: 1.25em;
513
- }
514
- }
515
-
516
- @media screen and (max-width: 576px) {
517
-
518
- /* Styles for screens up to 576px wide */
519
- .containerz {
520
- flex-direction: column;
521
- }
522
-
523
- .left-column,
524
- .right-column {
525
- flex: 1;
526
- width: 100%;
527
- }
528
-
529
- .left-column {
530
- box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
531
- padding: 10px;
532
- }
533
-
534
- .right-column {
535
- border-radius: 20px;
536
- flex: 1.2;
537
- }
538
-
539
- .filenm {
540
- border-radius: 7px;
541
- gap: 0.3em;
542
- font-size: 12px;
543
- white-space: nowrap;
544
- overflow: hidden;
545
- text-overflow: ellipsis;
546
- padding: 8px 10px;
547
- margin: 0;
548
- }
549
-
550
- .backbutton span {
551
- font-size: 12px;
552
- }
553
-
554
- .backbutton {
555
- padding: 8px 10px;
556
- border-radius: 7px;
557
- }
558
-
559
- .labels {
560
- padding: 0 0 5px 0;
561
- margin: 0;
562
- }
563
-
564
- .uploadbutton {
565
- padding: 6px 22px;
566
- font-size: 12px;
567
- font-weight: 300;
568
- }
569
-
570
- p.desc {
571
- font-size: 4px;
572
- text-align: left;
573
- line-height: 10px;
574
- }
575
-
576
- .valid {
577
- padding-left: 5px;
578
- font-size: 10px;
579
- }
580
-
581
- .labels p {
582
- padding: 8px 0 8px 0;
583
- }
584
-
585
- #dataTable th,
586
- #dataTable td {
587
- font-size: 6px;
588
- text-align: left;
589
- padding: 1px;
590
- }
591
-
592
- .exportbutton {
593
- margin-left: 17px;
594
- border-radius: 5px;
595
- padding: .5em .8em;
596
- font-weight: 300;
597
- font-size: 10px;
598
- }
599
-
600
- .avatargif img {
601
- margin-top: 1em;
602
- }
603
- }
604
-
605
- p.desc {
606
- font-size: 10px;
607
- font-family: 'Poppins';
608
- font-weight: 200;
609
- margin: 0;
610
- padding: 0;
611
- line-height: 12px;
612
- font-style: italic;
613
- }
614
-
615
- .fa-spinner {
616
- font-size: 16px;
617
- }
618
-
619
- .avatargif {
620
- display: flex;
621
- justify-content: center;
622
- align-items: center;
623
- }
624
-
625
- .avatargif img {
626
- margin-top: 3.5em;
627
- width: 40%;
628
- height: 40%;
629
- }
630
-
631
- .red-border {
632
- border: 2px solid red;
633
- }
634
-
635
- .green-border {
636
- border: 2px solid green;
637
- }
638
-
639
- ::-webkit-scrollbar {
640
- display: none;
641
- }
642
-
643
- .image-container:hover .tooltiptext {
644
- visibility: visible;
645
- opacity: 1;
646
- }
647
-
648
- .tooltiptext {
649
- font-size: 12px;
650
- visibility: hidden;
651
- width: 160px;
652
- background-color: #333;
653
- color: #fff;
654
- text-align: center;
655
- border-radius: 8px;
656
- padding: 5px;
657
- position: absolute;
658
- z-index: 99;
659
- bottom: 105%;
660
- left: 50%;
661
- margin-left: -80px;
662
- opacity: 0;
663
- transition: opacity 0.3s;
664
- }
665
-
666
- .tooltiptext::after {
667
- content: "";
668
- position: absolute;
669
- top: 100%;
670
- left: 50%;
671
- margin-left: -5px;
672
- border-width: 5px;
673
- border-style: solid;
674
- border-color: #333 transparent transparent transparent;
675
- }
676
-
677
- .zoomed-image-container {
678
- position: fixed;
679
- top: 0;
680
- left: 0;
681
- width: 50%;
682
- height: 100%;
683
- background-color: rgba(0, 0, 0, 0.8);
684
- display: flex;
685
- justify-content: center;
686
- align-items: center;
687
- z-index: 999;
688
- }
689
-
690
- .zoomed-image-container img {
691
- max-width: 90%;
692
- max-height: 90%;
693
- object-fit: contain;
694
- }
695
-
696
- @media (max-width: 576px) {
697
- .zoomed-image-container {
698
- position: fixed;
699
- top: 0;
700
- left: 0;
701
- width: 100%;
702
- height: 45%;
703
- background-color: rgba(0, 0, 0, 0.8);
704
- display: flex;
705
- justify-content: center;
706
- align-items: center;
707
- z-index: 999;
708
- /* Optional: If you want to hide the scrollbar in Firefox */
709
- scrollbar-width: none;
710
- }
711
- }
712
- </style>
713
  <script src="https://cdn.lordicon.com/lordicon.js"></script>
714
  </head>
715
 
@@ -830,7 +150,8 @@
830
 
831
  <div style="text-align: center; display: none; justify-content: center;" id="downloadbutton">
832
  <a href="{{ url_for('download_csv') }}">
833
- <button class="exportbutton" type="submit"><i class="fa-solid fa-download"></i>Download CSV</button>
 
834
  </a>
835
  <button class="exportbutton" onclick="window.location.href='{{ index_url }}'">
836
  <span id="uploadIcon"><i class="fas fa-upload"></i></span>
@@ -843,6 +164,8 @@
843
  </div>
844
  <a href="https://lordicon.com/" hidden>Icons by Lordicon.com</a>
845
  <script>
 
 
846
  document.addEventListener('DOMContentLoaded', function () {
847
  const dataTable = document.getElementById('receiptdiv');
848
  const loadingSpinner = document.getElementById('loadingIcon');
@@ -937,7 +260,44 @@
937
  }
938
 
939
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
940
  </script>
 
 
 
941
  <!-- Include JavaScript resources -->
942
  <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
943
  <script src="/static/js/jquery.1.8.3.min.js"></script>
 
9
  <link rel="shortcut icon" href="/static/images/favicon.ico" title="Favicon" />
10
 
11
  <!-- Main CSS Files -->
12
+ <!-- <link rel="stylesheet" href="/static/css/style.css"> -->
13
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
14
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/extractor.css') }}">
15
 
16
  <!-- Color CSS -->
17
  <link rel="stylesheet" href="/static/css/color.css">
 
29
  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600&display=swap"
30
  rel="stylesheet">
31
  <title>ExCeipt | Extractor</title>
32
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  <script src="https://cdn.lordicon.com/lordicon.js"></script>
34
  </head>
35
 
 
150
 
151
  <div style="text-align: center; display: none; justify-content: center;" id="downloadbutton">
152
  <a href="{{ url_for('download_csv') }}">
153
+ <button id="downloadButton" class="exportbutton" type="submit"><i
154
+ class="fa-solid fa-download"></i>Download CSV</button>
155
  </a>
156
  <button class="exportbutton" onclick="window.location.href='{{ index_url }}'">
157
  <span id="uploadIcon"><i class="fas fa-upload"></i></span>
 
164
  </div>
165
  <a href="https://lordicon.com/" hidden>Icons by Lordicon.com</a>
166
  <script>
167
+ const index_url = '{{ index_url }}'; // Replace with the actual value if it's not supposed to be a template variable
168
+
169
  document.addEventListener('DOMContentLoaded', function () {
170
  const dataTable = document.getElementById('receiptdiv');
171
  const loadingSpinner = document.getElementById('loadingIcon');
 
260
  }
261
 
262
  });
263
+
264
+ document.querySelector('#downloadButton').addEventListener('click', function (event) {
265
+ event.preventDefault(); // Prevent the default action
266
+
267
+ const tbody = document.querySelector('#dataTable tbody');
268
+ const rows = Array.from(tbody.querySelectorAll('tr'));
269
+
270
+ // Define your headers
271
+ const headers = ['RECEIPTNUMBER', 'MERCHANTNAME', 'MERCHANTADDRESS', 'TRANSACTIONDATE', 'TRANSACTIONTIME', 'ITEMS', 'PRICE', 'TOTAL', 'VATTAX'];
272
+
273
+ // Convert the content to CSV format
274
+ const csvData = [headers.join(',')].concat(rows.map(row => {
275
+ const cells = Array.from(row.querySelectorAll('td'));
276
+ return cells.map(cell => cell.textContent.replace(/,/g, '.')).join(',');
277
+ })).join('\n');
278
+
279
+ // Send a POST request to the server with the CSV data
280
+ fetch(index_url + 'download_csv', {
281
+ method: 'POST',
282
+ headers: {
283
+ 'Content-Type': 'text/csv'
284
+ },
285
+ body: csvData
286
+ })
287
+ .then(response => response.blob())
288
+ .then(blob => {
289
+ // Create a Blob URL and initiate the download
290
+ const url = URL.createObjectURL(blob);
291
+ const a = document.createElement('a');
292
+ a.href = url;
293
+ a.download = 'data.csv';
294
+ a.click();
295
+ });
296
+ });
297
  </script>
298
+
299
+
300
+
301
  <!-- Include JavaScript resources -->
302
  <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
303
  <script src="/static/js/jquery.1.8.3.min.js"></script>