Skip to content

Commit 3b267e4

Browse files
committed
Continuize: Send report
1 parent 55da641 commit 3b267e4

File tree

2 files changed

+62
-2
lines changed

2 files changed

+62
-2
lines changed

Orange/widgets/data/owcontinuize.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,42 @@ def _continuized_vars(self, var, hint=None):
588588
]
589589

590590
def send_report(self):
591-
# TOTO: Implement
592-
pass
591+
if not self.data:
592+
return
593+
single_disc = len(self.disc_view.model()) > 0 \
594+
and len(self.disc_var_hints) == 1 \
595+
and DiscreteOptions[self.disc_var_hints[DefaultKey]].label.lower()
596+
single_cont = len(self.cont_view.model()) > 0 \
597+
and len(self.cont_var_hints) == 1 \
598+
and ContinuousOptions[self.cont_var_hints[DefaultKey]].label.lower()
599+
class_treatment = \
600+
self.data.domain.class_var.is_discrete and \
601+
"As ordinal" if self.continuize_class else "Leave categorical"
602+
if single_disc and single_cont:
603+
self.report_items(
604+
(("Categorical variables", single_disc),
605+
("Numeric variables", single_cont),
606+
("Class variable", class_treatment))
607+
)
608+
else:
609+
if single_disc:
610+
self.report_paragraph("Categorical variables", single_disc)
611+
elif len(self.disc_view.model()) > 0:
612+
self.report_items(
613+
"Categorical variables",
614+
[("Default" if name == DefaultKey else name,
615+
DiscreteOptions[id_].label.lower())
616+
for name, id_ in self.disc_var_hints.items()])
617+
if single_cont:
618+
self.report_paragraph("Numeric varialbes", single_cont)
619+
elif len(self.cont_view.model()) > 0:
620+
self.report_items(
621+
"Numeric variables",
622+
[("Default" if name == DefaultKey else name,
623+
ContinuousOptions[id_].label.lower())
624+
for name, id_ in self.cont_var_hints.items()])
625+
if class_treatment:
626+
self.report_paragraph("Class variable", class_treatment)
593627

594628
@classmethod
595629
def migrate_settings(cls, settings, version):

Orange/widgets/data/tests/test_owcontinuize.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,32 @@ def test_transformations(self):
394394
)
395395

396396
def test_send_report(self):
397+
w = self.widget
398+
self.send_signal(w.Inputs.data, Table("heart_disease"))
399+
self.widget.send_report()
400+
401+
w.disc_var_hints[DefaultKey] = Continuize.AsOrdinal
402+
w.disc_var_hints["chest pain"] = w.disc_var_hints["rest ECG"] = Continuize.Remove
403+
w.disc_var_hints["exerc ind ang"] = Continuize.FirstAsBase
404+
405+
self.send_signal(w.Inputs.data, Table("heart_disease"))
406+
self.widget.send_report()
407+
408+
w.cont_var_hints[DefaultKey] = Normalize.Center
409+
w.cont_var_hints["cholesterol"] = Normalize.Scale
410+
411+
self.send_signal(w.Inputs.data, Table("heart_disease"))
412+
self.widget.send_report()
413+
414+
w.continuize_class = True
415+
w.disc_var_hints[DefaultKey] = Continuize.AsOrdinal
416+
w.disc_var_hints["chest pain"] = w.disc_var_hints["rest ECG"] = Continuize.Remove
417+
w.disc_var_hints["exerc ind ang"] = Continuize.FirstAsBase
418+
419+
w.cont_var_hints[DefaultKey] = Normalize.Center
420+
w.cont_var_hints["cholesterol"] = Normalize.Scale
421+
422+
self.send_signal(w.Inputs.data, Table("heart_disease"))
397423
self.widget.send_report()
398424

399425
def test_migrate_settings_to_v3(self):

0 commit comments

Comments
 (0)