Skip to content

Commit 5968338

Browse files
✨ add default non-sdk async sample code (#180)
1 parent 57dfd13 commit 5968338

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import json
2+
import requests
3+
from time import sleep
4+
5+
api_key = "my-api-key"
6+
account = "my-account"
7+
endpoint = "my-endpoint"
8+
version = "my-version"
9+
10+
url_enqueue = f"https://api.mindee.net/v1/products/{account}/{endpoint}/v{version}/predict_async"
11+
headers = {"Authorization": f"Token {api_key}"}
12+
13+
with open("/path/to/the/file.ext", "rb") as file_handle:
14+
files = {"document": file_handle}
15+
response_enqueue = requests.post(url_enqueue, files=files, headers=headers)
16+
17+
json_response_enqueue = response_enqueue.json()
18+
19+
if not response_enqueue.ok:
20+
raise RuntimeError(json_response_enqueue["api_request"]["error"])
21+
22+
job_id = json_response_enqueue["job"]["id"]
23+
24+
url_parse_queued = f"https://api.mindee.net/v1/products/{account}/{endpoint}/v{version}/documents/queue/{job_id}"
25+
sleep(4)
26+
response_parse = requests.get(url_parse_queued, headers=headers)
27+
tries = 1
28+
while tries < 10:
29+
if not response_parse.ok:
30+
raise RuntimeError(json_response_enqueue["api_request"]["error"])
31+
32+
response_parse = requests.get(url_parse_queued, headers=headers)
33+
json_response_parse = response_parse.json()
34+
if json_response_parse["job"]["status"] == "completed":
35+
break
36+
else:
37+
print(json_response_parse["job"])
38+
39+
tries += 1
40+
sleep(2)
41+
42+
if json_response_parse["job"]["status"] != "completed":
43+
raise RuntimeError(f"Async parsing timed out after {tries} tries")
44+
45+
print(json.dumps(json_response_parse["document"], indent=2))

tests/test_code_samples.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,12 @@ do
3030
sed -i "s/my-version/1/" $OUTPUT_FILE
3131
fi
3232

33+
if echo "${f}" | grep -q "default_async.txt"
34+
then
35+
sed -i "s/my-account/mindee/" $OUTPUT_FILE
36+
sed -i "s/my-endpoint/invoice_splitter/" $OUTPUT_FILE
37+
sed -i "s/my-version/1/" $OUTPUT_FILE
38+
fi
39+
3340
python $OUTPUT_FILE
3441
done

0 commit comments

Comments
 (0)