[Enhancement] : agents selection in AgentsDf would be better if it returns agent_idx/name as key
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 40/100
Línea de trabajo
Comienza en el punto de entrada de selección de AgentsDF utilizado por model.agents["wealth"] e inspecciona cómo se asignan los objetos AgentSetPolars proporcionados durante la selección. Ejecuta la reproducción para confirmar las claves actuales; después, define las claves agent_idx/name esperadas y añade cobertura para la asignación devuelta antes de verificar el comportamiento del ejemplo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 43
- Forks
- 20
- Merge medio
- 1 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mesa/mesa-frames
-
Mesa-frames 0.2.0Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
mesa/mesa-frames#186 · 10 comentarios ·
-
feature triage
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
mesa/mesa-frames#177 · 1 comentario ·
-
[Bug]: Solving polars Deprecation warnings for `is_in`Posiblemente ocupada @adamamer20 la tomó hace 423 días. Abiertobug good first issue maintenance Sprints!
mesa/mesa-frames#174 · 2 comentarios · 1 asignado ·
-
[Feature]: Easy seed accessor across the entire codebaseQuizá libre de nuevo @falloficaruss la tomó hace 321 días y no hay ningún pull request abierto. Abiertofeature good first issue Sprints!
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
mesa/mesa-frames#159 · 3 comentarios ·
-
feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
mesa/mesa-frames#149 · 3 comentarios ·
Todos los issues de mesa/mesa-frames
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
pydot/pydot#601 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
letsencrypt/cp-cps#361 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
CI: startup_failure because callers grant fewer permissions than ledger-app-workflows@v1 declaresPosiblemente ocupada @maykonmichel la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
LedgerHQ/app-boilerplate-rust#227 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
linuxmint/mintupdate#1107 ·