The stateful Infomap class¶
How-to
At a glance
The infomap.Infomap class is the stateful entry point: build a network
with the add_* verbs, then call run() for an immutable
Result. New code should prefer infomap.run() for one-shot
use and Network for incremental construction; existing
Infomap code keeps working essentially unchanged (see
Removed accessors for the few exceptions).
When to use it¶
The functional infomap.run() and the Network builder
cover most needs. Reach for the stateful Infomap class when you
want to keep one configured object around and run it repeatedly, or when you are
maintaining code written against the original API. Internally it composes a
Network and an Options over the same engine boundary, so its building verbs
and its results are identical to the functional path.
from infomap import Infomap
im = Infomap(silent=True, seed=123, num_trials=10)
im.add_link(0, 1)
im.add_link(1, 2)
im.add_link(2, 0)
result = im.run() # returns an immutable Result
print(result.codelength)
print(result.modules())
1.5849625007211494
{0: 1, 1: 1, 2: 1}
im.run() returns the same Result the functional API returns.
The on-instance accessors (im.get_modules(), im.codelength, im.nodes) still
work and are backed by that result.
Migrating to the functional API¶
Each stateful pattern has a direct functional or Network equivalent:
Task |
Stateful |
Functional / |
|---|---|---|
Run a graph |
|
|
Build incrementally |
|
|
Reusable configuration |
repeat the keyword arguments |
|
Top-level modules |
|
|
Modules at level k |
|
|
State-node modules |
|
|
Per-node flow |
|
|
DataFrame |
|
|
Scalar metrics |
|
|
Graph-file export |
|
|
The two consistent shifts: building a network is a Network
(or a direct infomap.run() call) rather than the stateful instance, and
reading results goes through the immutable Result whose scalars
are properties and whose collections are methods with defaults.
Removed accessors¶
The redesign dropped a few camelCase passthroughs. Their replacements:
Removed |
Use instead |
|---|---|
|
set |
|
|
|
declare with |
|
one metadata dimension is supported; there is no count accessor |
See also¶
Quick start leads with the functional API.
Infomap class is the full reference for the stateful class.
API reference covers
infomap.run(),infomap.Network,infomap.Result, andinfomap.Options.