Attributes
Attribute table helpers from annnet.core._Annotation.
These methods are mixed into AnnNet. Direct imports from underscore modules
follow the internal API policy.
annnet.core._Annotation.AttributesClass
Attribute accessors and upsert helpers (graph/node/edge/slice/edge-slice).
Functions
set_graph_attribute
Set a graph-level attribute.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Attribute name. |
required |
value
|
Any
|
Attribute value. |
required |
get_graph_attribute
Get a graph-level attribute.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Attribute name. |
required |
default
|
Any
|
Value to return if the attribute is missing. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
|
set_node_attrs
Upsert pure node attributes (non-structural) into the node table.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node_id
|
str
|
Node identifier. |
required |
**attrs
|
Attribute key/value pairs. |
{}
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If any key is structurally reserved (e.g. |
set_node_attrs_bulk
Upsert node attributes in bulk.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
updates
|
dict[str, dict] | Iterable[tuple[str, dict]]
|
Mapping or iterable of |
required |
get_attr_node
Get a single node attribute (scalar) or default if missing.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node_id
|
str
|
Node identifier. |
required |
key
|
str
|
Attribute name. |
required |
default
|
Any
|
Value to return if missing. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
|
set_edge_attrs
Upsert pure edge attributes (non-structural) into the edge DF.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
edge_id
|
str
|
Edge identifier. |
required |
**attrs
|
Attribute key/value pairs. |
{}
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If any key is structurally reserved (e.g. |
set_edge_attrs_bulk
Upsert edge attributes in bulk.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
updates
|
dict[str, dict] | Iterable[tuple[str, dict]]
|
Mapping or iterable of |
required |
get_attr_edge
Get a single edge attribute (scalar) or default if missing.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
edge_id
|
str
|
Edge identifier. |
required |
key
|
str
|
Attribute name. |
required |
default
|
Any
|
Value to return if missing. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
|
set_slice_attrs
Upsert pure slice attributes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
**attrs
|
Attribute key/value pairs. Structural keys are ignored. |
{}
|
get_slice_attr
Get a single slice attribute (scalar) or default if missing.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
key
|
str
|
Attribute name. |
required |
default
|
Any
|
Value to return if missing. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
|
set_edge_slice_attrs
Upsert per-slice attributes for a specific edge.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
edge_id
|
str
|
Edge identifier. |
required |
**attrs
|
Attribute key/value pairs. Structural keys are ignored except |
{}
|
edge_slice
Return every attribute one edge carries in one slice.
The level of this store is the pair, so an edge that carries nothing in this slice answers with an empty mapping rather than with the attributes it carries elsewhere.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
edge_id
|
str
|
Edge identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict
|
|
get_edge_slice_attr
Get a per-slice attribute for an edge.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
edge_id
|
str
|
Edge identifier. |
required |
key
|
str
|
Attribute name. |
required |
default
|
Any
|
Value to return if missing. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
|
set_slice_edge_weight
Set a legacy per-slice weight override for an edge.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
edge_id
|
str
|
Edge identifier. |
required |
weight
|
float
|
Weight override. |
required |
Raises:
| Type | Description |
|---|---|
KeyError
|
If the slice or edge does not exist. |
See Also
get_effective_edge_weight
get_effective_edge_weight
Resolve the effective weight for an edge, optionally within a slice.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
edge_id
|
str
|
Edge identifier. |
required |
slice
|
str
|
Slice to read the override from. When omitted, the graph's currently active slice is used. Pass an explicit slice ID to override the active-slice resolution. |
None
|
Returns:
| Type | Description |
|---|---|
float
|
Effective weight. |
audit_attributes
Audit attribute tables for extra/missing rows and invalid edge-slice pairs.
Returns:
| Type | Description |
|---|---|
dict
|
Summary with keys:
- |
Notes
The node table and the edge table are derived from columns addressed by slot, so a row of either names an element the graph holds and every element the graph holds has one. The first four lists are therefore always empty, and what this still finds is an edge-by-slice row that names a slice or an edge the graph does not hold.
get_edge_attrs
Return the full attribute dict for a single edge.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
edge
|
int | str
|
Edge index or edge ID. |
required |
Returns:
| Type | Description |
|---|---|
dict
|
Attribute dictionary for that edge. Empty if not found. |
get_node_attrs
Return the full attribute dict for a single node.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node
|
str
|
Node ID. |
required |
Returns:
| Type | Description |
|---|---|
dict
|
Attribute dictionary for that node. Empty if not found. |
get_attr_edges
Retrieve edge attributes as a dictionary.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
indexes
|
Iterable[int] | None
|
Edge indices to retrieve. If None, returns all edges. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, dict]
|
Mapping of |
get_attr_nodes
Retrieve node (node) attributes as a dictionary.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nodes
|
Iterable[str] | None
|
Node IDs to retrieve. If None, returns all nodes. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, dict]
|
Mapping of |
get_attr_from_edges
Extract a specific attribute column for all edges.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Attribute column name to extract. |
required |
default
|
Any
|
Value to use if the column or value is missing. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Mapping of |
get_edges_by_attr
Retrieve all edges where a given attribute equals a specific value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Attribute column name to filter on. |
required |
value
|
Any
|
Value to match. |
required |
Returns:
| Type | Description |
|---|---|
list[str]
|
Edge IDs where the attribute equals |
get_graph_attributes
Return a shallow copy of the graph-level attributes dictionary.
Returns:
| Type | Description |
|---|---|
dict
|
Shallow copy of global graph metadata. |
Notes
Returned value is a shallow copy to prevent external mutation.
set_edge_slice_attrs_bulk
Upsert edge-slice attributes for a single slice in bulk.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_id
|
str
|
Slice identifier. |
required |
items
|
Iterable[tuple[str, dict]] | dict[str, dict]
|
Iterable or mapping of |
required |