Skip to content

Commit b65ac4f

Browse files
committed
⚰️ remove unused feedback calls from CLI
1 parent a7d450a commit b65ac4f

File tree

3 files changed

+24
-122
lines changed

3 files changed

+24
-122
lines changed

mindee/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
def main() -> None:
55
"""Run the Command Line Interface."""
66
parser = MindeeParser()
7-
parser.call_endpoint()
7+
parser.call_parse()

mindee/commands/cli_parser.py

Lines changed: 7 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
from mindee.input.sources import LocalInputSource, UrlInputSource
1010
from mindee.parsing.common.async_predict_response import AsyncPredictResponse
1111
from mindee.parsing.common.document import Document, serialize_for_json
12-
from mindee.parsing.common.feedback_response import FeedbackResponse
1312
from mindee.parsing.common.inference import Inference
1413
from mindee.parsing.common.predict_response import PredictResponse
15-
from mindee.parsing.common.string_dict import StringDict
1614

1715

1816
class MindeeArgumentParser(ArgumentParser):
@@ -75,19 +73,6 @@ def add_sending_options(self) -> None:
7573
)
7674
self.add_argument(dest="path", help="Full path to the file")
7775

78-
def add_feedback_options(self) -> None:
79-
"""Adds the option to give feedback manually."""
80-
self.add_argument(
81-
dest="document_id",
82-
help="Mindee UUID of the document.",
83-
type=str,
84-
)
85-
self.add_argument(
86-
dest="feedback",
87-
type=json.loads,
88-
help='Feedback JSON string to send, ex \'{"key": "value"}\'.',
89-
)
90-
9176
def add_custom_options(self) -> None:
9277
"""Adds options to custom-type documents."""
9378
self.add_argument(
@@ -128,8 +113,6 @@ class MindeeParser:
128113
"""Document to be parsed."""
129114
product_class: Type[Inference]
130115
"""Product to parse."""
131-
feedback: Optional[StringDict]
132-
"""Dict representation of a feedback."""
133116

134117
def __init__(
135118
self,
@@ -147,38 +130,11 @@ def __init__(
147130
else:
148131
api_key = self.parsed_args.api_key if "api_key" in self.parsed_args else ""
149132
self.client = Client(api_key=api_key)
150-
self._set_input()
133+
self.input_doc = self._get_input_doc()
151134
self.document_info = (
152135
document_info if document_info else PRODUCTS[self.parsed_args.product_name]
153136
)
154137

155-
def call_endpoint(self) -> None:
156-
"""Calls the proper type of endpoint according to given command."""
157-
if self.parsed_args.parse_type == "parse":
158-
self.call_parse()
159-
else:
160-
self.call_feedback()
161-
162-
def call_feedback(self) -> None:
163-
"""Sends feedback to an API."""
164-
custom_endpoint: Optional[Endpoint] = None
165-
if self.parsed_args.product_name in ("custom", "generated"):
166-
custom_endpoint = self.client.create_endpoint(
167-
self.parsed_args.endpoint_name,
168-
self.parsed_args.account_name,
169-
self.parsed_args.api_version,
170-
)
171-
if self.feedback is None:
172-
raise MindeeClientError("Invalid feedback provided.")
173-
174-
response: FeedbackResponse = self.client.send_feedback(
175-
self.document_info.doc_class,
176-
self.parsed_args.document_id,
177-
{"feedback": self.feedback},
178-
custom_endpoint,
179-
)
180-
print(json.dumps(response.feedback, indent=2))
181-
182138
def call_parse(self) -> None:
183139
"""Calls an endpoint with the appropriate method, and displays the results."""
184140
response: Union[PredictResponse, AsyncPredictResponse]
@@ -277,19 +233,13 @@ def _set_args(self) -> Namespace:
277233
for name, info in PRODUCTS.items():
278234
parse_subparser = parse_product_subparsers.add_parser(name, help=info.help)
279235

280-
call_parser = parse_subparser.add_subparsers(
281-
dest="parse_type", required=True
282-
)
283-
parse_subp = call_parser.add_parser("parse")
284-
feedback_subp = call_parser.add_parser("feedback")
285-
286-
parse_subp.add_main_options()
287-
parse_subp.add_sending_options()
288-
parse_subp.add_display_options()
236+
parse_subparser.add_main_options()
237+
parse_subparser.add_sending_options()
238+
parse_subparser.add_display_options()
289239
if name in ("custom", "generated"):
290-
parse_subp.add_custom_options()
240+
parse_subparser.add_custom_options()
291241
else:
292-
parse_subp.add_argument(
242+
parse_subparser.add_argument(
293243
"-t",
294244
"--full-text",
295245
dest="include_words",
@@ -298,7 +248,7 @@ def _set_args(self) -> Namespace:
298248
)
299249

300250
if info.is_async and info.is_sync:
301-
parse_subp.add_argument(
251+
parse_subparser.add_argument(
302252
"-A",
303253
"--asynchronous",
304254
dest="async_parse",
@@ -308,9 +258,6 @@ def _set_args(self) -> Namespace:
308258
default=False,
309259
)
310260

311-
feedback_subp.add_main_options()
312-
feedback_subp.add_feedback_options()
313-
314261
parsed_args = self.parser.parse_args()
315262
return parsed_args
316263

@@ -332,36 +279,3 @@ def _get_input_doc(self) -> Union[LocalInputSource, UrlInputSource]:
332279
elif self.parsed_args.input_type == "url":
333280
return self.client.source_from_url(self.parsed_args.path)
334281
return self.client.source_from_path(self.parsed_args.path)
335-
336-
def _get_feedback_doc(self) -> StringDict:
337-
"""Loads a feedback."""
338-
json_doc: StringDict = {}
339-
if self.parsed_args.input_type == "file":
340-
with open(self.parsed_args.path, "rb", buffering=30) as f_f:
341-
json_doc = json.loads(f_f.read())
342-
elif self.parsed_args.input_type == "base64":
343-
with open(self.parsed_args.path, "rt", encoding="ascii") as f_b64:
344-
json_doc = json.loads(f_b64.read())
345-
elif self.parsed_args.input_type == "bytes":
346-
with open(self.parsed_args.path, "rb") as f_b:
347-
json_doc = json.loads(f_b.read())
348-
else:
349-
if (
350-
not self.parsed_args.feedback
351-
or "feedback" not in self.parsed_args.feedback
352-
):
353-
raise MindeeClientError("Invalid feedback.")
354-
if not json_doc or "feedback" not in json_doc:
355-
raise MindeeClientError("Invalid feedback.")
356-
return json_doc
357-
358-
def _set_input(self) -> None:
359-
"""Loads an input document, or a feedback document."""
360-
self.feedback = None
361-
if self.parsed_args.parse_type == "feedback":
362-
if not self.parsed_args.feedback:
363-
self.feedback = self._get_feedback_doc()
364-
else:
365-
self.feedback = self.parsed_args.feedback
366-
else:
367-
self.input_doc = self._get_input_doc()

tests/v1/test_cli.py

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pytest
55

66
from mindee.commands.cli_parser import MindeeParser
7-
from mindee.error.mindee_http_error import MindeeHTTPClientError, MindeeHTTPError
7+
from mindee.error.mindee_http_error import MindeeHTTPError
88
from tests.utils import FILE_TYPES_DIR, V1_PRODUCT_DATA_DIR, clear_envvars
99

1010

@@ -124,100 +124,88 @@ def ots_doc_feedback(monkeypatch):
124124
def test_cli_custom_doc(custom_doc):
125125
with pytest.raises(MindeeHTTPError):
126126
parser = MindeeParser(parsed_args=custom_doc)
127-
parser.call_endpoint()
127+
parser.call_parse()
128128

129129

130130
def test_cli_generated_doc_sync(generated_doc_sync):
131131
with pytest.raises(MindeeHTTPError):
132132
parser = MindeeParser(parsed_args=generated_doc_sync)
133-
parser.call_endpoint()
133+
parser.call_parse()
134134

135135

136136
def test_cli_generated_doc_async(generated_doc_async):
137137
with pytest.raises(MindeeHTTPError):
138138
parser = MindeeParser(parsed_args=generated_doc_async)
139-
parser.call_endpoint()
139+
parser.call_parse()
140140

141141

142142
def test_cli_invoice(ots_doc):
143143
ots_doc.product_name = "invoice"
144144
ots_doc.api_key = ""
145145
with pytest.raises(RuntimeError):
146146
parser = MindeeParser(parsed_args=ots_doc)
147-
parser.call_endpoint()
147+
parser.call_parse()
148148
ots_doc.api_key = "dummy"
149149
with pytest.raises(MindeeHTTPError):
150150
parser = MindeeParser(parsed_args=ots_doc)
151-
parser.call_endpoint()
151+
parser.call_parse()
152152

153153

154154
def test_cli_receipt(ots_doc):
155155
ots_doc.product_name = "receipt"
156156
ots_doc.api_key = ""
157157
with pytest.raises(RuntimeError):
158158
parser = MindeeParser(parsed_args=ots_doc)
159-
parser.call_endpoint()
159+
parser.call_parse()
160160
ots_doc.api_key = "dummy"
161161
with pytest.raises(MindeeHTTPError):
162162
parser = MindeeParser(parsed_args=ots_doc)
163-
parser.call_endpoint()
163+
parser.call_parse()
164164

165165

166166
def test_cli_financial_doc(ots_doc):
167167
ots_doc.product_name = "financial-document"
168168
ots_doc.api_key = ""
169169
with pytest.raises(RuntimeError):
170170
parser = MindeeParser(parsed_args=ots_doc)
171-
parser.call_endpoint()
171+
parser.call_parse()
172172
ots_doc.api_key = "dummy"
173173
with pytest.raises(MindeeHTTPError):
174174
parser = MindeeParser(parsed_args=ots_doc)
175-
parser.call_endpoint()
175+
parser.call_parse()
176176

177177

178178
def test_cli_passport(ots_doc):
179179
ots_doc.product_name = "passport"
180180
ots_doc.api_key = ""
181181
with pytest.raises(RuntimeError):
182182
parser = MindeeParser(parsed_args=ots_doc)
183-
parser.call_endpoint()
183+
parser.call_parse()
184184
ots_doc.api_key = "dummy"
185185
with pytest.raises(MindeeHTTPError):
186186
parser = MindeeParser(parsed_args=ots_doc)
187-
parser.call_endpoint()
187+
parser.call_parse()
188188

189189

190190
def test_cli_us_bank_check(ots_doc):
191191
ots_doc.product_name = "us-bank-check"
192192
ots_doc.api_key = ""
193193
with pytest.raises(RuntimeError):
194194
parser = MindeeParser(parsed_args=ots_doc)
195-
parser.call_endpoint()
195+
parser.call_parse()
196196
ots_doc.api_key = "dummy"
197197
with pytest.raises(MindeeHTTPError):
198198
parser = MindeeParser(parsed_args=ots_doc)
199-
parser.call_endpoint()
199+
parser.call_parse()
200200

201201

202202
def test_cli_invoice_splitter_enqueue(ots_doc_enqueue_and_parse):
203203
ots_doc_enqueue_and_parse.product_name = "invoice-splitter"
204204
ots_doc_enqueue_and_parse.api_key = ""
205205
with pytest.raises(RuntimeError):
206206
parser = MindeeParser(parsed_args=ots_doc_enqueue_and_parse)
207-
parser.call_endpoint()
207+
parser.call_parse()
208208
ots_doc_enqueue_and_parse.api_key = "dummy"
209209
with pytest.raises(MindeeHTTPError):
210210
parser = MindeeParser(parsed_args=ots_doc_enqueue_and_parse)
211-
parser.call_endpoint()
212-
213-
214-
def test_cli_feedback(ots_doc_feedback):
215-
ots_doc_feedback.document_id = "dummy-document-id"
216-
ots_doc_feedback.api_key = ""
217-
with pytest.raises(RuntimeError):
218-
parser = MindeeParser(parsed_args=ots_doc_feedback)
219-
parser.call_endpoint()
220-
ots_doc_feedback.api_key = "dummy"
221-
with pytest.raises(MindeeHTTPClientError):
222-
parser = MindeeParser(parsed_args=ots_doc_feedback)
223-
parser.call_endpoint()
211+
parser.call_parse()

0 commit comments

Comments
 (0)