Skip to content

Commit aa31864

Browse files
✨ update financial document to 1.7 & receipt to 5.2 (#234)
1 parent 47a8a84 commit aa31864

File tree

7 files changed

+48
-5
lines changed

7 files changed

+48
-5
lines changed

docs/extras/guide/expense_receipts_v5.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,13 @@ for line_items_elem in result.document.inference.prediction.line_items:
220220
print(result.document.inference.prediction.locale.value)
221221
```
222222

223+
## Receipt Number
224+
**receipt_number** ([StringField](#stringfield)): The receipt number or identifier.
225+
226+
```py
227+
print(result.document.inference.prediction.receipt_number.value)
228+
```
229+
223230
## Purchase Subcategory
224231
**subcategory** ([ClassificationField](#classificationfield)): The purchase subcategory among predefined classes for transport and food.
225232

docs/extras/guide/financial_document_v1.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,13 @@ print(result.document.inference.prediction.customer_name.value)
275275
print(result.document.inference.prediction.date.value)
276276
```
277277

278+
## Document Number
279+
**document_number** ([StringField](#stringfield)): The document number or identifier.
280+
281+
```py
282+
print(result.document.inference.prediction.document_number.value)
283+
```
284+
278285
## Document Type
279286
**document_type** ([ClassificationField](#classificationfield)): One of: 'INVOICE', 'CREDIT NOTE', 'CREDIT CARD RECEIPT', 'EXPENSE RECEIPT'.
280287

@@ -290,7 +297,7 @@ print(result.document.inference.prediction.due_date.value)
290297
```
291298

292299
## Invoice Number
293-
**invoice_number** ([StringField](#stringfield)): The invoice number or identifier.
300+
**invoice_number** ([StringField](#stringfield)): The invoice number or identifier only if document is an invoice.
294301

295302
```py
296303
print(result.document.inference.prediction.invoice_number.value)
@@ -311,6 +318,13 @@ for line_items_elem in result.document.inference.prediction.line_items:
311318
print(result.document.inference.prediction.locale.value)
312319
```
313320

321+
## Receipt Number
322+
**receipt_number** ([StringField](#stringfield)): The receipt number or identifier only if document is a receipt.
323+
324+
```py
325+
print(result.document.inference.prediction.receipt_number.value)
326+
```
327+
314328
## Reference Numbers
315329
**reference_numbers** (List[[StringField](#stringfield)]): List of Reference numbers, including PO number.
316330

mindee/product/financial_document/financial_document_v1_document.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818

1919
class FinancialDocumentV1Document(Prediction):
20-
"""Financial Document API version 1.6 document data."""
20+
"""Financial Document API version 1.7 document data."""
2121

2222
billing_address: StringField
2323
"""The customer's address used for billing."""
@@ -33,16 +33,20 @@ class FinancialDocumentV1Document(Prediction):
3333
"""The name of the customer."""
3434
date: DateField
3535
"""The date the purchase was made."""
36+
document_number: StringField
37+
"""The document number or identifier."""
3638
document_type: ClassificationField
3739
"""One of: 'INVOICE', 'CREDIT NOTE', 'CREDIT CARD RECEIPT', 'EXPENSE RECEIPT'."""
3840
due_date: DateField
3941
"""The date on which the payment is due."""
4042
invoice_number: StringField
41-
"""The invoice number or identifier."""
43+
"""The invoice number or identifier only if document is an invoice."""
4244
line_items: List[FinancialDocumentV1LineItem]
4345
"""List of line item details."""
4446
locale: LocaleField
4547
"""The locale detected on the document."""
48+
receipt_number: StringField
49+
"""The receipt number or identifier only if document is a receipt."""
4650
reference_numbers: List[StringField]
4751
"""List of Reference numbers, including PO number."""
4852
shipping_address: StringField
@@ -116,6 +120,10 @@ def __init__(
116120
raw_prediction["date"],
117121
page_id=page_id,
118122
)
123+
self.document_number = StringField(
124+
raw_prediction["document_number"],
125+
page_id=page_id,
126+
)
119127
self.document_type = ClassificationField(
120128
raw_prediction["document_type"],
121129
page_id=page_id,
@@ -136,6 +144,10 @@ def __init__(
136144
raw_prediction["locale"],
137145
page_id=page_id,
138146
)
147+
self.receipt_number = StringField(
148+
raw_prediction["receipt_number"],
149+
page_id=page_id,
150+
)
139151
self.reference_numbers = [
140152
StringField(prediction, page_id=page_id)
141153
for prediction in raw_prediction["reference_numbers"]
@@ -246,6 +258,8 @@ def __str__(self) -> str:
246258
)
247259
out_str: str = f":Locale: {self.locale}\n"
248260
out_str += f":Invoice Number: {self.invoice_number}\n"
261+
out_str += f":Receipt Number: {self.receipt_number}\n"
262+
out_str += f":Document Number: {self.document_number}\n"
249263
out_str += f":Reference Numbers: {reference_numbers}\n"
250264
out_str += f":Purchase Date: {self.date}\n"
251265
out_str += f":Due Date: {self.due_date}\n"

mindee/product/receipt/receipt_v5_document.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515

1616
class ReceiptV5Document(Prediction):
17-
"""Receipt API version 5.1 document data."""
17+
"""Receipt API version 5.2 document data."""
1818

1919
category: ClassificationField
2020
"""The purchase category among predefined classes."""
@@ -26,6 +26,8 @@ class ReceiptV5Document(Prediction):
2626
"""List of line item details."""
2727
locale: LocaleField
2828
"""The locale detected on the document."""
29+
receipt_number: StringField
30+
"""The receipt number or identifier."""
2931
subcategory: ClassificationField
3032
"""The purchase subcategory among predefined classes for transport and food."""
3133
supplier_address: StringField
@@ -81,6 +83,10 @@ def __init__(
8183
raw_prediction["locale"],
8284
page_id=page_id,
8385
)
86+
self.receipt_number = StringField(
87+
raw_prediction["receipt_number"],
88+
page_id=page_id,
89+
)
8490
self.subcategory = ClassificationField(
8591
raw_prediction["subcategory"],
8692
page_id=page_id,
@@ -171,5 +177,6 @@ def __str__(self) -> str:
171177
)
172178
out_str += f":Supplier Address: {self.supplier_address}\n"
173179
out_str += f":Supplier Phone Number: {self.supplier_phone_number}\n"
180+
out_str += f":Receipt Number: {self.receipt_number}\n"
174181
out_str += f":Line Items: {self._line_items_to_str()}\n"
175182
return clean_out_string(out_str)

tests/product/financial_document/__init__.py

Whitespace-only changes.

tests/product/receipt/test_receipt_v5.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@ def test_empty_doc(empty_doc: ReceiptV5DocumentType):
5555
assert len(prediction.supplier_company_registrations) == 0
5656
assert prediction.supplier_address.value is None
5757
assert prediction.supplier_phone_number.value is None
58+
assert prediction.receipt_number.value is None
5859
assert len(prediction.line_items) == 0

0 commit comments

Comments
 (0)