Skip to content

Slices

Slice management from annnet.core._Slices.

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

active property writable

Get active slice ID.

Returns:

Type Description
str
Notes

Delegates to AnnNet.get_active_slice().

Functions

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.

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.