Changelog
The package is before its first stable release, so a removed name carries no deprecation and no alias. Each removal below names what replaces it.
A removal also lands in every package that bridges to AnnNet, and none of them
is in this test suite. DEPENDENTS.md says who those packages are and what to
do about it, and tests/test_dependents.py fails the build when a name one of
them calls goes away.
Unreleased
Removed
annnet.from_omnipathandannnet.io.from_omnipath. Access to one knowledge base belongs in the client for that knowledge base, which is what returns AnnNet objects. The replacement isomnipath_client.to_annnet, which builds a graph from any OmniPath table, andomnipath_client.annotate_nodes, which gives every node of that graph what OmniPath knows about it.omnipath_client.relations(as_graph=True)fetches and builds in one call. The package now declares no HTTP client and downloads nothing.- Every map from an id to a position:
entity_to_idx,idx_to_entity,edge_to_idx,idx_to_edgeandentity_types. A position belongs to one materialized matrix.G.idxtranslates a coordinate a caller already holds, andG.views.entity_kinds()reads the kind of each entity. - Every position in a lookup.
get_edgetakes an id and raises on a column.get_nodetakes an id too, and gives back aNodeView. The n-th node of a sequence isG.N[n]. G.X(), which was a second name forG.S, the signed coefficient incidence. The named matrices areG.A,G.B,G.H,G.SandG.L.- The count aliases:
num_vertices,num_edges,num_supra_vertices,number_of_vertices,number_of_edgesand the threeglobal_*_countwrappers. Usencount()andecount(), with the supra-node count an option of the first.nv,neandnv_suprastay as the property spelling. G.vertex_attributesandG.edge_attributes, which were the storage of the graph under a public name.G.obsandG.varbuild a table for the caller, and writing into one changes nothing the graph holds.
Changed
- The generic attributes of a node and of an edge live in slot-indexed columns. One write lands in one cell and builds no table, at any size, and reading one attribute of every element is a slice of the array the store holds.
- Set algebra between two graphs:
|,&,-,^,|=. It applies to the node set and the edge set together, and an edge survives only when every node it names does. - Each contextual attribute level has one entry point, named for the level:
G.slices.attrs,G.attrs.edge_slice,G.layers.attrs,G.layers.node_attrs,G.layers.aspect_attrsandG.layers.elementary_attrs. - The PyTorch Geometric writer moved from
annnet.adapters.pyg_adaptertoannnet.io.pyg, with no alias at the old path.
Renamed
- The package says "node", everywhere and only.
vertexis gone from every method, parameter, attribute, column name and document:add_verticesisadd_nodes,remove_verticesisremove_nodes,vertices()isnodes(),has_vertexishas_node,supra_verticesissupra_nodes, andvertex_idisnode_idin every table the package hands back. Two words for one concept was the largest of the faults this release fixes, not a reason to keep it.nv,neandnv_supranever carried the word and do not move. - The native format writes the new words. Its reader takes both, so an archive written before this release still loads: four member names, two columns and the entity kind each map the old spelling forward.
Added
G.NandG.E, the node sequence and the edge sequence. A string key is an attribute column, an integer key is a position in that sequence, andselectandfindfilter it.G.get_node(node_id), which gives aNodeView: the id, the kind of the node, the layers it lives in, and its attributes.