def __init__(self, slot, inslot=None, name=None, subname=None, default=None, depends=None, selfdepends=True): """ :param slot: where to get data to save :param inslot: where to put loaded data. If None, it is the same as 'slot'. :param name: name used for the group in the hdf5 file. :param subname: used for creating subgroups for multislots. should be able to call subname.format(i), where i is an integer. :param default: the default value when unload() is called. If it is None, the slot will just be disconnected (for level 0 slots) or resized to length 0 (for multislots) :param depends: a list of slots which must be ready before this slot can be serialized. If None, defaults to []. :param selfdepends: whether 'slot' should be added to 'depends' """ if slot.level > 1: # FIXME: recursive serialization, to support arbitrary levels raise Exception('slots of levels > 1 not supported') self.slot = slot if inslot is None: inslot = slot self.inslot = inslot if isinstance(inslot, OutputSlot): # should this be an exception? Or maybe an exception in lazyflow? logger.warn( 'This SerialSlot will try to call setValue() on an OutputSlot.' ' This is probably not what you wanted!' ' slot: {}'.format(slot.name)) self.default = default self.depends = maybe(depends, []) if selfdepends: self.depends.append(slot) if name is None: name = slot.name self.name = name if subname is None: subname = '{}' self.subname = subname self._dirty = False self._bind() self.ignoreDirty = False
def __init__(self, slot, inslot=None, name=None, subname=None, default=None, depends=None, selfdepends=True): """ :param slot: where to get data to save :param inslot: where to put loaded data. If None, it is the same as 'slot'. :param name: name used for the group in the hdf5 file. :param subname: used for creating subgroups for multislots. should be able to call subname.format(i), where i is an integer. :param default: the default value when unload() is called. If it is None, the slot will just be disconnected (for level 0 slots) or resized to length 0 (for multislots) :param depends: a list of slots which must be ready before this slot can be serialized. If None, defaults to []. :param selfdepends: whether 'slot' should be added to 'depends' """ if slot.level > 1: # FIXME: recursive serialization, to support arbitrary levels raise Exception("slots of levels > 1 not supported") self.slot = slot if inslot is None: inslot = slot self.inslot = inslot if isinstance(inslot, OutputSlot): # should this be an exception? Or maybe an exception in lazyflow? logger.warn( "This SerialSlot will try to call setValue() on an OutputSlot." " This is probably not what you wanted!" " slot: {}".format(slot.name) ) self.default = default self.depends = maybe(depends, []) if selfdepends: self.depends.append(slot) if name is None: name = slot.name self.name = name if subname is None: subname = "{}" self.subname = subname self._dirty = False self._bind() self.ignoreDirty = False
def __init__(self, slot, inslot=None, name=None, subname=None, default=None, depends=None, selfdepends=True): """ :param slot: where to get data to save :param inslot: where to put loaded data. If None, it is the same as 'slot'. :param name: name used for the group in the hdf5 file. :param subname: used for creating subgroups for multislots. should be able to call subname.format(i), where i is an integer. :param default: DEPRECATED :param depends: a list of slots which must be ready before this slot can be serialized. If None, defaults to []. :param selfdepends: whether 'slot' should be added to 'depends' """ if slot.level > 1: # FIXME: recursive serialization, to support arbitrary levels raise Exception("slots of levels > 1 not supported") self.slot = slot if inslot is None: inslot = slot self.inslot = inslot self.default = default self.depends = maybe(depends, []) if selfdepends: self.depends.append(slot) if name is None: name = slot.name self.name = name if subname is None: subname = "{:04d}" self.subname = subname self._dirty = False self._bind() self.ignoreDirty = False
def _bind(self, slot=None): """Setup so that when slot is dirty, set appropriate dirty flag. """ slot = maybe(slot, self.slot) def doMulti(slot, index, size): slot[index].notifyDirty(self.setDirty) slot[index].notifyValueChanged(self.setDirty) if slot.level == 0: slot.notifyDirty(self.setDirty) slot.notifyValueChanged(self.setDirty) else: slot.notifyInserted(doMulti) slot.notifyRemoved(self.setDirty)
def __init__(self, topGroupName, slots=None, operator=None): """Constructor. Subclasses must call this method in their own __init__ functions. If they fail to do so, the shell raises an exception. Parameters: :param topGroupName: name of this applet's data group in the file. Defaults to the name of the operator. :param slots: a list of SerialSlots """ self.progressSignal = SimpleSignal() # Signature: emit(percentComplete) self.base_initialized = True self.topGroupName = topGroupName self.serialSlots = maybe(slots, []) self.operator = operator self.caresOfHeadless = False # should _deserializeFromHdf5 should be called with headless-argument?
def __init__(self, topGroupName, slots=None, operator=None): """Constructor. Subclasses must call this method in their own __init__ functions. If they fail to do so, the shell raises an exception. Parameters: :param topGroupName: name of this applet's data group in the file. Defaults to the name of the operator. :param slots: a list of SerialSlots """ self.progressSignal = OrderedSignal() # Signature: __call__(percentComplete) self.base_initialized = True self.topGroupName = topGroupName self.serialSlots = maybe(slots, []) self.operator = operator self._ignoreDirty = False
def __init__(self, topGroupName, slots=None, operator=None): """Constructor. Subclasses must call this method in their own __init__ functions. If they fail to do so, the shell raises an exception. Parameters: :param topGroupName: name of this applet's data group in the file. Defaults to the name of the operator. :param slots: a list of SerialSlots """ self.progressSignal = SimpleSignal() # Signature: emit(percentComplete) self.base_initialized = True self.topGroupName = topGroupName self.serialSlots = maybe(slots, []) self.operator = operator self.caresOfHeadless = False # should _deserializeFromHdf5 should be called with headless-argument? self._ignoreDirty = False
def __init__(self, topGroupName, slots=None, operator=None): """Constructor. Subclasses must call this method in their own __init__ functions. If they fail to do so, the shell raises an exception. Parameters: :param topGroupName: name of this applet's data group in the file. Defaults to the name of the operator. :param slots: a list of SerialSlots """ self.progressSignal = OrderedSignal( ) # Signature: __call__(percentComplete) self.base_initialized = True self.topGroupName = topGroupName self.serialSlots = maybe(slots, []) self.operator = operator self._ignoreDirty = False
def __init__(self, slot, inslot=None, name=None, subname=None, default=None, depends=None, selfdepends=True): """ :param slot: where to get data to save :param inslot: where to put loaded data. If None, it is the same as 'slot'. :param name: name used for the group in the hdf5 file. :param subname: used for creating subgroups for multislots. should be able to call subname.format(i), where i is an integer. :param default: DEPRECATED :param depends: a list of slots which must be ready before this slot can be serialized. If None, defaults to []. :param selfdepends: whether 'slot' should be added to 'depends' """ if slot.level > 1: # FIXME: recursive serialization, to support arbitrary levels raise Exception('slots of levels > 1 not supported') self.slot = slot if inslot is None: inslot = slot self.inslot = inslot self.default = default self.depends = maybe(depends, []) if selfdepends: self.depends.append(slot) if name is None: name = slot.name self.name = name if subname is None: subname = '{}' self.subname = subname self._dirty = False self._bind() self.ignoreDirty = False
def __init__(self, slot, name=None, subname=None, default=None, depends=None, autodepends=True): """ :param slot: the slot to save/load :param name: name used for the group in the hdf5 file. :param subname: used for creating subgroups for multislots. should be able to call subname.format(i), where i is an integer. :param default: the default value when unload() is called. If it is None, the slot will just be disconnected (for level 0 slots) or resized to length 0 (for multislots) :param depends: a list of slots which must be ready before this slot can be serialized. If None, defaults to []. :param autodepends: whether 'slot' should be added to 'depends' """ if slot.level > 1: # FIXME: recursive serialization, to support arbitrary levels raise Exception('slots of levels > 1 not supported') self.slot = slot self.default = default self.depends = maybe(depends, []) if autodepends: self.depends.append(slot) if name is None: name = slot.name self.name = name if subname is None: subname = '{}' self.subname = subname self._dirty = False self._bind()