Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def set_learner(self, learner):
self.learner = learner or self.default_learner
imputer = self.create_imputer(Method.Model)
button = self.default_button_group.button(Method.Model)
button.setText(imputer.name)
variable_button = self.variable_button_group.button(Method.Model)
variable_button.setText(imputer.name)
if learner is not None:
self.default_method_index = Method.Model
self.update_varview()
self.commit()
def cancel(self):
self.cancelled = True
for f in self.futures:
f.cancel()
class Method(enum.IntEnum):
AsAboveSoBelow = 0 # a special
Leave, Average, AsValue, Model, Random, Drop, Default = range(1, 8)
METHODS = OrderedDict(
[
(Method.AsAboveSoBelow, AsDefault),
(Method.Leave, impute.DoNotImpute),
(Method.Average, impute.Average),
(Method.AsValue, impute.AsValue),
(Method.Model, impute.Model),
(Method.Random, impute.Random),
(Method.Drop, impute.DropInstances),
(Method.Default, impute.Default),
]
) # type: Dict[Method, Type[impute.BaseImputeMethod]]
#: variable state type: store effective imputation method and optional
#: parameters (currently used for storing per variable `impute.Default`'s
#: value). NOTE: Must be hashable and __eq__ comparable.
State = Tuple[int, Tuple[Any, ...]]
#: variable key, for storing/restoring state
VarKey = Tuple[str, str]
self.cancelled = True
for f in self.futures:
f.cancel()
class Method(enum.IntEnum):
AsAboveSoBelow = 0 # a special
Leave, Average, AsValue, Model, Random, Drop, Default = range(1, 8)
METHODS = OrderedDict(
[
(Method.AsAboveSoBelow, AsDefault),
(Method.Leave, impute.DoNotImpute),
(Method.Average, impute.Average),
(Method.AsValue, impute.AsValue),
(Method.Model, impute.Model),
(Method.Random, impute.Random),
(Method.Drop, impute.DropInstances),
(Method.Default, impute.Default),
]
) # type: Dict[Method, Type[impute.BaseImputeMethod]]
#: variable state type: store effective imputation method and optional
#: parameters (currently used for storing per variable `impute.Default`'s
#: value). NOTE: Must be hashable and __eq__ comparable.
State = Tuple[int, Tuple[Any, ...]]
#: variable key, for storing/restoring state
VarKey = Tuple[str, str]
VariableState = Dict[VarKey, State]
def create_imputer(self, method, *args):
# type: (Method, ...) -> impute.BaseImputeMethod
if method == Method.Model:
if self.learner is not None:
return impute.Model(self.learner)
else:
return impute.Model(self.default_learner)
elif method == Method.AsAboveSoBelow:
assert self.default_method_index != Method.AsAboveSoBelow
default = self.create_imputer(Method(self.default_method_index))
m = AsDefault()
m.method = default
return m
else:
return METHODS[method](*args)
class Method(enum.IntEnum):
AsAboveSoBelow = 0 # a special
Leave, Average, AsValue, Model, Random, Drop, Default = range(1, 8)
METHODS = OrderedDict(
[
(Method.AsAboveSoBelow, AsDefault),
(Method.Leave, impute.DoNotImpute),
(Method.Average, impute.Average),
(Method.AsValue, impute.AsValue),
(Method.Model, impute.Model),
(Method.Random, impute.Random),
(Method.Drop, impute.DropInstances),
(Method.Default, impute.Default),
]
) # type: Dict[Method, Type[impute.BaseImputeMethod]]
#: variable state type: store effective imputation method and optional
#: parameters (currently used for storing per variable `impute.Default`'s
#: value). NOTE: Must be hashable and __eq__ comparable.
State = Tuple[int, Tuple[Any, ...]]
#: variable key, for storing/restoring state
VarKey = Tuple[str, str]
VariableState = Dict[VarKey, State]
def var_key(var):
def create_imputer(self, method, *args):
# type: (Method, ...) -> impute.BaseImputeMethod
if method == Method.Model:
if self.learner is not None:
return impute.Model(self.learner)
else:
return impute.Model(self.default_learner)
elif method == Method.AsAboveSoBelow:
assert self.default_method_index != Method.AsAboveSoBelow
default = self.create_imputer(Method(self.default_method_index))
m = AsDefault()
m.method = default
return m
else:
return METHODS[method](*args)
def set_method_for_indexes(self, indexes, method_index):
# type: (List[QModelIndex], Method) -> None
if method_index == Method.AsAboveSoBelow:
for index in indexes:
self.varmodel.setData(index, None, StateRole)
elif method_index == Method.Default:
current = self.value_stack.currentWidget()
if current is self.value_combo:
value = self.value_combo.currentIndex()
else:
value = self.value_double.value()
for index in indexes:
state = (int(Method.Default), (value,))
self.varmodel.setData(index, state, StateRole)
else:
state = (int(method_index), ())
for index in indexes:
self.varmodel.setData(index, state, StateRole)
self.update_varview(indexes)
self._invalidate()
f.cancel()
class Method(enum.IntEnum):
AsAboveSoBelow = 0 # a special
Leave, Average, AsValue, Model, Random, Drop, Default = range(1, 8)
METHODS = OrderedDict(
[
(Method.AsAboveSoBelow, AsDefault),
(Method.Leave, impute.DoNotImpute),
(Method.Average, impute.Average),
(Method.AsValue, impute.AsValue),
(Method.Model, impute.Model),
(Method.Random, impute.Random),
(Method.Drop, impute.DropInstances),
(Method.Default, impute.Default),
]
) # type: Dict[Method, Type[impute.BaseImputeMethod]]
#: variable state type: store effective imputation method and optional
#: parameters (currently used for storing per variable `impute.Default`'s
#: value). NOTE: Must be hashable and __eq__ comparable.
State = Tuple[int, Tuple[Any, ...]]
#: variable key, for storing/restoring state
VarKey = Tuple[str, str]
VariableState = Dict[VarKey, State]
def _on_var_selection_changed(self):
indexes = self.selection.selectedIndexes()
defmethod = (Method.AsAboveSoBelow, ())
methods = [index.data(StateRole) for index in indexes]
methods = [m if m is not None else defmethod for m in methods]
methods = set(methods)
selected_vars = [self.varmodel[index.row()] for index in indexes]
has_discrete = any(var.is_discrete for var in selected_vars)
fixed_value = None
value_stack_enabled = False
current_value_widget = None
if len(methods) == 1:
method_type, parameters = methods.pop()
for m in Method:
if method_type == m:
self.variable_button_group.button(m).setChecked(True)
if method_type == Method.Default:
(fixed_value,) = parameters
elif self.variable_button_group.checkedButton() is not None:
# Uncheck the current button
self.variable_button_group.setExclusive(False)
self.variable_button_group.checkedButton().setChecked(False)
self.variable_button_group.setExclusive(True)
assert self.variable_button_group.checkedButton() is None
# Update variable methods GUI enabled state based on selection.
for method in Method:
# use a default constructed imputer to query support