Skip to content

Commit

Permalink
Embedders widget - field for a custom server URL
Browse files Browse the repository at this point in the history
  • Loading branch information
PrimozGodec committed Mar 10, 2023
1 parent 0cfe9a7 commit 734fe7b
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 20 deletions.
36 changes: 16 additions & 20 deletions orangecontrib/imageanalytics/widgets/owimageembedding.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ class Error(OWWidget.Error):

cb_image_attr_current_id = Setting(default=0)
cb_embedder_current_id = Setting(default=0)
custom_server = Setting(default=False)
server_url = Setting(default="")

_previous_attr_id = None
_previous_embedder_id = None

Expand Down Expand Up @@ -153,6 +156,15 @@ def _setup_layout(self):
widget_box, EMBEDDERS_INFO[current_embedder]["description"]
)

advanced_box = gui.widgetBox(self.controlArea, 'Custom server')
self.use_custom_server_cb = gui.checkBox(
advanced_box, self, 'custom_server', "Use private server",
callback=self.changed_server_url)
self.server_url_box = gui.lineEdit(
advanced_box, self, 'server_url', label="Server URL: ",
tooltip='The url of the server for calculating image embeddings',
orientation=Qt.Horizontal, callback=self.changed_server_url)

self.auto_commit_widget = gui.auto_commit(
widget=self.buttonsArea,
master=self,
Expand All @@ -168,26 +180,6 @@ def _setup_layout(self):
self.buttonsArea.layout().addWidget(self.cancel_button)
self.cancel_button.setDisabled(True)

def set_input_data_summary(self, data):
if data is None:
self.info.set_input_summary(self.info.NoInput)
else:
self.info.set_input_summary(
str(len(data)), f"Data have {len(data)} instances"
)

def set_output_data_summary(self, data_emb, data_skip):
if data_emb is None and data_skip is None:
self.info.set_output_summary(self.info.NoOutput)
else:
success = 0 if data_emb is None else len(data_emb)
skip = 0 if data_skip is None else len(data_skip)
self.info.set_output_summary(
f"{success}",
f"{success} images successfully embedded ,\n"
f"{skip} images skipped.",
)

@Inputs.images
def set_data(self, data):
self.Warning.clear()
Expand Down Expand Up @@ -220,6 +212,10 @@ def set_data(self, data):
def _cb_image_attr_changed(self):
self._cb_changed()

def changed_server_url(self):
self._init_server_connection()
self.server_url_box.setDisabled(not self.custom_server)

def _cb_embedder_changed(self):
self.Warning.switched_local_embedder.clear()
current_embedder = self.embedders[self.cb_embedder_current_id]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,25 @@ def test_rerun_on_new_data(self):
1, len(self.get_output(self.widget.Outputs.embeddings))
)

def test_url_changed(self):
"""
This test set if the urls are changed correctly
The test may fail if default url will be changed
"""
w = self.widget

w.use_custom_server_cb.setChecked(False)
self.assertEqual(w._image_embedder._server_url, w.SERVER_URL_DEFAULT)

w.use_custom_server_cb.setChecked(True)
w.server_url_box.setText("")
w.changed_server_url()

w.use_custom_server_cb.setChecked(True)
w.server_url_box.setText(w.SERVER_URL_DEFAULT)
w.changed_server_url()
self.assertEqual(w._image_embedder._server_url, w.SERVER_URL_DEFAULT)


if __name__ == "__main__":
unittest.main()

0 comments on commit 734fe7b

Please sign in to comment.