iiabm-core/product.py

26 lines
879 B
Python
Raw Normal View History

2023-09-10 22:35:48 +08:00
import agentpy as ap
class ProductAgent(ap.Agent):
def setup(self, code, name):
self.product_network = self.model.product_network
self.code = code
self.name = name
def a_successors(self):
# find successors of a product, return in AgentList (ProductAgent)
nodes = self.product_network.graph.successors(
self.product_network.positions[self])
return ap.AgentList(
self.model,
[ap.AgentIter(self.model, node).to_list()[0] for node in nodes])
def a_predecessors(self):
# find predecessors of a product, return in AgentList (ProductAgent)
nodes = self.product_network.graph.predecessors(
self.product_network.positions[self])
return ap.AgentList(
self.model,
[ap.AgentIter(self.model, node).to_list()[0] for node in nodes])