-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
enhancementImprovements to existing features or performance.Improvements to existing features or performance.
Description
when selecting agent from agentsDF the return comes as agent to value mapping
w = model.agents["wealth"]
for k,v in w.items():
print(k)
Code to reproduce
class ExampleAgentSet1(AgentSetPolars):
def __init__(self, model: ModelDF):
super().__init__(model)
self["wealth"] = pl.Series("wealth", [1, 2, 3, 4])
self["age"] = pl.Series("age", [10, 20, 30, 40])
def add_wealth(self, amount: int) -> None:
self["wealth"] += amount
def step(self) -> None:
self.add_wealth(1)
class ExampleAgentSet2(AgentSetPolars):
def __init__(self, model: ModelDF):
super().__init__(model)
self["wealth"] = pl.Series("wealth", [10, 20, 30, 40])
self["age"] = pl.Series("age", [11, 22, 33, 44])
def add_wealth(self, amount: int) -> None:
self["wealth"] += amount
def step(self) -> None:
self.add_wealth(2)
class ExampleAgentSet3(AgentSetPolars):
def __init__(self, model: ModelDF):
super().__init__(model)
self["age"] = pl.Series("age", [1, 2, 3, 4])
self["wealth"] = pl.Series("wealth", [1, 2, 3, 4])
def age_agents(self, amount: int) -> None:
self["age"] += amount
def step(self) -> None:
self.age_agents(1)
class ExampleModel(ModelDF):
def __init__(self, agents: AgentsDF):
super().__init__()
self.agents = agents
def step(self):
self.agents.do("step")
@pytest.fixture
def fix1_AgentSetPolars() -> ExampleAgentSet1:
return ExampleAgentSet1(ModelDF())
@pytest.fixture
def fix2_AgentSetPolars() -> ExampleAgentSet2:
return ExampleAgentSet2(ModelDF())
@pytest.fixture
def fix3_AgentSetPolars() -> ExampleAgentSet3:
return ExampleAgentSet3(ModelDF())
@pytest.fixture
def fix_AgentsDF(fix1_AgentSetPolars: ExampleAgentSet1,fix2_AgentSetPolars : ExampleAgentSet2, fix3_AgentSetPolars: ExampleAgentSet3) -> AgentsDF:
model = ModelDF()
agents = AgentsDF(model)
agents.add([fix1_AgentSetPolars,fix2_AgentSetPolars,fix3_AgentSetPolars])
return agents
@pytest.fixture
def fix1_model(fix_AgentsDF: AgentsDF) -> ExampleModel:
return ExampleModel(fix_AgentsDF)
model = fix1_model
w = model.agents["wealth"]
for k,v in w.items():
print(k)
please let me know if I am setting it up wrong
Metadata
Metadata
Assignees
Labels
enhancementImprovements to existing features or performance.Improvements to existing features or performance.