akazmi commited on
Commit
3e87b5e
·
verified ·
1 Parent(s): cdd525a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -18
app.py CHANGED
@@ -51,29 +51,41 @@ def parse_txt_file(content: str):
51
  line_check = line.replace('-', '').replace('=', '').strip()
52
  if not line_check:
53
  continue
 
 
54
  account_match = re.match(r'^([A-Z\s/(),.\-&]+?)\s{2,}(-?\d)', line)
55
  if account_match:
56
  account_name = account_match.group(1).strip()
57
  numbers_line = line[len(account_match.group(1)):].strip()
58
  all_values = re.findall(r'(-?\d{1,3}(?:,\d{3})*(?:\.\d+)?|n/m)', numbers_line)
59
- row = {'Account Description': account_name}
60
- column_mapping = [
61
- f'YTD Actual {current_period}',
62
- f'% {current_period} (YTD)',
63
- f'YTD Budget {current_period}',
64
- f'% {current_period} (Budget)',
65
- f'YTD Actual {prior_period}',
66
- f'% {prior_period}',
67
- '% Inc/Dec vs Budget',
68
- '% Inc/Dec vs SPLY',
69
- f'QTD Actual {current_period}',
70
- f'QTD Budget {current_period}',
71
- f'QTD Actual {prior_period}'
72
- ]
73
- for idx, col_name in enumerate(column_mapping):
74
- if idx < len(all_values):
75
- row[col_name] = all_values[idx]
76
- data.append(row)
 
 
 
 
 
 
 
 
 
 
77
  return data, periods
78
 
79
  # ----------------------------
 
51
  line_check = line.replace('-', '').replace('=', '').strip()
52
  if not line_check:
53
  continue
54
+
55
+ # ---- Account name and values ----
56
  account_match = re.match(r'^([A-Z\s/(),.\-&]+?)\s{2,}(-?\d)', line)
57
  if account_match:
58
  account_name = account_match.group(1).strip()
59
  numbers_line = line[len(account_match.group(1)):].strip()
60
  all_values = re.findall(r'(-?\d{1,3}(?:,\d{3})*(?:\.\d+)?|n/m)', numbers_line)
61
+ else:
62
+ # NEW FIX ➜ include rows with no numeric values
63
+ account_name = line.strip()
64
+ all_values = []
65
+
66
+ # Always build a row, even if no numbers found
67
+ row = {'Account Description': account_name}
68
+ column_mapping = [
69
+ f'YTD Actual {current_period}',
70
+ f'% {current_period} (YTD)',
71
+ f'YTD Budget {current_period}',
72
+ f'% {current_period} (Budget)',
73
+ f'YTD Actual {prior_period}',
74
+ f'% {prior_period}',
75
+ '% Inc/Dec vs Budget',
76
+ '% Inc/Dec vs SPLY',
77
+ f'QTD Actual {current_period}',
78
+ f'QTD Budget {current_period}',
79
+ f'QTD Actual {prior_period}'
80
+ ]
81
+ for idx, col_name in enumerate(column_mapping):
82
+ if idx < len(all_values):
83
+ row[col_name] = all_values[idx]
84
+ else:
85
+ row[col_name] = '' # blank if missing numeric
86
+
87
+ data.append(row)
88
+
89
  return data, periods
90
 
91
  # ----------------------------