Skip to content

Commit 83e0446

Browse files
committed
Create Corpus add language field
1 parent 25952ea commit 83e0446

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

orangecontrib/text/widgets/owcreatecorpus.py

+16-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from orangewidget.settings import Setting
1717

1818
from orangecontrib.text import Corpus
19+
from orangecontrib.text.language import LANG2ISO, DEFAULT_LANGUAGE, LanguageModel
1920

2021

2122
class EditorsVerticalScrollArea(gui.VerticalScrollArea):
@@ -76,13 +77,26 @@ class Outputs:
7677

7778
want_main_area = False
7879

80+
language: str = Setting(DEFAULT_LANGUAGE)
7981
texts: List[Tuple[str, str]] = Setting([("", "")] * 3)
8082
auto_commit: bool = Setting(True)
8183

8284
def __init__(self):
8385
super().__init__()
8486
self.editors = []
8587

88+
gui.comboBox(
89+
self.controlArea,
90+
self,
91+
"language",
92+
model=LanguageModel(),
93+
box="Language",
94+
orientation=Qt.Horizontal,
95+
callback=self.commit.deferred,
96+
sendSelectedValue=True,
97+
searchable=True,
98+
)
99+
86100
scroll_area = EditorsVerticalScrollArea()
87101
self.editor_vbox = gui.vBox(self.controlArea, spacing=0)
88102
self.editor_vbox.layout().setSpacing(10)
@@ -142,12 +156,13 @@ def commit(self):
142156
np.empty((len(self.texts), 0)),
143157
metas=np.array(self.texts),
144158
text_features=[doc_var],
159+
language=LANG2ISO[self.language],
145160
)
146161
corpus.set_title_variable(title_var)
147162
self.Outputs.corpus.send(corpus)
148163

149164
def sizeHint(self) -> QSize:
150-
return QSize(600, 600)
165+
return QSize(600, 650)
151166

152167

153168
if __name__ == "__main__":

orangecontrib/text/widgets/tests/test_owcreatecorpus.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import numpy as np
44
from Orange.data import StringVariable
55
from Orange.widgets.tests.base import WidgetTest
6-
from AnyQt.QtWidgets import QPushButton
6+
from AnyQt.QtWidgets import QPushButton, QComboBox
7+
from orangewidget.tests.utils import simulate
78

89
from orangecontrib.text.widgets.owcreatecorpus import OWCreateCorpus
910

@@ -197,6 +198,15 @@ def test_output(self):
197198
self.assertListEqual(["Test 3"], corpus.documents)
198199
np.testing.assert_array_equal([["Document 3", "Test 3"]], corpus.metas)
199200

201+
def test_language(self):
202+
corpus = self.get_output(self.widget.Outputs.corpus)
203+
self.assertEqual("en", corpus.language)
204+
205+
combo = self.widget.controlArea.findChild(QComboBox)
206+
simulate.combobox_activate_index(combo, 2)
207+
corpus = self.get_output(self.widget.Outputs.corpus)
208+
self.assertEqual("am", corpus.language)
209+
200210

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

0 commit comments

Comments
 (0)