fix: migrate codebase to Mesa 4.x API (resolves mesa.space removal)#153
fix: migrate codebase to Mesa 4.x API (resolves mesa.space removal)#153abhinavk0220 wants to merge 6 commits intomesa:mainfrom
Conversation
…rely, breaking the full test suite.This commit migrates all affected files to the new APIs.Changes:- Replace MultiGrid/SingleGrid imports with OrthogonalMooreGrid from mesa.discrete_space- Replace old ContinuousSpace(x_max, y_max) with new dimensions-based API- Fix agent placement to use cell-based API (agent.cell = grid._cells[pos])- Fix neighbor lookup using get_neighborhood + coordinate set matching- Fix model.steps -> model.step (renamed in Mesa 4.x)- Remove seed= kwarg from Model.__init__ calls (mesa_signals compat fix)- Fix record_model.py self.steps -> self.stepAll 203 tests now passing.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…ools.py to use Mesa 4.x cell-based API- Replace place_agent() with agent.cell = grid._cells[pos]- Fix ContinuousSpace boundary/torus tests for new API behavior- Remove SingleGrid|MultiGrid references from inbuilt_tools.py- All 262 tests passing
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
…Schelling's (1971) classic segregation model using LLM agentsinstead of a fixed tolerance threshold.Each agent reasons in natural language about its neighborhood compositionand decides whether to stay ('happy') or relocate ('unhappy'). Thisproduces richer segregation dynamics than the classical threshold rule.Includes:- SchellingAgent extending LLMAgent with CoT reasoning- LLMSchellingModel on OrthogonalMooreGrid with torus=True- Segregation index metric tracked over time- SolaraViz with grid plot, happiness chart, and segregation index- README with comparison table vs classical Schelling modelReference: Schelling, T.C. (1971). Dynamic models of segregation.Journal of Mathematical Sociology, 1(2), 143-186.Related: mesa/mesa-llm#153
|
Hey this looks cool, |
|
I'm not fully up to date with the latest mesa 4.x changes... @wang-boyu what do you think about this ? |
|
Hey Jay! To test against Mesa 4.x, install Mesa directly from Then install mesa-llm dependencies: Then run the test suite: The key Mesa 4.x changes that affect mesa-llm are:
Happy to help if you run into issues! 🙂 |
|
Hi Colin! Happy to provide more context for wang-boyu's review. The key Mesa 4.x breaking changes this PR addresses:
All 203 tests passing after migration. Happy to answer any |
Closes #152
Summary
Mesa 4.x removed
mesa.spaceentirely. This PR migrates the full codebase to the new Mesa 4.x APIs so that mesa-llm works with the current version of Mesa.Changes
MultiGrid/SingleGridwithOrthogonalMooreGridfrommesa.discrete_spaceContinuousSpace(x_max, y_max)with newdimensions-based APIagent.cell = grid._cells[pos])get_neighborhood()+ coordinate set matchingmodel.steps→model.step(renamed in Mesa 4.x)Model.__init__(seed=...)kwarg incompatibility withmesa_signalsTesting
All 203 tests passing after migration:
Notes
Tested against Mesa 4.x dev installed from source.