Skip to content

TypeError: 'method' object is not subscriptable #135

@LeonHardwolscht

Description

@LeonHardwolscht

Hi,
I just learnt about floweaver and started a small tutorial within my venv on Python 3.12.2 to get to know the package. However, when I run the code provided below, it raises me a TypeError.

This is my example code:

from floweaver import *
import pandas as pd


flows = pd.DataFrame([
    {'source': 'farm1', 'target': 'Mary', 'value': 3, 'type': 'apples'},
    {'source': 'farm1', 'target': 'James', 'value': 1, 'type': 'apples'},
    {'source': 'farm2', 'target': 'Fred', 'value': 4, 'type': 'apples'},
    {'source': 'farm2', 'target': 'Fred', 'value': 4, 'type': 'bananas'},
    {'source': 'farm2', 'target': 'Susan', 'value': 4, 'type': 'bananas'},
    {'source': 'farm3', 'target': 'Susan', 'value': 4, 'type': 'apples'},
    {'source': 'farm4', 'target': 'Susan', 'value': 4, 'type': 'bananas'},
    {'source': 'farm5', 'target': 'Susan', 'value': 4, 'type': 'bananas'},
    {'source': 'farm6', 'target': 'Susan', 'value': 4, 'type': 'bananas'},
], columns=['source', 'target', 'value', 'type'])

# Set the default size to fit the documentation better.
size = dict(width=570, height=300)

nodes = {
    'farms': ProcessGroup(['farm1', 'farm2', 'farm3',
                           'farm4', 'farm5', 'farm6']),
    'customers': ProcessGroup(['James', 'Mary', 'Fred', 'Susan']),
}
ordering = [
    ['farms'],       # put "farms" on the left...
    ['customers'],   # ... and "customers" on the right.
]
bundles = [
    Bundle('farms', 'customers'),
]
sdd = SankeyDefinition(nodes, bundles, ordering)
weave(sdd, flows).to_widget(**size)

raising the following error message:

TypeError                                 Traceback (most recent call last)
Cell In[6], [line 33]
     [29] bundles = [
     [30] Bundle('farms', 'customers'),
     [31] ]
     [32] sdd = SankeyDefinition(nodes, bundles, ordering)
---> [33] weave(sdd, flows).to_widget(**size)

File \.venv\Lib\site-packages\floweaver\weave.py:36, in weave(sankey_definition, dataset, measures, link_width, link_color, palette, add_elsewhere_waypoints)
     [33](file:/.venv/Lib/site-packages/floweaver/weave.py:33)     dataset = Dataset(dataset)
     [35](file:/.venv/Lib/site-packages/floweaver/weave.py:35) # Calculate the view graph (adding dummy nodes)
---> [36](file:/.venv/Lib/site-packages/floweaver/weave.py:36) GV = view_graph(sankey_definition)
     [38](file:/.venv/Lib/site-packages/floweaver/weave.py:38) # Add implicit to/from Elsewhere bundles to the view definition to ensure
     [39](file:/.venv/Lib/site-packages/floweaver/weave.py:39) # consistency.
     [40](file:/.venv/Lib/site-packages/floweaver/weave.py:40) new_waypoints, new_bundles = elsewhere_bundles(sankey_definition, add_elsewhere_waypoints)

File \.venv\Lib\site-packages\floweaver\view_graph.py:14, in view_graph(sankey_definition)
     [11](file:/.venv/Lib/site-packages/floweaver/view_graph.py:11)     G.add_node(k, node=node)
     [13](file:/.venv/Lib/site-packages/floweaver/view_graph.py:13) G.ordering = sankey_definition.ordering
---> [14](file:/.venv/Lib/site-packages/floweaver/view_graph.py:14) G = _add_bundles_to_graph(G, sankey_definition.bundles,
     [15](file:/.venv/Lib/site-packages/floweaver/view_graph.py:15)                           _bundle_order(sankey_definition))
     [17](file:/.venv/Lib/site-packages/floweaver/view_graph.py:17) return G

File \.venv\Lib\site-packages\floweaver\view_graph.py:32, in _add_bundles_to_graph(G, bundles, sort_key)
...
     [20](file:/.venv/Lib/site-packages/floweaver/layered_graph.py:20) def get_node(self, u):
     [21](file:/.venv/Lib/site-packages/floweaver/layered_graph.py:21)     """Get the ProcessGroup or Waypoint associated with `u`"""
---> [22](file:/.venv/Lib/site-packages/floweaver/layered_graph.py:22)     return self.nodes[u]['node']

TypeError: 'method' object is not subscriptable

I'm using floweaver 2.0.1 with
numpy 1.26.4
pandas 2.2.1
networkx 3.3
attrs 23.2.0

Can you please help me to employ the package?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions