Update app.py
Browse files
app.py
CHANGED
|
@@ -51,14 +51,14 @@ def parse_po_items_with_filters(text):
|
|
| 51 |
# Match the start of a new item
|
| 52 |
item_match = re.match(r"^(?P<Item>\d+)\s+(?P<Description>.+)", line)
|
| 53 |
if item_match:
|
| 54 |
-
#
|
| 55 |
if current_item:
|
|
|
|
| 56 |
current_item["Description"] = clean_description(
|
| 57 |
" ".join(description_accumulator).strip(),
|
| 58 |
item_number=int(current_item["Item"]),
|
| 59 |
)
|
| 60 |
data.append(current_item)
|
| 61 |
-
description_accumulator = []
|
| 62 |
|
| 63 |
# Start a new item
|
| 64 |
current_item = {
|
|
@@ -69,7 +69,7 @@ def parse_po_items_with_filters(text):
|
|
| 69 |
"Unit Price": "",
|
| 70 |
"Total Price": "",
|
| 71 |
}
|
| 72 |
-
description_accumulator
|
| 73 |
elif current_item:
|
| 74 |
# Accumulate additional lines for the current item's description
|
| 75 |
description_accumulator.append(line.strip())
|
|
@@ -95,10 +95,10 @@ def parse_po_items_with_filters(text):
|
|
| 95 |
item_number=int(current_item["Item"]),
|
| 96 |
)
|
| 97 |
data.append(current_item)
|
| 98 |
-
description_accumulator = []
|
| 99 |
current_item = None # Reset for the next item
|
|
|
|
| 100 |
|
| 101 |
-
#
|
| 102 |
if current_item:
|
| 103 |
current_item["Description"] = clean_description(
|
| 104 |
" ".join(description_accumulator).strip(),
|
|
@@ -106,7 +106,7 @@ def parse_po_items_with_filters(text):
|
|
| 106 |
)
|
| 107 |
data.append(current_item)
|
| 108 |
|
| 109 |
-
# Remove invalid rows
|
| 110 |
data = [row for row in data if row["Description"]]
|
| 111 |
|
| 112 |
# Return data as a DataFrame
|
|
|
|
| 51 |
# Match the start of a new item
|
| 52 |
item_match = re.match(r"^(?P<Item>\d+)\s+(?P<Description>.+)", line)
|
| 53 |
if item_match:
|
| 54 |
+
# If current_item is not None, finalize and add the previous item
|
| 55 |
if current_item:
|
| 56 |
+
# Only update description if there's a valid current_item
|
| 57 |
current_item["Description"] = clean_description(
|
| 58 |
" ".join(description_accumulator).strip(),
|
| 59 |
item_number=int(current_item["Item"]),
|
| 60 |
)
|
| 61 |
data.append(current_item)
|
|
|
|
| 62 |
|
| 63 |
# Start a new item
|
| 64 |
current_item = {
|
|
|
|
| 69 |
"Unit Price": "",
|
| 70 |
"Total Price": "",
|
| 71 |
}
|
| 72 |
+
description_accumulator = [item_match.group("Description")] # Start accumulating description
|
| 73 |
elif current_item:
|
| 74 |
# Accumulate additional lines for the current item's description
|
| 75 |
description_accumulator.append(line.strip())
|
|
|
|
| 95 |
item_number=int(current_item["Item"]),
|
| 96 |
)
|
| 97 |
data.append(current_item)
|
|
|
|
| 98 |
current_item = None # Reset for the next item
|
| 99 |
+
description_accumulator = []
|
| 100 |
|
| 101 |
+
# Ensure the last item is added if necessary
|
| 102 |
if current_item:
|
| 103 |
current_item["Description"] = clean_description(
|
| 104 |
" ".join(description_accumulator).strip(),
|
|
|
|
| 106 |
)
|
| 107 |
data.append(current_item)
|
| 108 |
|
| 109 |
+
# Remove invalid rows (e.g., missing descriptions)
|
| 110 |
data = [row for row in data if row["Description"]]
|
| 111 |
|
| 112 |
# Return data as a DataFrame
|