1- import pickle
21from numbers import Number , Integral
32from math import isnan , isinf
43
2322import numpy
2423
2524from Orange .data import Variable , Storage , DiscreteVariable , ContinuousVariable
25+ from Orange .data .domain import filter_visible
2626from Orange .widgets import gui
2727from Orange .widgets .utils import datacaching
2828from Orange .statistics import basic_stats
@@ -870,7 +870,7 @@ class DomainModel(VariableListModel):
870870 PRIMITIVE = (DiscreteVariable , ContinuousVariable )
871871
872872 def __init__ (self , order = SEPARATED , placeholder = None ,
873- valid_types = None , alphabetical = False , ** kwargs ):
873+ valid_types = None , alphabetical = False , skip_hidden_vars = True , ** kwargs ):
874874 super ().__init__ (placeholder = placeholder , ** kwargs )
875875 if isinstance (order , int ):
876876 order = (order ,)
@@ -883,6 +883,7 @@ def __init__(self, order=SEPARATED, placeholder=None,
883883 self .order = order
884884 self .valid_types = valid_types
885885 self .alphabetical = alphabetical
886+ self .skip_hidden_vars = skip_hidden_vars
886887 self .set_domain (None )
887888
888889 def set_domain (self , domain ):
@@ -903,6 +904,8 @@ def set_domain(self, domain):
903904 * (vars for i , vars in enumerate (
904905 (domain .attributes , domain .class_vars , domain .metas ))
905906 if (1 << i ) & section )))
907+ if self .skip_hidden_vars :
908+ to_add = list (filter_visible (to_add ))
906909 if self .valid_types is not None :
907910 to_add = [var for var in to_add
908911 if isinstance (var , self .valid_types )]
0 commit comments