Skip to content

Slices

Slices represent subgraphs with their own membership and attributes. This page covers both the manager API and the mixin used by AnnNet.

Slice Manager

annnet.core._Slices.SliceManager

Manager for graph slice operations.

Provides organized namespace for slice operations by delegating to AnnNet methods. All heavy lifting is done by the AnnNet class; this is just a clean API surface.

Attributes

_G = graph instance-attribute
active property writable

Get active slice ID.

Returns:

Type Description
str
Notes

Delegates to AnnNet.get_active_slice().

Functions

__init__(graph)
add(slice_id, **attributes)

Create new slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required
**attributes

Slice attributes to store.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Delegates to AnnNet.add_slice().

remove(slice_id)

Remove slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required
Notes

Delegates to AnnNet.remove_slice().

list(include_default=False)

List slice IDs.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice if True.

False

Returns:

Type Description
list[str]
Notes

Delegates to AnnNet.list_slices().

exists(slice_id)

Check if slice exists.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
bool
Notes

Delegates to AnnNet.has_slice().

info(slice_id)

Get slice metadata.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
dict
Notes

Delegates to AnnNet.get_slice_info().

count()

Get number of slices.

Returns:

Type Description
int
Notes

Delegates to AnnNet.slice_count().

vertices(slice_id)

Get vertices in slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]
Notes

Delegates to AnnNet.get_slice_vertices().

edges(slice_id)

Get edges in slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]
Notes

Delegates to AnnNet.get_slice_edges().

union(slice_ids)

Compute union of slices (returns dict, doesn't create slice).

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to union.

required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

Notes

Delegates to AnnNet.slice_union().

intersect(slice_ids)

Compute intersection of slices (returns dict, doesn't create slice).

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to intersect.

required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

Notes

Delegates to AnnNet.slice_intersection().

difference(slice_a, slice_b)

Compute set difference (returns dict, doesn't create slice).

Parameters:

Name Type Description Default
slice_a str

First slice.

required
slice_b str

Second slice.

required

Returns:

Type Description
dict

Elements in slice_a but not in slice_b.

Notes

Delegates to AnnNet.slice_difference().

union_create(slice_ids, name, **attributes)

Create new slice as union of existing slices.

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to union.

required
name str

New slice name.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Combines AnnNet.slice_union() with AnnNet.create_slice_from_operation().

intersect_create(slice_ids, name, **attributes)

Create new slice as intersection of existing slices.

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to intersect.

required
name str

New slice name.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Combines AnnNet.slice_intersection() with AnnNet.create_slice_from_operation().

difference_create(slice_a, slice_b, name, **attributes)

Create new slice as difference of two slices.

Parameters:

Name Type Description Default
slice_a str

First slice.

required
slice_b str

Second slice.

required
name str

New slice name.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Combines AnnNet.slice_difference() with AnnNet.create_slice_from_operation().

aggregate(source_slice_ids, target_slice_id, method='union', weight_func=None, **attributes)

Create aggregated slice from multiple sources.

Parameters:

Name Type Description Default
source_slice_ids list[str]

Source slices.

required
target_slice_id str

Target slice name.

required
method (union, intersection)

Aggregation method.

'union'
weight_func callable

Weight merging function (reserved).

None
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Delegates to AnnNet.create_aggregated_slice().

stats(include_default=False)

Get statistics for all slices.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice.

False

Returns:

Type Description
dict[str, dict]

Mapping of slice ID to stats.

Notes

Delegates to AnnNet.slice_statistics().

vertex_presence(vertex_id, include_default=False)

Find slices containing a vertex.

Parameters:

Name Type Description Default
vertex_id str

Vertex to search for.

required
include_default bool

Include the internal default slice.

False

Returns:

Type Description
list[str]
Notes

Delegates to AnnNet.vertex_presence_across_slices().

edge_presence(edge_id=None, source=None, target=None, include_default=False, undirected_match=None)

Find slices containing an edge.

Parameters:

Name Type Description Default
edge_id str

Edge ID to search for.

None
source str

Source vertex (with target).

None
target str

Target vertex (with source).

None
include_default bool

Include the internal default slice.

False
undirected_match bool

Allow symmetric matches.

None

Returns:

Type Description
list[str] | dict[str, list[str]]

If edge_id: list of slice IDs. If source/target: mapping of slice IDs to matching edge IDs.

Notes

Delegates to AnnNet.edge_presence_across_slices().

hyperedge_presence(members=None, head=None, tail=None, include_default=False)

Find slices containing a hyperedge.

Parameters:

Name Type Description Default
members Iterable[str]

Undirected hyperedge members.

None
head Iterable[str]

Directed hyperedge head.

None
tail Iterable[str]

Directed hyperedge tail.

None
include_default bool

Include the internal default slice.

False

Returns:

Type Description
dict[str, list[str]]

Mapping of slice ID to edge IDs.

Notes

Delegates to AnnNet.hyperedge_presence_across_slices().

conserved_edges(min_slices=2, include_default=False)

Find edges present in multiple slices.

Parameters:

Name Type Description Default
min_slices int

Minimum number of slices.

2
include_default bool

Include the internal default slice.

False

Returns:

Type Description
dict[str, int]

Mapping of edge ID to slice count.

Notes

Delegates to AnnNet.conserved_edges().

specific_edges(slice_id)

Find edges unique to a slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]

Edge IDs unique to this slice.

Notes

Delegates to AnnNet.slice_specific_edges().

temporal_dynamics(ordered_slices, metric='edge_change')

Analyze temporal changes across slices.

Parameters:

Name Type Description Default
ordered_slices list[str]

Slice IDs in chronological order.

required
metric (edge_change, vertex_change)

What to track.

'edge_change'

Returns:

Type Description
list[dict]

Per-step changes with keys added, removed, net_change.

Notes

Delegates to AnnNet.temporal_dynamics().

summary()

Get human-readable summary of all slices.

Returns:

Type Description
str

Formatted summary.

__repr__()

Slice Mixin

annnet.core._Slices.SliceClass

Functions

add_slice(slice_id, **attributes)

Create a new empty slice.

Parameters:

Name Type Description Default
slice_id str

New slice identifier.

required
**attributes

Slice attributes to store.

{}

Returns:

Type Description
str

The created slice ID.

Raises:

Type Description
ValueError

If the slice already exists.

set_active_slice(slice_id)

Set the active slice for subsequent operations.

Parameters:

Name Type Description Default
slice_id str

Existing slice ID.

required

Raises:

Type Description
KeyError

If the slice does not exist.

get_active_slice()

Get the currently active slice ID.

Returns:

Type Description
str

Active slice ID.

get_slices_dict(include_default=False)

Get a mapping of slice IDs to their metadata.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice if True.

False

Returns:

Type Description
dict[str, dict]

Mapping of slice IDs to metadata dicts.

list_slices(include_default=False)

List slice IDs.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice if True.

False

Returns:

Type Description
list[str]

Slice IDs.

has_slice(slice_id)

Check whether a slice exists.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
bool
slice_count()

Get the number of slices (including the internal default).

Returns:

Type Description
int
get_slice_info(slice_id)

Get a slice's metadata snapshot.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
dict

Copy of {"vertices": set, "edges": set, "attributes": dict}.

Raises:

Type Description
KeyError

If the slice does not exist.

get_slice_vertices(slice_id)

Vertices in a slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]
get_slice_edges(slice_id)

Edges in a slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]
slice_union(slice_ids)

Union of multiple slices.

Parameters:

Name Type Description Default
slice_ids Iterable[str]
required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

slice_intersection(slice_ids)

Intersection of multiple slices.

Parameters:

Name Type Description Default
slice_ids Iterable[str]
required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

slice_difference(slice1_id, slice2_id)

Set difference: elements in slice1_id not in slice2_id.

Parameters:

Name Type Description Default
slice1_id str
required
slice2_id str
required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

Raises:

Type Description
KeyError

If either slice is missing.

create_slice_from_operation(result_slice_id, operation_result, **attributes)

Create a new slice from the result of a set operation.

Parameters:

Name Type Description Default
result_slice_id str

New slice identifier.

required
operation_result dict

Output of slice_union/slice_intersection/slice_difference.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

The created slice ID.

Raises:

Type Description
ValueError

If the target slice already exists.

add_vertex_to_slice(lid, vid)

Attach an existing vertex to a slice.

Parameters:

Name Type Description Default
lid str

Slice identifier.

required
vid str

Vertex identifier.

required

Raises:

Type Description
KeyError

If the slice does not exist.

edge_presence_across_slices(edge_id=None, source=None, target=None, *, include_default=False, undirected_match=None)

Locate where an edge exists across slices.

Parameters:

Name Type Description Default
edge_id str

If provided, match by ID (any kind: binary/vertex-edge/hyper).

None
source str

When used with target, match binary/vertex-edge edges by endpoints.

None
target str
None
include_default bool

Include the internal default slice in the search.

False
undirected_match bool

When endpoint matching, allow undirected symmetric matches.

None

Returns:

Type Description
list[str] | dict[str, list[str]]

If edge_id is given: list of slice IDs. Otherwise mapping of slice IDs to matching edge IDs.

Raises:

Type Description
ValueError

If both modes (ID and endpoints) are provided or neither is valid.

hyperedge_presence_across_slices(*, members=None, head=None, tail=None, include_default=False)

Locate slices containing a hyperedge with exactly these sets.

Parameters:

Name Type Description Default
members Iterable[str]

Undirected member set (exact match).

None
head Iterable[str]

Directed head set (exact match).

None
tail Iterable[str]

Directed tail set (exact match).

None
include_default bool
False

Returns:

Type Description
dict[str, list[str]]

Mapping of slice IDs to matching edge IDs.

Raises:

Type Description
ValueError

For invalid combinations or empty sets.

vertex_presence_across_slices(vertex_id, include_default=False)

List slices containing a specific vertex.

Parameters:

Name Type Description Default
vertex_id str
required
include_default bool
False

Returns:

Type Description
list[str]
conserved_edges(min_slices=2, include_default=False)

Edges present in at least min_slices slices.

Parameters:

Name Type Description Default
min_slices int
2
include_default bool
False

Returns:

Type Description
dict[str, int]

Mapping of edge ID to slice count.

slice_specific_edges(slice_id)

Edges that appear only in the specified slice.

Parameters:

Name Type Description Default
slice_id str
required

Returns:

Type Description
set[str]

Raises:

Type Description
KeyError

If the slice does not exist.

temporal_dynamics(ordered_slices, metric='edge_change')

Compute changes between consecutive slices in a temporal sequence.

Parameters:

Name Type Description Default
ordered_slices list[str]

Slice IDs in chronological order.

required
metric (edge_change, vertex_change)
'edge_change'

Returns:

Type Description
list[dict[str, int]]

Per-step dictionaries with keys added, removed, net_change.

Raises:

Type Description
ValueError

If fewer than two slices are provided.

KeyError

If a referenced slice does not exist.

create_aggregated_slice(source_slice_ids, target_slice_id, method='union', weight_func=None, **attributes)

Create a new slice by aggregating multiple source slices.

Parameters:

Name Type Description Default
source_slice_ids list[str]
required
target_slice_id str
required
method (union, intersection)
'union'
weight_func callable

Reserved for future weight merging logic (currently unused).

None
**attributes

Slice attributes.

{}

Returns:

Type Description
str

The created slice ID.

Raises:

Type Description
ValueError

For unknown methods or missing source slices, or if target exists.

slice_statistics(include_default=False)

Basic per-slice statistics.

Parameters:

Name Type Description Default
include_default bool
False

Returns:

Type Description
dict[str, dict]

Mapping of slice ID to stats.

Internal helpers

Manager for graph slice operations.

Provides organized namespace for slice operations by delegating to AnnNet methods. All heavy lifting is done by the AnnNet class; this is just a clean API surface.

Attributes

_G = graph instance-attribute

active property writable

Get active slice ID.

Returns:

Type Description
str
Notes

Delegates to AnnNet.get_active_slice().

Functions

__init__(graph)

add(slice_id, **attributes)

Create new slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required
**attributes

Slice attributes to store.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Delegates to AnnNet.add_slice().

remove(slice_id)

Remove slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required
Notes

Delegates to AnnNet.remove_slice().

list(include_default=False)

List slice IDs.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice if True.

False

Returns:

Type Description
list[str]
Notes

Delegates to AnnNet.list_slices().

exists(slice_id)

Check if slice exists.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
bool
Notes

Delegates to AnnNet.has_slice().

info(slice_id)

Get slice metadata.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
dict
Notes

Delegates to AnnNet.get_slice_info().

count()

Get number of slices.

Returns:

Type Description
int
Notes

Delegates to AnnNet.slice_count().

vertices(slice_id)

Get vertices in slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]
Notes

Delegates to AnnNet.get_slice_vertices().

edges(slice_id)

Get edges in slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]
Notes

Delegates to AnnNet.get_slice_edges().

union(slice_ids)

Compute union of slices (returns dict, doesn't create slice).

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to union.

required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

Notes

Delegates to AnnNet.slice_union().

intersect(slice_ids)

Compute intersection of slices (returns dict, doesn't create slice).

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to intersect.

required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

Notes

Delegates to AnnNet.slice_intersection().

difference(slice_a, slice_b)

Compute set difference (returns dict, doesn't create slice).

Parameters:

Name Type Description Default
slice_a str

First slice.

required
slice_b str

Second slice.

required

Returns:

Type Description
dict

Elements in slice_a but not in slice_b.

Notes

Delegates to AnnNet.slice_difference().

union_create(slice_ids, name, **attributes)

Create new slice as union of existing slices.

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to union.

required
name str

New slice name.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Combines AnnNet.slice_union() with AnnNet.create_slice_from_operation().

intersect_create(slice_ids, name, **attributes)

Create new slice as intersection of existing slices.

Parameters:

Name Type Description Default
slice_ids list[str]

Slices to intersect.

required
name str

New slice name.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Combines AnnNet.slice_intersection() with AnnNet.create_slice_from_operation().

difference_create(slice_a, slice_b, name, **attributes)

Create new slice as difference of two slices.

Parameters:

Name Type Description Default
slice_a str

First slice.

required
slice_b str

Second slice.

required
name str

New slice name.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Combines AnnNet.slice_difference() with AnnNet.create_slice_from_operation().

aggregate(source_slice_ids, target_slice_id, method='union', weight_func=None, **attributes)

Create aggregated slice from multiple sources.

Parameters:

Name Type Description Default
source_slice_ids list[str]

Source slices.

required
target_slice_id str

Target slice name.

required
method (union, intersection)

Aggregation method.

'union'
weight_func callable

Weight merging function (reserved).

None
**attributes

Slice attributes.

{}

Returns:

Type Description
str

Created slice ID.

Notes

Delegates to AnnNet.create_aggregated_slice().

stats(include_default=False)

Get statistics for all slices.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice.

False

Returns:

Type Description
dict[str, dict]

Mapping of slice ID to stats.

Notes

Delegates to AnnNet.slice_statistics().

vertex_presence(vertex_id, include_default=False)

Find slices containing a vertex.

Parameters:

Name Type Description Default
vertex_id str

Vertex to search for.

required
include_default bool

Include the internal default slice.

False

Returns:

Type Description
list[str]
Notes

Delegates to AnnNet.vertex_presence_across_slices().

edge_presence(edge_id=None, source=None, target=None, include_default=False, undirected_match=None)

Find slices containing an edge.

Parameters:

Name Type Description Default
edge_id str

Edge ID to search for.

None
source str

Source vertex (with target).

None
target str

Target vertex (with source).

None
include_default bool

Include the internal default slice.

False
undirected_match bool

Allow symmetric matches.

None

Returns:

Type Description
list[str] | dict[str, list[str]]

If edge_id: list of slice IDs. If source/target: mapping of slice IDs to matching edge IDs.

Notes

Delegates to AnnNet.edge_presence_across_slices().

hyperedge_presence(members=None, head=None, tail=None, include_default=False)

Find slices containing a hyperedge.

Parameters:

Name Type Description Default
members Iterable[str]

Undirected hyperedge members.

None
head Iterable[str]

Directed hyperedge head.

None
tail Iterable[str]

Directed hyperedge tail.

None
include_default bool

Include the internal default slice.

False

Returns:

Type Description
dict[str, list[str]]

Mapping of slice ID to edge IDs.

Notes

Delegates to AnnNet.hyperedge_presence_across_slices().

conserved_edges(min_slices=2, include_default=False)

Find edges present in multiple slices.

Parameters:

Name Type Description Default
min_slices int

Minimum number of slices.

2
include_default bool

Include the internal default slice.

False

Returns:

Type Description
dict[str, int]

Mapping of edge ID to slice count.

Notes

Delegates to AnnNet.conserved_edges().

specific_edges(slice_id)

Find edges unique to a slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]

Edge IDs unique to this slice.

Notes

Delegates to AnnNet.slice_specific_edges().

temporal_dynamics(ordered_slices, metric='edge_change')

Analyze temporal changes across slices.

Parameters:

Name Type Description Default
ordered_slices list[str]

Slice IDs in chronological order.

required
metric (edge_change, vertex_change)

What to track.

'edge_change'

Returns:

Type Description
list[dict]

Per-step changes with keys added, removed, net_change.

Notes

Delegates to AnnNet.temporal_dynamics().

summary()

Get human-readable summary of all slices.

Returns:

Type Description
str

Formatted summary.

__repr__()

Functions

add_slice(slice_id, **attributes)

Create a new empty slice.

Parameters:

Name Type Description Default
slice_id str

New slice identifier.

required
**attributes

Slice attributes to store.

{}

Returns:

Type Description
str

The created slice ID.

Raises:

Type Description
ValueError

If the slice already exists.

set_active_slice(slice_id)

Set the active slice for subsequent operations.

Parameters:

Name Type Description Default
slice_id str

Existing slice ID.

required

Raises:

Type Description
KeyError

If the slice does not exist.

get_active_slice()

Get the currently active slice ID.

Returns:

Type Description
str

Active slice ID.

get_slices_dict(include_default=False)

Get a mapping of slice IDs to their metadata.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice if True.

False

Returns:

Type Description
dict[str, dict]

Mapping of slice IDs to metadata dicts.

list_slices(include_default=False)

List slice IDs.

Parameters:

Name Type Description Default
include_default bool

Include the internal default slice if True.

False

Returns:

Type Description
list[str]

Slice IDs.

has_slice(slice_id)

Check whether a slice exists.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
bool

slice_count()

Get the number of slices (including the internal default).

Returns:

Type Description
int

get_slice_info(slice_id)

Get a slice's metadata snapshot.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
dict

Copy of {"vertices": set, "edges": set, "attributes": dict}.

Raises:

Type Description
KeyError

If the slice does not exist.

get_slice_vertices(slice_id)

Vertices in a slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]

get_slice_edges(slice_id)

Edges in a slice.

Parameters:

Name Type Description Default
slice_id str

Slice identifier.

required

Returns:

Type Description
set[str]

slice_union(slice_ids)

Union of multiple slices.

Parameters:

Name Type Description Default
slice_ids Iterable[str]
required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

slice_intersection(slice_ids)

Intersection of multiple slices.

Parameters:

Name Type Description Default
slice_ids Iterable[str]
required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

slice_difference(slice1_id, slice2_id)

Set difference: elements in slice1_id not in slice2_id.

Parameters:

Name Type Description Default
slice1_id str
required
slice2_id str
required

Returns:

Type Description
dict

{"vertices": set[str], "edges": set[str]}.

Raises:

Type Description
KeyError

If either slice is missing.

create_slice_from_operation(result_slice_id, operation_result, **attributes)

Create a new slice from the result of a set operation.

Parameters:

Name Type Description Default
result_slice_id str

New slice identifier.

required
operation_result dict

Output of slice_union/slice_intersection/slice_difference.

required
**attributes

Slice attributes.

{}

Returns:

Type Description
str

The created slice ID.

Raises:

Type Description
ValueError

If the target slice already exists.

add_vertex_to_slice(lid, vid)

Attach an existing vertex to a slice.

Parameters:

Name Type Description Default
lid str

Slice identifier.

required
vid str

Vertex identifier.

required

Raises:

Type Description
KeyError

If the slice does not exist.

edge_presence_across_slices(edge_id=None, source=None, target=None, *, include_default=False, undirected_match=None)

Locate where an edge exists across slices.

Parameters:

Name Type Description Default
edge_id str

If provided, match by ID (any kind: binary/vertex-edge/hyper).

None
source str

When used with target, match binary/vertex-edge edges by endpoints.

None
target str
None
include_default bool

Include the internal default slice in the search.

False
undirected_match bool

When endpoint matching, allow undirected symmetric matches.

None

Returns:

Type Description
list[str] | dict[str, list[str]]

If edge_id is given: list of slice IDs. Otherwise mapping of slice IDs to matching edge IDs.

Raises:

Type Description
ValueError

If both modes (ID and endpoints) are provided or neither is valid.

hyperedge_presence_across_slices(*, members=None, head=None, tail=None, include_default=False)

Locate slices containing a hyperedge with exactly these sets.

Parameters:

Name Type Description Default
members Iterable[str]

Undirected member set (exact match).

None
head Iterable[str]

Directed head set (exact match).

None
tail Iterable[str]

Directed tail set (exact match).

None
include_default bool
False

Returns:

Type Description
dict[str, list[str]]

Mapping of slice IDs to matching edge IDs.

Raises:

Type Description
ValueError

For invalid combinations or empty sets.

vertex_presence_across_slices(vertex_id, include_default=False)

List slices containing a specific vertex.

Parameters:

Name Type Description Default
vertex_id str
required
include_default bool
False

Returns:

Type Description
list[str]

conserved_edges(min_slices=2, include_default=False)

Edges present in at least min_slices slices.

Parameters:

Name Type Description Default
min_slices int
2
include_default bool
False

Returns:

Type Description
dict[str, int]

Mapping of edge ID to slice count.

slice_specific_edges(slice_id)

Edges that appear only in the specified slice.

Parameters:

Name Type Description Default
slice_id str
required

Returns:

Type Description
set[str]

Raises:

Type Description
KeyError

If the slice does not exist.

temporal_dynamics(ordered_slices, metric='edge_change')

Compute changes between consecutive slices in a temporal sequence.

Parameters:

Name Type Description Default
ordered_slices list[str]

Slice IDs in chronological order.

required
metric (edge_change, vertex_change)
'edge_change'

Returns:

Type Description
list[dict[str, int]]

Per-step dictionaries with keys added, removed, net_change.

Raises:

Type Description
ValueError

If fewer than two slices are provided.

KeyError

If a referenced slice does not exist.

create_aggregated_slice(source_slice_ids, target_slice_id, method='union', weight_func=None, **attributes)

Create a new slice by aggregating multiple source slices.

Parameters:

Name Type Description Default
source_slice_ids list[str]
required
target_slice_id str
required
method (union, intersection)
'union'
weight_func callable

Reserved for future weight merging logic (currently unused).

None
**attributes

Slice attributes.

{}

Returns:

Type Description
str

The created slice ID.

Raises:

Type Description
ValueError

For unknown methods or missing source slices, or if target exists.

slice_statistics(include_default=False)

Basic per-slice statistics.

Parameters:

Name Type Description Default
include_default bool
False

Returns:

Type Description
dict[str, dict]

Mapping of slice ID to stats.