Skip to content

Commit 9f04f00

Browse files
✨ add n_pages attribute to document (#197)
1 parent 01a48fc commit 9f04f00

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

mindee/parsing/common/document.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ class Document(Generic[TypePrediction, TypePage]):
3232
extras: Optional[Extras]
3333
"""Potential Extras fields sent back along the prediction"""
3434
ocr: Optional[Ocr]
35+
"""Potential raw text results read by the OCR (limited feature)"""
36+
n_pages: int
37+
"""Amount of pages in the document"""
3538

3639
def __init__(
3740
self,
@@ -45,6 +48,7 @@ def __init__(
4548
if "extras" in raw_response and raw_response["extras"]:
4649
self.extras = Extras(raw_response["extras"])
4750
self.inference = inference_type(raw_response["inference"])
51+
self.n_pages = raw_response["n_pages"]
4852

4953
def __str__(self) -> str:
5054
return (

tests/api/test_response.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,24 @@
99
from mindee.product.fr.id_card.id_card_v2 import IdCardV2
1010
from mindee.product.fr.id_card.id_card_v2_document import IdCardV2Document
1111
from mindee.product.fr.id_card.id_card_v2_page import IdCardV2Page
12+
from mindee.product.invoice.invoice_v4 import InvoiceV4
13+
from mindee.product.invoice.invoice_v4_document import InvoiceV4Document
1214
from mindee.product.passport.passport_v1 import PassportV1
1315
from mindee.product.passport.passport_v1_document import PassportV1Document
1416
from mindee.product.receipt.receipt_v4_document import ReceiptV4Document
1517

1618

19+
def test_invoice_receipt_v4():
20+
response = json.load(
21+
open("./tests/data/products/invoices/response_v4/complete.json")
22+
)
23+
parsed_response = PredictResponse(InvoiceV4, response)
24+
assert isinstance(parsed_response.document.inference, InvoiceV4)
25+
for page in parsed_response.document.inference.pages:
26+
assert isinstance(page.prediction, InvoiceV4Document)
27+
assert parsed_response.document.n_pages == 2
28+
29+
1730
def test_response_receipt_v4():
1831
response = json.load(
1932
open("./tests/data/products/expense_receipts/response_v4/complete.json")
@@ -22,6 +35,7 @@ def test_response_receipt_v4():
2235
assert isinstance(parsed_response.document.inference, ReceiptV4)
2336
for page in parsed_response.document.inference.pages:
2437
assert isinstance(page.prediction, ReceiptV4Document)
38+
assert parsed_response.document.n_pages == 1
2539

2640

2741
def test_response_financial_doc_with_receipt():
@@ -48,6 +62,7 @@ def test_response_passport_v1():
4862
assert isinstance(parsed_response.document.inference.prediction, PassportV1Document)
4963
for page in parsed_response.document.inference.pages:
5064
assert isinstance(page.prediction, PassportV1Document)
65+
assert parsed_response.document.n_pages == 1
5166

5267

5368
def test_response_fr_idcard_v2():
@@ -59,3 +74,4 @@ def test_response_fr_idcard_v2():
5974
assert isinstance(parsed_response.document.inference.prediction, IdCardV2Document)
6075
for page in parsed_response.document.inference.pages:
6176
assert isinstance(page.prediction, IdCardV2Page)
77+
assert parsed_response.document.n_pages == 1

0 commit comments

Comments
 (0)