|
1 | 1 | import json
|
2 | 2 | from collections import defaultdict
|
3 | 3 | from io import BufferedReader
|
4 |
| -from typing import Dict, Optional, Sequence, TypeVar |
| 4 | +from typing import Dict, Optional, Sequence, TypeVar, TypedDict |
5 | 5 |
|
6 | 6 | import requests
|
7 | 7 |
|
|
61 | 61 | AsyncResponseType,
|
62 | 62 | )
|
63 | 63 |
|
64 |
| -ParamsApi = TypeVar("ParamsApi") |
65 |
| - |
| 64 | +class RequestParams(TypedDict): |
| 65 | + headers: Dict[str, str] |
| 66 | + files: Dict[str, BufferedReader] |
66 | 67 |
|
67 | 68 | class MindeeApi(ProviderInterface, OcrInterface):
|
68 | 69 | provider_name = "mindee"
|
@@ -90,32 +91,22 @@ def __init__(self, api_keys: Dict = {}) -> None:
|
90 | 91 | )
|
91 | 92 |
|
92 | 93 | def _get_api_attributes(
|
93 |
| - self, file: BufferedReader, language: Optional[str] = None |
94 |
| - ) -> ParamsApi: |
95 |
| - params: ParamsApi = { |
96 |
| - "headers": {"Authorization": self.api_key}, |
97 |
| - "files": {"document": file}, |
98 |
| - "params": { |
99 |
| - "local": { |
100 |
| - "langage": language.split("-")[0], |
101 |
| - "country": language.split("-")[1], |
102 |
| - } |
103 |
| - } |
104 |
| - if language |
105 |
| - else None, |
106 |
| - } |
107 |
| - return params |
| 94 | + self, file: BufferedReader |
| 95 | + ) -> RequestParams: |
| 96 | + return RequestParams( |
| 97 | + headers={"Authorization": self.api_key}, |
| 98 | + files={"document": file}, |
| 99 | + ) |
108 | 100 |
|
109 | 101 | def ocr__receipt_parser(
|
110 | 102 | self, file: str, language: str, file_url: str = ""
|
111 | 103 | ) -> ResponseType[ReceiptParserDataClass]:
|
112 | 104 | file_ = open(file, "rb")
|
113 |
| - args = self._get_api_attributes(file_, language) |
| 105 | + args = self._get_api_attributes(file_) |
114 | 106 | response = requests.post(
|
115 | 107 | self.url_receipt,
|
116 | 108 | headers=args["headers"],
|
117 | 109 | files=args["files"],
|
118 |
| - params=args["params"], |
119 | 110 | )
|
120 | 111 | original_response = response.json()
|
121 | 112 |
|
@@ -210,8 +201,7 @@ def ocr__invoice_parser(
|
210 | 201 | }
|
211 | 202 | file_ = open(file, "rb")
|
212 | 203 | files = {"document": file_}
|
213 |
| - params = {"locale": {"language": language}} |
214 |
| - response = requests.post(self.url, headers=headers, files=files, params=params) |
| 204 | + response = requests.post(self.url, headers=headers, files=files) |
215 | 205 | original_response = response.json()
|
216 | 206 |
|
217 | 207 | file_.close()
|
@@ -546,9 +536,8 @@ def ocr__financial_parser(
|
546 | 536 | }
|
547 | 537 | file_ = open(file, "rb")
|
548 | 538 | files = {"document": file_}
|
549 |
| - params = {"locale": {"language": language}} |
550 | 539 | response = requests.post(
|
551 |
| - self.url_financial, headers=headers, files=files, params=params |
| 540 | + self.url_financial, headers=headers, files=files |
552 | 541 | )
|
553 | 542 | original_response = response.json()
|
554 | 543 |
|
|
0 commit comments