11import os
2- from typing import Dict , Optional
2+ from typing import Dict , Optional , Union
33
44import requests
55
66from mindee .error .mindee_error import MindeeApiV2Error
7- from mindee .input import LocalInputSource
7+ from mindee .input import LocalInputSource , UrlInputSource
88from mindee .input .inference_parameters import InferenceParameters
99from mindee .logger import logger
1010from mindee .mindee_http .base_settings import USER_AGENT
@@ -68,7 +68,9 @@ def set_from_env(self) -> None:
6868 logger .debug ("Value was set from env: %s" , name )
6969
7070 def req_post_inference_enqueue (
71- self , input_source : LocalInputSource , params : InferenceParameters
71+ self ,
72+ input_source : Union [LocalInputSource , UrlInputSource ],
73+ params : InferenceParameters ,
7274 ) -> requests .Response :
7375 """
7476 Make an asynchronous request to POST a document for prediction on the V2 API.
@@ -87,14 +89,25 @@ def req_post_inference_enqueue(
8789 if params .alias and len (params .alias ):
8890 data ["alias" ] = params .alias
8991
90- files = {"file" : input_source .read_contents (params .close_file )}
91- response = requests .post (
92- url = url ,
93- files = files ,
94- headers = self .base_headers ,
95- data = data ,
96- timeout = self .request_timeout ,
97- )
92+ if isinstance (input_source , LocalInputSource ):
93+ files = {"file" : input_source .read_contents (params .close_file )}
94+ response = requests .post (
95+ url = url ,
96+ files = files ,
97+ headers = self .base_headers ,
98+ data = data ,
99+ timeout = self .request_timeout ,
100+ )
101+ elif isinstance (input_source , UrlInputSource ):
102+ data ["url" ] = input_source .url
103+ response = requests .post (
104+ url = url ,
105+ headers = self .base_headers ,
106+ data = data ,
107+ timeout = self .request_timeout ,
108+ )
109+ else :
110+ raise MindeeApiV2Error ("Invalid input source." )
98111 return response
99112
100113 def req_get_job (self , job_id : str ) -> requests .Response :
0 commit comments