def __setgluestate__(cls, rec, context): if rec.get('_protocol', 0) < 1: cls.update_viewer_state(rec, context) session = context.object(rec['session']) viewer_state = cls._state_cls.__setgluestate__(rec['state'], context) viewer = cls(session, state=viewer_state) viewer.register_to_hub(session.hub) viewer.viewer_size = rec['size'] x, y = rec['pos'] viewer.move(x=x, y=y) # Restore layer artists. Ideally we would delay instead of ignoring the # callback here. with viewer._layer_artist_container.ignore_empty(): for l in rec['layers']: cls = lookup_class_with_patches(l.pop('_type')) layer_state = context.object(l['state']) layer_artist = viewer.get_layer_artist(cls, layer_state=layer_state) layer_state.viewer_state = viewer.state viewer._layer_artist_container.append(layer_artist) return viewer
def restore_layers(self, layers, context): for l in layers: cls = lookup_class_with_patches(l.pop('_type')) props = dict((k, context.object(v)) for k, v in l.items()) layer_artist = cls(props['layer'], vispy_viewer=self) self._layer_artist_container.append(layer_artist) layer_artist.set(**props)
def restore_layers(self, layers, context): """ Restore a list of glue-serialized layer dicts. """ for layer in layers: c = lookup_class_with_patches(layer.pop('_type')) props = dict((k, v if k == 'stretch' else context.object(v)) for k, v in layer.items()) l = props['layer'] if issubclass(c, ScatterLayerBase): l = self.add_scatter_layer(l) elif issubclass(c, RGBImageLayerBase): r = props.pop('r') g = props.pop('g') b = props.pop('b') self.display_data = l self.display_attribute = r l = self.rgb_mode(True) l.r = r l.g = g l.b = b elif issubclass(c, (ImageLayerBase, SubsetImageLayerBase)): if isinstance(l, Data): self.set_data(l) l = self.add_layer(l) else: raise ValueError("Cannot restore layer of type %s" % l) l.properties = props
def restore_layers(self, layers, context): for layer in layers: lcls = lookup_class_with_patches(layer.pop('_type')) if lcls != HistogramLayerArtist: raise ValueError("Cannot restore layers of type %s" % lcls) data_or_subset = context.object(layer.pop('layer')) result = self.add_layer(data_or_subset) result.properties = layer
def restore_layers(self, layers, context): """ Re-generate a list of plot layers from a glue-serialized list""" for l in layers: cls = lookup_class_with_patches(l.pop('_type')) if cls != ScatterLayerArtist: raise ValueError("Scatter client cannot restore layer of type " "%s" % cls) props = dict((k, context.object(v)) for k, v in l.items()) layer = self.add_layer(props['layer']) layer.properties = props
def restore_layers(self, rec, context): # For now this is a bit of a hack, we assume that all subsets saved # for this viewer are from dataset, so we just get Data object # then just sync the layers. for layer in rec: c = lookup_class_with_patches(layer.pop('_type')) props = dict((k, context.object(v)) for k, v in layer.items()) layer = props['layer'] self.add_data(layer.data) break self._sync_layers()
def __setgluestate__(cls, rec, context): session = context.object(rec['session']) viewer_state = cls._state_cls.__setgluestate__(rec['state'], context) viewer = cls(session, state=viewer_state) viewer.register_to_hub(session.hub) # Restore layer artists. Ideally we would delay instead of ignoring the # callback here. with viewer._layer_artist_container.ignore_callbacks(): for l in rec['layers']: cls = lookup_class_with_patches(l.pop('_type')) layer_state = context.object(l['state']) layer_artist = viewer.get_layer_artist(cls, layer_state=layer_state) layer_state.viewer_state = viewer.state viewer._layer_artist_container.append(layer_artist) return viewer
def __setgluestate__(cls, rec, context): if rec.get('_protocol', 0) < 1: update_viewer_state(rec, context) session = context.object(rec['session']) viewer = cls(session) viewer.register_to_hub(session.hub) viewer.viewer_size = rec['size'] x, y = rec['pos'] viewer.move(x=x, y=y) viewer_state = cls._state_cls.__setgluestate__(rec['state'], context) viewer.state.update_from_state(viewer_state) # Restore layer artists for l in rec['layers']: cls = lookup_class_with_patches(l.pop('_type')) layer_state = context.object(l['state']) layer_artist = cls(viewer, layer_state=layer_state) viewer._layer_artist_container.append(layer_artist) return viewer