nustack

refs.sequence

SequenceRef hierarchy: ordered container Ref + Form mixin tiers.

Module nu.domains.shape.refs.sequence.

SequenceRef hierarchy: ordered container Ref + Form mixin tiers.

SequenceRef = shape.SequenceForm + StructuredRef MutableSequenceRef = shape.MutableSequenceForm + SequenceRef ReactiveSequenceRef = shape.ReactiveSequenceForm + MutableSequenceRef

shape.SequenceForm already composes generic SequenceForm + shape CollectionForm, so exists()/missing()/extract()/store()/erase() are all present without a separate ItemForm in the MRO.

Subscript access (ref[i]) returns the matching-tier ItemRef.

Form composition provides: base: len(), contains(), iter(), [i], first_elem(), last_elem(), ..., exists(), missing(), extract() mutable: + append(v), extend(), insert(i,v), pop(), ..., store(v), erase() reactive: + on_change() (generic), on_child_change(), on_children_change(), on_descendants_change() (shape-domain)

The _wrap_* abstract methods from SequenceForm are left un-overridden (raise NotImplementedError) in these blueprints. Substrate subclasses fill them in.

NameSortCallMeaning
MutableSequenceRefrefMutableSequenceRef(address, parent_ref=None, owner_shape=None)Mutable ordered container Ref.
ReactiveSequenceRefrefReactiveSequenceRef(address, parent_ref=None, owner_shape=None)Reactive ordered container Ref.
SequenceRefrefSequenceRef(address, parent_ref=None, owner_shape=None)Ordered container Ref; ref[i] navigates to the element's child Ref.

MutableSequenceRef

Mutable ordered container Ref.

MutableSequenceRef(address, parent_ref=None, owner_shape=None)

Path nu.domains.shape.MutableSequenceRef. Kind Ref, sort ref, cardinality scalar.

Adds: append(v), extend(), insert(i,v), pop(), ..., store(v), erase().

Inherited methods

From nu.forms.collections.abc.sequence.MutableSequenceForm:

CallBuildsMeaning
.append(value)AnyAppend value to the end of self.
.extend(other)AnyExtend self with the elements of other, in order.
.insert(index, value)AnyInsert value at index, shifting later elements right.
.pop(index=-1)ElementResultTRemove and return the element at index.
.del_at(index)AnyRemove the element at index.
.remove(value)AnyRemove the first occurrence of value.
.reverse()AnyReverse self in place.
.sort()AnySort self in place, ascending, using the elements' natural order.
.copy()CollectionResultTShallow copy of self: a new sequence with the same elements.
.clear()AnyRemove every element from self.

From nu.domains.shape.refs.sequence.SequenceRef:

CallBuildsMeaning
a[key]ItemResultTInt index navigates to the child Ref; slice routes to the form-level slice op.

From nu.forms.collections.abc.sequence.SequenceForm:

CallBuildsMeaning
.first_elem()ElementResultTFirst element of self.
.last_elem()ElementResultTLast element of self.
.index(value)IntLowest index in self where value is found, searching from the left.
.count(value)IntCount of occurrences of value in self.
.reversed()CollectionResultTSelf walked back to front, as a stream.

From nu.forms.collections.abc.collection.CollectionForm:

CallBuildsMeaning
.extract()objectMaterialise the full subtree rooted at self.

From nu.forms.collections.abc.sized.SizedForm:

CallBuildsMeaning
.len()IntLength of self.

From nu.forms.collections.abc.iterable.IterableForm:

CallBuildsMeaning
iter(a)Iterator[ElementT]Open self into a lazy iterator stream (Python's iter).

From nu.forms.collections.abc.container.ContainerForm:

CallBuildsMeaning
.contains(item)BoolWhether item is a member of self.

From nu.forms.collections.abc.sliceable.SliceableForm:

CallBuildsMeaning
.slice(start, stop, step=None)ResultTSlice of self from start to stop, stepping by step.

From nu.domains.shape.forms.collection.MutableCollectionForm:

CallBuildsMeaning
.set(value)SetCmdBuild a SetCmd.
.erase()EraseBuild an Erase.
.init(value)IfDoSet value iff the collection is currently missing.

From nu.domains.shape.forms.collection.CollectionForm:

CallBuildsMeaning
.exists()ExistsBuild an Exists query.
.missing()MissingBuild a Missing query.

From nu.lang.forms.Form:

CallBuildsMeaning
.is_empty()BoolTrue if this Form yields the EMPTY sentinel.
.is_invalid()BoolTrue if this Form yields the INVALID sentinel.
.is_sentinel()BoolTrue if this Form yields either sentinel (EMPTY or INVALID).
.not_empty()BoolTrue if this Form does not yield EMPTY.
.not_invalid()BoolTrue if this Form does not yield INVALID.

Undocumented: example.

ReactiveSequenceRef

Reactive ordered container Ref.

ReactiveSequenceRef(address, parent_ref=None, owner_shape=None)

Path nu.domains.shape.ReactiveSequenceRef. Kind Ref, sort ref, cardinality scalar.

Adds: on_change(), on_child_change(), on_children_change(), on_descendants_change() on top of MutableSequenceRef.

Inherited methods

From nu.forms.collections.abc.sequence.ReactiveSequenceForm:

CallBuildsMeaning
.on_change()objectSubscribe to any change on this sequence slot.

From nu.forms.collections.abc.sequence.MutableSequenceForm:

CallBuildsMeaning
.append(value)AnyAppend value to the end of self.
.extend(other)AnyExtend self with the elements of other, in order.
.insert(index, value)AnyInsert value at index, shifting later elements right.
.pop(index=-1)ElementResultTRemove and return the element at index.
.del_at(index)AnyRemove the element at index.
.remove(value)AnyRemove the first occurrence of value.
.reverse()AnyReverse self in place.
.sort()AnySort self in place, ascending, using the elements' natural order.
.copy()CollectionResultTShallow copy of self: a new sequence with the same elements.
.clear()AnyRemove every element from self.

From nu.domains.shape.refs.sequence.SequenceRef:

CallBuildsMeaning
a[key]ItemResultTInt index navigates to the child Ref; slice routes to the form-level slice op.

From nu.forms.collections.abc.sequence.SequenceForm:

CallBuildsMeaning
.first_elem()ElementResultTFirst element of self.
.last_elem()ElementResultTLast element of self.
.index(value)IntLowest index in self where value is found, searching from the left.
.count(value)IntCount of occurrences of value in self.
.reversed()CollectionResultTSelf walked back to front, as a stream.

From nu.forms.collections.abc.collection.CollectionForm:

CallBuildsMeaning
.extract()objectMaterialise the full subtree rooted at self.

From nu.forms.collections.abc.sized.SizedForm:

CallBuildsMeaning
.len()IntLength of self.

From nu.forms.collections.abc.iterable.IterableForm:

CallBuildsMeaning
iter(a)Iterator[ElementT]Open self into a lazy iterator stream (Python's iter).

From nu.forms.collections.abc.container.ContainerForm:

CallBuildsMeaning
.contains(item)BoolWhether item is a member of self.

From nu.forms.collections.abc.sliceable.SliceableForm:

CallBuildsMeaning
.slice(start, stop, step=None)ResultTSlice of self from start to stop, stepping by step.

From nu.domains.shape.forms.collection.ReactiveCollectionForm:

CallBuildsMeaning
.on_child_change(address)OnChildChangeObserve changes at a specific child address.
.on_children_change()OnChildrenChangeObserve changes across all direct children.
.on_descendants_change()OnDescendantsChangeObserve changes across descendants matching pattern.

From nu.domains.shape.forms.collection.MutableCollectionForm:

CallBuildsMeaning
.set(value)SetCmdBuild a SetCmd.
.erase()EraseBuild an Erase.
.init(value)IfDoSet value iff the collection is currently missing.

From nu.domains.shape.forms.collection.CollectionForm:

CallBuildsMeaning
.exists()ExistsBuild an Exists query.
.missing()MissingBuild a Missing query.

From nu.lang.forms.Form:

CallBuildsMeaning
.is_empty()BoolTrue if this Form yields the EMPTY sentinel.
.is_invalid()BoolTrue if this Form yields the INVALID sentinel.
.is_sentinel()BoolTrue if this Form yields either sentinel (EMPTY or INVALID).
.not_empty()BoolTrue if this Form does not yield EMPTY.
.not_invalid()BoolTrue if this Form does not yield INVALID.

Undocumented: example.

SequenceRef

Ordered container Ref; ref[i] navigates to the element's child Ref.

SequenceRef(address, parent_ref=None, owner_shape=None)

Path nu.domains.shape.SequenceRef. Kind Ref, sort ref, cardinality scalar.

Navigation is defined ONCE (__getitem__) and routes through _wrap_item_ref: the child-Ref analogue of _wrap_element_result. Each tier supplies the matching domain item Ref as its default; substrates override _wrap_item_ref to return their own item Ref and bind ItemResultT so ref[i] is statically the correct child Ref type.

Methods

a[key]

Int index navigates to the child Ref; slice routes to the form-level slice op.

Builds ItemResultT.

Arguments

NameTypeDefaultMeaning
indexobject

Undocumented: example.

Inherited methods

From nu.forms.collections.abc.sequence.SequenceForm:

CallBuildsMeaning
.first_elem()ElementResultTFirst element of self.
.last_elem()ElementResultTLast element of self.
.index(value)IntLowest index in self where value is found, searching from the left.
.count(value)IntCount of occurrences of value in self.
.reversed()CollectionResultTSelf walked back to front, as a stream.

From nu.forms.collections.abc.collection.CollectionForm:

CallBuildsMeaning
.extract()objectMaterialise the full subtree rooted at self.

From nu.forms.collections.abc.sized.SizedForm:

CallBuildsMeaning
.len()IntLength of self.

From nu.forms.collections.abc.iterable.IterableForm:

CallBuildsMeaning
iter(a)Iterator[ElementT]Open self into a lazy iterator stream (Python's iter).

From nu.forms.collections.abc.container.ContainerForm:

CallBuildsMeaning
.contains(item)BoolWhether item is a member of self.

From nu.forms.collections.abc.sliceable.SliceableForm:

CallBuildsMeaning
.slice(start, stop, step=None)ResultTSlice of self from start to stop, stepping by step.

From nu.domains.shape.forms.collection.CollectionForm:

CallBuildsMeaning
.exists()ExistsBuild an Exists query.
.missing()MissingBuild a Missing query.

From nu.lang.forms.Form:

CallBuildsMeaning
.is_empty()BoolTrue if this Form yields the EMPTY sentinel.
.is_invalid()BoolTrue if this Form yields the INVALID sentinel.
.is_sentinel()BoolTrue if this Form yields either sentinel (EMPTY or INVALID).
.not_empty()BoolTrue if this Form does not yield EMPTY.
.not_invalid()BoolTrue if this Form does not yield INVALID.

Undocumented: example.

On this page