本文整理汇总了Python中Orange.widgets.settings.SettingsHandler类的典型用法代码示例。如果您正苦于以下问题:Python SettingsHandler类的具体用法?Python SettingsHandler怎么用?Python SettingsHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SettingsHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_schema_only_settings
def test_schema_only_settings(self):
handler = SettingsHandler()
with self.override_default_settings(SimpleWidget):
handler.bind(SimpleWidget)
# fast_save should not update defaults
widget = SimpleWidget()
handler.fast_save(widget, 'schema_only_setting', 5)
self.assertEqual(
handler.known_settings['schema_only_setting'].default, None)
handler.fast_save(widget, 'component.schema_only_setting', 5)
self.assertEqual(
handler.known_settings['component.schema_only_setting'].default, "only")
# update_defaults should not update defaults
widget.schema_only_setting = 5
handler.update_defaults(widget)
self.assertEqual(
handler.known_settings['schema_only_setting'].default, None)
widget.component.schema_only_setting = 5
self.assertEqual(
handler.known_settings['component.schema_only_setting'].default, "only")
# pack_data should pack setting
widget.schema_only_setting = 5
widget.component.schema_only_setting = 5
data = handler.pack_data(widget)
self.assertEqual(data['schema_only_setting'], 5)
self.assertEqual(data['component']['schema_only_setting'], 5)
示例2: test_pack_settings_stores_version
def test_pack_settings_stores_version(self):
handler = SettingsHandler()
handler.bind(SimpleWidget)
widget = SimpleWidget()
settings = handler.pack_data(widget)
self.assertIn(VERSION_KEY, settings)
示例3: test_read_defaults
def test_read_defaults(self):
handler = SettingsHandler()
handler.widget_class = SimpleWidget
defaults = {'a': 5, 'b': {1: 5}}
with self.override_default_settings(SimpleWidget, defaults):
handler.read_defaults()
self.assertEqual(handler.defaults, defaults)
示例4: test_write_defaults_handles_permission_error
def test_write_defaults_handles_permission_error(self):
handler = SettingsHandler()
with named_file("") as f:
handler._get_settings_filename = lambda: f
with patch('Orange.widgets.settings.open', create=True) as mocked_open:
mocked_open.side_effect = PermissionError()
handler.write_defaults()
示例5: test_initialize_widget
def test_initialize_widget(self):
handler = SettingsHandler()
handler.defaults = {'default': 42, 'setting': 1}
handler.provider = provider = Mock()
handler.widget_class = SimpleWidget
provider.get_provider.return_value = provider
widget = SimpleWidget()
def reset_provider():
provider.get_provider.return_value = None
provider.reset_mock()
provider.get_provider.return_value = provider
# No data
handler.initialize(widget)
provider.initialize.assert_called_once_with(widget, {'default': 42,
'setting': 1})
# Dictionary data
reset_provider()
handler.initialize(widget, {'setting': 5})
provider.initialize.assert_called_once_with(widget, {'default': 42,
'setting': 5})
# Pickled data
reset_provider()
handler.initialize(widget, pickle.dumps({'setting': 5}))
provider.initialize.assert_called_once_with(widget, {'default': 42,
'setting': 5})
示例6: test_write_defaults_handles_permission_error
def test_write_defaults_handles_permission_error(self):
handler = SettingsHandler()
with named_file("") as f:
handler._get_settings_filename = lambda: f
with patch("Orange.widgets.settings.log.error") as log, \
patch('Orange.widgets.settings.open', create=True,
side_effect=PermissionError):
handler.write_defaults()
log.assert_called()
示例7: test_create_uses_template_if_provided
def test_create_uses_template_if_provided(self):
template = SettingsHandler()
template.a = 'a'
template.b = 'b'
with self.override_default_settings(SimpleWidget):
handler = SettingsHandler.create(SimpleWidget, template)
self.assertEqual(handler.a, 'a')
self.assertEqual(handler.b, 'b')
# create should copy the template
handler.b = 'B'
self.assertEqual(template.b, 'b')
示例8: test_create_uses_template_if_provided
def test_create_uses_template_if_provided(self):
template = SettingsHandler()
template.read_defaults = lambda: None
template.a = 'a'
template.b = 'b'
handler = SettingsHandler.create(SimpleWidget, template)
self.assertEqual(handler.a, 'a')
self.assertEqual(handler.b, 'b')
# create should copy the template
handler.b = 'B'
self.assertEqual(template.b, 'b')
示例9: test_read_defaults
def test_read_defaults(self):
default_settings = {'a': 5, 'b': {1: 5}}
f, settings_file = mkstemp(suffix='.ini')
with open(settings_file, 'wb') as f:
pickle.dump(default_settings, f)
handler = SettingsHandler()
handler._get_settings_filename = lambda: settings_file
handler.read_defaults()
self.assertEqual(handler.defaults, default_settings)
os.remove(settings_file)
示例10: test_write_defaults
def test_write_defaults(self):
f, settings_file = mkstemp(suffix='.ini')
handler = SettingsHandler()
handler.defaults = {'a': 5, 'b': {1: 5}}
handler._get_settings_filename = lambda: settings_file
handler.write_defaults()
with open(settings_file, 'rb') as f:
default_settings = pickle.load(f)
self.assertEqual(handler.defaults, default_settings)
os.remove(settings_file)
示例11: override_default_settings
def override_default_settings(self, widget, defaults=None):
if defaults is None:
defaults = {}
h = SettingsHandler()
h.widget_class = widget
filename = h._get_settings_filename()
with open(filename, "wb") as f:
pickle.dump(defaults, f)
yield
if os.path.isfile(filename):
os.remove(filename)
示例12: test_about_pack_settings_signal
def test_about_pack_settings_signal(self):
handler = SettingsHandler()
handler.bind(SimpleWidget)
widget = SimpleWidget()
handler.initialize(widget)
fn = Mock()
widget.settingsAboutToBePacked.connect(fn)
handler.pack_data(widget)
self.assertEqual(1, fn.call_count)
handler.update_defaults(widget)
self.assertEqual(2, fn.call_count)
示例13: test_write_defaults_handles_writing_errors
def test_write_defaults_handles_writing_errors(self):
handler = SettingsHandler()
for error in (EOFError, IOError, pickle.PicklingError):
f = NamedTemporaryFile("wt", delete=False)
f.close() # so it can be opened on windows
handler._get_settings_filename = lambda x=f: x.name
with patch.object(handler, "write_defaults_file") as mocked_write:
mocked_write.side_effect = error()
handler.write_defaults()
# Corrupt setting files should be removed
self.assertFalse(os.path.exists(f.name))
示例14: test_initialize_with_no_provider
def test_initialize_with_no_provider(self, SettingProvider):
""":type SettingProvider: unittest.mock.Mock"""
handler = SettingsHandler()
handler.provider = Mock(get_provider=Mock(return_value=None))
provider = Mock()
SettingProvider.return_value = provider
widget = SimpleWidget()
# initializing an undeclared provider should display a warning
with warnings.catch_warnings(record=True) as w:
handler.initialize(widget)
self.assertEqual(1, len(w))
SettingProvider.assert_called_once_with(SimpleWidget)
provider.initialize.assert_called_once_with(widget, None)
示例15: __new__
def __new__(mcs, name, bases, kwargs):
from Orange.canvas.registry.description import (
input_channel_from_args, output_channel_from_args)
cls = type.__new__(mcs, name, bases, kwargs)
if not cls.name: # not a widget
return cls
cls.inputs = [input_channel_from_args(inp) for inp in cls.inputs]
cls.outputs = [output_channel_from_args(outp) for outp in cls.outputs]
for inp in cls.inputs:
if not hasattr(cls, inp.handler):
raise AttributeError("missing input signal handler '{}' in {}".
format(inp.handler, cls.name))
# TODO Remove this when all widgets are migrated to Orange 3.0
if (hasattr(cls, "settingsToWidgetCallback") or
hasattr(cls, "settingsFromWidgetCallback")):
raise TypeError("Reimplement settingsToWidgetCallback and "
"settingsFromWidgetCallback")
cls.settingsHandler = SettingsHandler.create(cls, template=cls.settingsHandler)
return cls