Mesa 3.1.4__tar.gz → 3.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Mesa might be problematic. Click here for more details.

Files changed (192) hide show
  1. {mesa-3.1.4 → mesa-3.1.5}/CONTRIBUTING.md +57 -1
  2. {mesa-3.1.4 → mesa-3.1.5}/HISTORY.md +18 -1
  3. {mesa-3.1.4 → mesa-3.1.5}/PKG-INFO +1 -1
  4. mesa-3.1.5/docs/getting_started.md +54 -0
  5. mesa-3.1.5/docs/images/wolf_sheep.png +0 -0
  6. {mesa-3.1.4 → mesa-3.1.5}/docs/index.md +3 -1
  7. mesa-3.1.4/docs/getting_started.md → mesa-3.1.5/docs/overview.md +92 -60
  8. {mesa-3.1.4 → mesa-3.1.5}/mesa/__init__.py +1 -1
  9. {mesa-3.1.4 → mesa-3.1.5}/mesa/batchrunner.py +6 -3
  10. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/README.md +9 -4
  11. mesa-3.1.4/docs/_static/switcher.json +0 -12
  12. mesa-3.1.4/docs/images/tutorial/br_ginis.png +0 -0
  13. mesa-3.1.4/docs/images/tutorial/dc_endwealth.png +0 -0
  14. mesa-3.1.4/docs/images/tutorial/dc_gini.png +0 -0
  15. mesa-3.1.4/docs/images/tutorial/dc_oneagent.png +0 -0
  16. mesa-3.1.4/docs/images/tutorial/first_hist.png +0 -0
  17. mesa-3.1.4/docs/images/tutorial/multirun_hist.png +0 -0
  18. mesa-3.1.4/docs/images/tutorial/numpy_grid.png +0 -0
  19. mesa-3.1.4/docs/images/tutorial/viz_chart.png +0 -0
  20. mesa-3.1.4/docs/images/tutorial/viz_empty.png +0 -0
  21. mesa-3.1.4/docs/images/tutorial/viz_greycircles.png +0 -0
  22. mesa-3.1.4/docs/images/tutorial/viz_histogram.png +0 -0
  23. mesa-3.1.4/docs/images/tutorial/viz_redcircles.png +0 -0
  24. mesa-3.1.4/docs/images/wolf_sheep.png +0 -0
  25. mesa-3.1.4/docs/tutorials/files/viz_chart.png +0 -0
  26. mesa-3.1.4/docs/tutorials/files/viz_empty.png +0 -0
  27. mesa-3.1.4/docs/tutorials/files/viz_greycircles.png +0 -0
  28. mesa-3.1.4/docs/tutorials/files/viz_histogram.png +0 -0
  29. mesa-3.1.4/docs/tutorials/files/viz_redcircles.png +0 -0
  30. mesa-3.1.4/docs/tutorials/files/viz_slider.png +0 -0
  31. {mesa-3.1.4 → mesa-3.1.5}/.codespellignore +0 -0
  32. {mesa-3.1.4 → mesa-3.1.5}/.coveragerc +0 -0
  33. {mesa-3.1.4 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  34. {mesa-3.1.4 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  35. {mesa-3.1.4 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  36. {mesa-3.1.4 → mesa-3.1.5}/.github/PULL_REQUEST_TEMPLATE/bug.md +0 -0
  37. {mesa-3.1.4 → mesa-3.1.5}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
  38. {mesa-3.1.4 → mesa-3.1.5}/.github/dependabot.yml +0 -0
  39. {mesa-3.1.4 → mesa-3.1.5}/.github/pull_request_template.md +0 -0
  40. {mesa-3.1.4 → mesa-3.1.5}/.github/release.yml +0 -0
  41. {mesa-3.1.4 → mesa-3.1.5}/.github/workflows/benchmarks.yml +0 -0
  42. {mesa-3.1.4 → mesa-3.1.5}/.github/workflows/build_lint.yml +0 -0
  43. {mesa-3.1.4 → mesa-3.1.5}/.github/workflows/release.yml +0 -0
  44. {mesa-3.1.4 → mesa-3.1.5}/.gitignore +0 -0
  45. {mesa-3.1.4 → mesa-3.1.5}/.pre-commit-config.yaml +0 -0
  46. {mesa-3.1.4 → mesa-3.1.5}/.readthedocs.yml +0 -0
  47. {mesa-3.1.4 → mesa-3.1.5}/CITATION.bib +0 -0
  48. {mesa-3.1.4 → mesa-3.1.5}/CODE_OF_CONDUCT.md +0 -0
  49. {mesa-3.1.4 → mesa-3.1.5}/Dockerfile +0 -0
  50. {mesa-3.1.4 → mesa-3.1.5}/LICENSE +0 -0
  51. {mesa-3.1.4 → mesa-3.1.5}/NOTICE +0 -0
  52. {mesa-3.1.4 → mesa-3.1.5}/README.md +0 -0
  53. {mesa-3.1.4 → mesa-3.1.5}/benchmarks/compare_timings.py +0 -0
  54. {mesa-3.1.4 → mesa-3.1.5}/benchmarks/configurations.py +0 -0
  55. {mesa-3.1.4 → mesa-3.1.5}/benchmarks/global_benchmark.py +0 -0
  56. {mesa-3.1.4 → mesa-3.1.5}/binder/environment.yml +0 -0
  57. {mesa-3.1.4 → mesa-3.1.5}/codecov.yaml +0 -0
  58. {mesa-3.1.4 → mesa-3.1.5}/docker-compose.yml +0 -0
  59. {mesa-3.1.4 → mesa-3.1.5}/docs/Makefile +0 -0
  60. {mesa-3.1.4 → mesa-3.1.5}/docs/README.md +0 -0
  61. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/agent.md +0 -0
  62. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/api_main.md +0 -0
  63. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/batchrunner.md +0 -0
  64. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/datacollection.md +0 -0
  65. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/experimental.md +0 -0
  66. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/mesa_logging.md +0 -0
  67. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/model.md +0 -0
  68. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/space.md +0 -0
  69. {mesa-3.1.4 → mesa-3.1.5}/docs/apis/visualization.md +0 -0
  70. {mesa-3.1.4 → mesa-3.1.5}/docs/best-practices.md +0 -0
  71. {mesa-3.1.4 → mesa-3.1.5}/docs/conf.py +0 -0
  72. {mesa-3.1.4 → mesa-3.1.5}/docs/example_template.txt +0 -0
  73. {mesa-3.1.4 → mesa-3.1.5}/docs/examples_overview_template.txt +0 -0
  74. {mesa-3.1.4 → mesa-3.1.5}/docs/images/mesa_logo.ico +0 -0
  75. {mesa-3.1.4 → mesa-3.1.5}/docs/images/mesa_logo.png +0 -0
  76. {mesa-3.1.4 → mesa-3.1.5}/docs/make.bat +0 -0
  77. {mesa-3.1.4 → mesa-3.1.5}/docs/mesa.md +0 -0
  78. {mesa-3.1.4 → mesa-3.1.5}/docs/mesa_extension.md +0 -0
  79. {mesa-3.1.4 → mesa-3.1.5}/docs/migration_guide.md +0 -0
  80. {mesa-3.1.4 → mesa-3.1.5}/docs/tutorials/MoneyModel.py +0 -0
  81. {mesa-3.1.4 → mesa-3.1.5}/docs/tutorials/intro_tutorial.ipynb +0 -0
  82. {mesa-3.1.4 → mesa-3.1.5}/docs/tutorials/visualization_tutorial.ipynb +0 -0
  83. {mesa-3.1.4 → mesa-3.1.5}/maintenance/fetch_unlabeled_prs.py +0 -0
  84. {mesa-3.1.4 → mesa-3.1.5}/mesa/agent.py +0 -0
  85. {mesa-3.1.4 → mesa-3.1.5}/mesa/datacollection.py +0 -0
  86. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/__init__.py +0 -0
  87. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/__init__.py +0 -0
  88. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +0 -0
  89. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/Readme.md +0 -0
  90. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/__init__.py +0 -0
  91. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/agents.py +0 -0
  92. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/app.py +0 -0
  93. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/model.py +0 -0
  94. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/Readme.md +0 -0
  95. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/__init__.py +0 -0
  96. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/agents.py +0 -0
  97. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/analysis.ipynb +0 -0
  98. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/app.py +0 -0
  99. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/model.py +0 -0
  100. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/Readme.md +0 -0
  101. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/__init__.py +0 -0
  102. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/agents.py +0 -0
  103. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/app.py +0 -0
  104. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/model.py +0 -0
  105. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +0 -0
  106. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/tests.py +0 -0
  107. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/Readme.md +0 -0
  108. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/__init__.py +0 -0
  109. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/agents.py +0 -0
  110. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/app.py +0 -0
  111. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/model.py +0 -0
  112. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/__init__.py +0 -0
  113. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/Readme.md +0 -0
  114. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/__init__.py +0 -0
  115. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/agents.py +0 -0
  116. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/app.py +0 -0
  117. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/model.py +0 -0
  118. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/Readme.md +0 -0
  119. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
  120. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/agents.py +0 -0
  121. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/app.py +0 -0
  122. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/model.py +0 -0
  123. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/st_app.py +0 -0
  124. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/Readme.md +0 -0
  125. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
  126. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/agents.py +0 -0
  127. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/app.py +0 -0
  128. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/model.py +0 -0
  129. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/st_app.py +0 -0
  130. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/schelling/Readme.md +0 -0
  131. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/schelling/__init__.py +0 -0
  132. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/schelling/agents.py +0 -0
  133. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/schelling/analysis.ipynb +0 -0
  134. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/schelling/app.py +0 -0
  135. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/schelling/model.py +0 -0
  136. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/Readme.md +0 -0
  137. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/__init__.py +0 -0
  138. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/agents.py +0 -0
  139. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/app.py +0 -0
  140. {mesa-3.1.4 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/model.py +0 -0
  141. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/__init__.py +0 -0
  142. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/__init__.py +0 -0
  143. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/cell.py +0 -0
  144. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/cell_agent.py +0 -0
  145. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/cell_collection.py +0 -0
  146. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/discrete_space.py +0 -0
  147. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/grid.py +0 -0
  148. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/network.py +0 -0
  149. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/property_layer.py +0 -0
  150. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/cell_space/voronoi.py +0 -0
  151. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/continuous_space/__init__.py +0 -0
  152. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/continuous_space/continuous_space.py +0 -0
  153. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/continuous_space/continuous_space_agents.py +0 -0
  154. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/devs/__init__.py +0 -0
  155. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/devs/eventlist.py +0 -0
  156. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/devs/simulator.py +0 -0
  157. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/mesa_signals/__init__.py +0 -0
  158. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/mesa_signals/mesa_signal.py +0 -0
  159. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/mesa_signals/observable_collections.py +0 -0
  160. {mesa-3.1.4 → mesa-3.1.5}/mesa/experimental/mesa_signals/signals_util.py +0 -0
  161. {mesa-3.1.4 → mesa-3.1.5}/mesa/mesa_logging.py +0 -0
  162. {mesa-3.1.4 → mesa-3.1.5}/mesa/model.py +0 -0
  163. {mesa-3.1.4 → mesa-3.1.5}/mesa/space.py +0 -0
  164. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/__init__.py +0 -0
  165. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/components/__init__.py +0 -0
  166. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/components/altair_components.py +0 -0
  167. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/components/matplotlib_components.py +0 -0
  168. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/mpl_space_drawing.py +0 -0
  169. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/solara_viz.py +0 -0
  170. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/user_param.py +0 -0
  171. {mesa-3.1.4 → mesa-3.1.5}/mesa/visualization/utils.py +0 -0
  172. {mesa-3.1.4 → mesa-3.1.5}/mypy.ini +0 -0
  173. {mesa-3.1.4 → mesa-3.1.5}/pyproject.toml +0 -0
  174. {mesa-3.1.4 → mesa-3.1.5}/tests/__init__.py +0 -0
  175. {mesa-3.1.4 → mesa-3.1.5}/tests/read_requirements.py +0 -0
  176. {mesa-3.1.4 → mesa-3.1.5}/tests/test_agent.py +0 -0
  177. {mesa-3.1.4 → mesa-3.1.5}/tests/test_batch_run.py +0 -0
  178. {mesa-3.1.4 → mesa-3.1.5}/tests/test_cell_space.py +0 -0
  179. {mesa-3.1.4 → mesa-3.1.5}/tests/test_components_matplotlib.py +0 -0
  180. {mesa-3.1.4 → mesa-3.1.5}/tests/test_continuous_space.py +0 -0
  181. {mesa-3.1.4 → mesa-3.1.5}/tests/test_datacollector.py +0 -0
  182. {mesa-3.1.4 → mesa-3.1.5}/tests/test_devs.py +0 -0
  183. {mesa-3.1.4 → mesa-3.1.5}/tests/test_end_to_end_viz.sh +0 -0
  184. {mesa-3.1.4 → mesa-3.1.5}/tests/test_examples.py +0 -0
  185. {mesa-3.1.4 → mesa-3.1.5}/tests/test_grid.py +0 -0
  186. {mesa-3.1.4 → mesa-3.1.5}/tests/test_import_namespace.py +0 -0
  187. {mesa-3.1.4 → mesa-3.1.5}/tests/test_lifespan.py +0 -0
  188. {mesa-3.1.4 → mesa-3.1.5}/tests/test_mesa_logging.py +0 -0
  189. {mesa-3.1.4 → mesa-3.1.5}/tests/test_mesa_signals.py +0 -0
  190. {mesa-3.1.4 → mesa-3.1.5}/tests/test_model.py +0 -0
  191. {mesa-3.1.4 → mesa-3.1.5}/tests/test_solara_viz.py +0 -0
  192. {mesa-3.1.4 → mesa-3.1.5}/tests/test_space.py +0 -0
@@ -119,7 +119,63 @@ ruff .
119
119
 
120
120
  The license of this project is located in [LICENSE]. By submitting a contribution to this project, you are agreeing that your contribution will be released under the terms of this license.
121
121
 
122
- ## Maintainers
122
+ ## Roles in Mesa
123
+ Mesa has several roles to help structure our collaboration and recognize great work. They also form a progression path for community members to that want to take on increasing responsibility in the project. Since we're all volunteers, everyone contributes what they can when they can - there are no minimum time commitments. Also, the best ideas and contributions can come from anyone, these roles are just a way to coordinate our efforts.
124
+
125
+ Feel free to reach out to us anytime to discuss your interests and ambitions in the project. We're always happy to chat about how you can grow your involvement in Mesa!
126
+
127
+ ### Contributor
128
+ Contributors help improve Mesa through:
129
+ - Code contributions
130
+ - Documentation improvements
131
+ - Bug reports and fixes
132
+ - Example models
133
+ - Tutorial improvements
134
+ - Answering questions
135
+ - Participating in discussions
136
+ - Testing pre-releases
137
+ - Sharing Mesa with others
138
+
139
+ Everyone can contribute what they can, when they can. No contribution is too small! Contributors who have a PR successfully merged receive the "Contributor" label on GitHub.
140
+
141
+ ### Collaborator
142
+ When contributors consistently demonstrate technical skills and community mindset through their contributions, they may be invited to become collaborators. Collaborators help coordinate by:
143
+
144
+ - Reviewing pull requests
145
+ - Triaging issues and discussions
146
+ - Coordinating between contributors
147
+ - Leading specific areas of development
148
+ - Helping new contributors
149
+ - Participating in project planning
150
+ - Building community
151
+
152
+ The collaborator role recognizes people who help Mesa grow through both their technical contributions and community involvement. Collaborators receive GitHub triage permissions and the "Collaborator" label.
153
+
154
+ ### Maintainer
155
+ Maintainers help guide Mesa's overall development while ensuring the project remains sustainable and welcoming. They focus on:
156
+ - Project vision and roadmap
157
+ - Major architectural decisions
158
+ - Release management
159
+ - Community governance
160
+ - Mentoring collaborators
161
+ - Setting community standards
162
+ - Long-term sustainability
163
+
164
+ Maintainers are selected based on their technical expertise, project understanding, and community leadership. Maintainers receive full repository permissions and the "Member" label.
165
+
166
+ ### Special Roles
167
+ In some cases, special roles may be created for specific purposes, such as leading particular initiatives or components within Mesa. These roles are created as needed based on project requirements and may come with specific permissions and labels.
168
+
169
+ All roles are expected to:
170
+ - Follow Mesa's code of conduct
171
+ - Communicate respectfully
172
+ - Work collaboratively
173
+ - Help maintain a welcoming community
174
+ - Make decisions transparently
175
+
176
+ Mesa grows through good ideas and contributions. We're all volunteers working together to make Mesa better. Don't hesitate to reach out to any maintainer to discuss your interests and potential growth within the project!
177
+
178
+ ## Maintainers' notes
123
179
  Some notes useful for Mesa maintainers.
124
180
 
125
181
  ### Releases
@@ -1,11 +1,28 @@
1
1
  ---
2
2
  title: Release History
3
3
  ---
4
+ # 3.1.5 (2025-03-26)
5
+ ## Highlights
6
+ Mesa 3.1.5 is a maintenance release focused on improving documentation and cleaning up our resources. This update includes no breaking changes and is compatible with previous 3.1.x releases.
7
+
8
+ The documentation improvements include enhanced explanations for batch run parallel processing, a significantly expanded overview section covering spaces, property layers and time advancement methods with practical code examples, and a clearer installation guide detailing what the optional `[rec]` dependencies provide. We've also improved our examples documentation to better distinguish between core and user-contributed examples, and added a new "Roles" section to the contributing guide that outlines the project's community structure and progression paths.
9
+
10
+ On the maintenance side, we've cleaned up unused images and compressed existing ones, reducing the repository size by over 2MB and distribution size from 3.2MB to 1.2MB.
11
+
12
+ ## What's Changed
13
+ ### 📜 Documentation improvements
14
+ * docs: Split off the overview page, extend with spaces/activation by @EwoutH in https://github.com/projectmesa/mesa/pull/2673
15
+ * docs: Add Roles section to CONTRIBUTING.md by @EwoutH in https://github.com/projectmesa/mesa/pull/2694
16
+ * [JOSS] Docs: Clarify difference between core and user examples by @EwoutH in https://github.com/projectmesa/mesa/pull/2706
17
+ * [JOSS] docs: Improve batch_run documentation for parallel processing by @EwoutH in https://github.com/projectmesa/mesa/pull/2707
18
+ * Clean-up old images, compress wolf-sheep image, remove version switch artifact by @EwoutH in https://github.com/projectmesa/mesa/pull/2717
19
+
20
+ **Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.1.4...v3.1.5
21
+
4
22
  # 3.1.4 (2025-02-09)
5
23
  ## Highlights
6
24
  This release contains various improvements and bugfixes to the matplotlib-based visualization of spaces. Hexgrids are now fully supported, including property layers. In making this possible, various minor bugs were encountered and also fixed. In addition to the visualization improvements, there are various minor convenience improvements to the docs.
7
25
 
8
-
9
26
  ## What's Changed
10
27
  ### 🛠 Enhancements made
11
28
  * Fixed hex-space draw function to avoid overlaps by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2609
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Mesa
3
- Version: 3.1.4
3
+ Version: 3.1.5
4
4
  Summary: Agent-based modeling (ABM) in Python
5
5
  Project-URL: homepage, https://github.com/projectmesa/mesa
6
6
  Project-URL: repository, https://github.com/projectmesa/mesa
@@ -0,0 +1,54 @@
1
+ # Getting started
2
+ Mesa is a modular framework for building, analyzing and visualizing agent-based models.
3
+
4
+ **Agent-based models** are computer simulations involving multiple entities (the agents) acting and interacting with one another based on their programmed behavior. Agents can be used to represent living cells, animals, individual humans, even entire organizations or abstract entities. Sometimes, we may have an understanding of how the individual components of a system behave, and want to see what system-level behaviors and effects emerge from their interaction. Other times, we may have a good idea of how the system overall behaves, and want to figure out what individual behaviors explain it. Or we may want to see how to get agents to cooperate or compete most effectively. Or we may just want to build a cool toy with colorful little dots moving around.
5
+
6
+ ## Tutorials
7
+ If you want to get a quick start on how to build agent based models with MESA, check the overview and tutorials:
8
+
9
+ - [Overview of the MESA library](overview): Learn about the core concepts and components of Mesa.
10
+ - [Introductory Tutorial](tutorials/intro_tutorial): Learn how to create your first Mesa model.
11
+ - [Visualization Tutorial](tutorials/visualization_tutorial): Learn how to create interactive visualizations for your models.
12
+
13
+ ## Examples
14
+ Mesa ships with a collection of example models. These are classic ABMs, so if you are familiar with ABMs and want to get a quick sense of how MESA works, these examples are great place to start. You can find them [here](examples).
15
+
16
+ ## Further resources
17
+ To further explore Mesa and its features, we have the following resources available:
18
+
19
+ ### Best practices
20
+ - [Mesa best practices](best-practices): an overview of tips and guidelines for using MESA.
21
+
22
+ ### API documentation
23
+ - [Mesa API reference](apis): Detailed documentation of Mesa's classes and functions.
24
+
25
+ ### Repository of models built using MESA
26
+ - [Mesa Examples repository](https://github.com/projectmesa/mesa-examples): A collection of example models demonstrating various Mesa features and modeling techniques.
27
+
28
+ ### Migration guide
29
+ - [Mesa 3.0 Migration guide](migration_guide): If you're upgrading from an earlier version of Mesa, this guide will help you navigate the changes in Mesa 3.0.
30
+
31
+ ### Source Ccode and development
32
+ - [Mesa GitHub repository](https://github.com/projectmesa/mesa): Access the full source code of Mesa, contribute to its development, or report issues.
33
+ - [Mesa release notes](https://github.com/projectmesa/mesa/releases): View the detailed changelog of Mesa, including all past releases and their features.
34
+
35
+ ### Community and support
36
+ - [Mesa GitHub Discussions](https://github.com/projectmesa/mesa/discussions): Join discussions, ask questions, and connect with other Mesa users.
37
+ - [Matrix Chat](https://matrix.to/#/#project-mesa:matrix.org): Real-time chat for quick questions and community interaction.
38
+
39
+ Enjoy modelling with Mesa, and feel free to reach out!
40
+
41
+
42
+
43
+
44
+
45
+ ```{toctree}
46
+ :hidden: true
47
+ :maxdepth: 7
48
+
49
+ tutorials/intro_tutorial
50
+ tutorials/visualization_tutorial
51
+ Best Practices <best-practices>
52
+
53
+
54
+ ```
Binary file
@@ -43,10 +43,11 @@ To also install our recommended dependencies:
43
43
  pip install -U mesa[rec]
44
44
  ```
45
45
 
46
+ The `[rec]` option installs additional recommended dependencies needed for visualization, plotting, and network modeling capabilities.
47
+
46
48
  On a Mac, this command might cause an error stating `zsh: no matches found: mesa[all]`.
47
49
  In that case, change the command to `pip install -U "mesa[rec]"`.
48
50
 
49
-
50
51
  ### Resources
51
52
 
52
53
  For help getting started with Mesa, check out these resources:
@@ -73,6 +74,7 @@ The original Mesa conference paper is [available here](http://conference.scipy.o
73
74
  :maxdepth: 7
74
75
 
75
76
  Getting started <getting_started>
77
+ Overview <overview>
76
78
  Examples <examples>
77
79
  Migration guide <migration_guide>
78
80
  API Documentation <apis/api_main>
@@ -1,19 +1,3 @@
1
- # Getting started
2
- Mesa is a modular framework for building, analyzing and visualizing agent-based models.
3
-
4
- **Agent-based models** are computer simulations involving multiple entities (the agents) acting and interacting with one another based on their programmed behavior. Agents can be used to represent living cells, animals, individual humans, even entire organizations or abstract entities. Sometimes, we may have an understanding of how the individual components of a system behave, and want to see what system-level behaviors and effects emerge from their interaction. Other times, we may have a good idea of how the system overall behaves, and want to figure out what individual behaviors explain it. Or we may want to see how to get agents to cooperate or compete most effectively. Or we may just want to build a cool toy with colorful little dots moving around.
5
-
6
-
7
- ## Tutorials
8
- If you want to get a quick start on how to build agent based models with MESA, check the tutorials:
9
-
10
- - [Introductory Tutorial](tutorials/intro_tutorial): Learn how to create your first Mesa model.
11
- - [Visualization Tutorial](tutorials/visualization_tutorial): Learn how to create interactive visualizations for your models.
12
-
13
- ## Examples
14
- Mesa ships with a collection of example models. These are classic ABMs, so if you are familiar with ABMs and want to get a quick sense of how MESA works, these examples are great place to start. You can find them [here](examples).
15
-
16
-
17
1
  ## Overview of the MESA library
18
2
 
19
3
  Mesa is modular, meaning that its modeling, analysis and visualization components are kept separate but intended to work together. The modules are grouped into three categories:
@@ -59,15 +43,102 @@ class MyModel(mesa.Model):
59
43
  self.agents.shuffle_do("step")
60
44
  ```
61
45
 
62
- If you instantiate a model and run it for one step, like so:
46
+ ### Spaces in Mesa
47
+
48
+ Mesa provides several types of spaces where agents can exist and interact:
49
+
50
+ #### Discrete Spaces
51
+ Mesa implements discrete spaces using a doubly-linked structure where each cell maintains connections to its neighbors. Available variants include:
52
+
53
+ 1. **Grid-based Spaces:**
54
+ ```python
55
+ # Create a Von Neumann grid (4 neighbors per cell)
56
+ grid = mesa.space.OrthogonalVonNeumannGrid((width, height), torus=False)
57
+
58
+ # Create a Moore grid (8 neighbors per cell)
59
+ grid = mesa.space.OrthogonalMooreGrid((width, height), torus=True)
60
+
61
+ # Create a hexagonal grid
62
+ grid = mesa.space.HexGrid((width, height), torus=False)
63
+ ```
64
+
65
+ 2. **Network Space:**
66
+ ```python
67
+ # Create a network-based space
68
+ network = mesa.space.NetworkGrid(network)
69
+ ```
70
+
71
+ 3. **Voronoi Space:**
72
+ ```python
73
+ # Create an irregular tessellation
74
+ mesh = mesa.space.VoronoiMesh(points)
75
+ ```
76
+
77
+ #### Property Layers
78
+ Discrete spaces support PropertyLayers - efficient numpy-based arrays for storing cell-level properties:
79
+
80
+ ```python
81
+ # Create and use a property layer
82
+ grid.create_property_layer("elevation", default_value=10)
83
+ high_ground = grid.elevation.select_cells(lambda x: x > 50)
84
+ ```
85
+
86
+ #### Continuous Space
87
+ For models requiring continuous movement:
63
88
 
64
89
  ```python
65
- model = MyModel(5)
66
- model.step()
90
+ # Create a continuous space
91
+ space = mesa.space.ContinuousSpace(x_max, y_max, torus=True)
92
+
93
+ # Move an agent to specific coordinates
94
+ space.move_agent(agent, (new_x, new_y))
95
+ ```
96
+
97
+ ### Time Advancement and Agent Activation
98
+
99
+ Mesa supports multiple approaches to advancing time and activating agents:
100
+
101
+ #### Basic Time Steps
102
+ The simplest approach runs the model for a specified number of steps:
103
+
104
+ ```python
105
+ model = MyModel(seed=42)
106
+ for _ in range(100):
107
+ model.step()
67
108
  ```
68
109
 
69
- You should see agents 1-5, activated in random order. See the [tutorial](tutorials/intro_tutorial) or API documentation for more detail on how to add model functionality.
110
+ #### Agent Activation Patterns
111
+ Mesa 3.0 provides flexible agent activation through the AgentSet API:
70
112
 
113
+ ```python
114
+ # Sequential activation
115
+ model.agents.do("step")
116
+
117
+ # Random activation
118
+ model.agents.shuffle_do("step")
119
+
120
+ # Multi-stage activation
121
+ for stage in ["move", "eat", "reproduce"]:
122
+ model.agents.do(stage)
123
+
124
+ # Activation by agent type
125
+ for klass in model.agent_types:
126
+ model.agents_by_type[klass].do("step")
127
+ ```
128
+
129
+ #### Event-Based Scheduling
130
+ Mesa also supports event-based time progression (experimental):
131
+
132
+ ```python
133
+ # Pure event-based
134
+ simulator = mesa.experimental.DiscreteEventSimulator()
135
+ model = MyModel(seed=42, simulator=simulator)
136
+ simulator.schedule_event_relative(some_function, 3.1415)
137
+
138
+ # Hybrid time-step and event scheduling
139
+ model = MyModel(seed=42, simulator=mesa.experimental.ABMSimulator())
140
+ model.simulator.schedule_event_next_tick(some_function)
141
+ ```
71
142
 
72
143
  ### AgentSet and model.agents
73
144
  Mesa 3.0 makes `model.agents` and the AgentSet class central in managing and activating agents.
@@ -169,6 +240,7 @@ results = mesa.batch_run(
169
240
  iterations=5,
170
241
  max_steps=100,
171
242
  data_collection_period=1,
243
+ number_processes=1 # Change to use multiple CPU cores for parallel execution
172
244
  )
173
245
  ```
174
246
 
@@ -228,43 +300,3 @@ This will create an interactive visualization of your model, including:
228
300
  - A slider to adjust the number of agents
229
301
 
230
302
  You can also create custom visualization components using Matplotlib. For more advanced usage and customization options, please refer to the [visualization tutorial](tutorials/visualization_tutorial).
231
-
232
- ## Further resources
233
- To further explore Mesa and its features, we have the following resources available:
234
-
235
- ### Best practices
236
- - [Mesa best practices](best-practices): an overview of tips and guidelines for using MESA.
237
-
238
- ### API documentation
239
- - [Mesa API reference](apis): Detailed documentation of Mesa's classes and functions.
240
-
241
- ### Repository of models built using MESA
242
- - [Mesa Examples repository](https://github.com/projectmesa/mesa-examples): A collection of example models demonstrating various Mesa features and modeling techniques.
243
-
244
- ### Migration guide
245
- - [Mesa 3.0 Migration guide](migration_guide): If you're upgrading from an earlier version of Mesa, this guide will help you navigate the changes in Mesa 3.0.
246
-
247
- ### Source Ccode and development
248
- - [Mesa GitHub repository](https://github.com/projectmesa/mesa): Access the full source code of Mesa, contribute to its development, or report issues.
249
- - [Mesa release notes](https://github.com/projectmesa/mesa/releases): View the detailed changelog of Mesa, including all past releases and their features.
250
-
251
- ### Community and support
252
- - [Mesa GitHub Discussions](https://github.com/projectmesa/mesa/discussions): Join discussions, ask questions, and connect with other Mesa users.
253
- - [Matrix Chat](https://matrix.to/#/#project-mesa:matrix.org): Real-time chat for quick questions and community interaction.
254
-
255
- Enjoy modelling with Mesa, and feel free to reach out!
256
-
257
-
258
-
259
-
260
-
261
- ```{toctree}
262
- :hidden: true
263
- :maxdepth: 7
264
-
265
- tutorials/intro_tutorial
266
- tutorials/visualization_tutorial
267
- Best Practices <best-practices>
268
-
269
-
270
- ```
@@ -22,7 +22,7 @@ __all__ = [
22
22
  ]
23
23
 
24
24
  __title__ = "mesa"
25
- __version__ = "3.1.4"
25
+ __version__ = "3.1.5"
26
26
  __license__ = "Apache 2.0"
27
27
  _this_year = datetime.datetime.now(tz=datetime.UTC).date().year
28
28
  __copyright__ = f"Copyright {_this_year} Project Mesa Team"
@@ -3,7 +3,12 @@
3
3
  To take advantage of parallel execution of experiments, `batch_run` uses
4
4
  multiprocessing if ``number_processes`` is larger than 1. It is strongly advised
5
5
  to only run in parallel using a normal python file (so don't try to do it in a
6
- jupyter notebook). Moreover, best practice when using multiprocessing is to
6
+ jupyter notebook). This is because Jupyter notebooks have a different execution
7
+ model that can cause issues with Python's multiprocessing module, especially on
8
+ Windows. The main problems include the lack of a traditional __main__ entry
9
+ point, serialization issues, and potential deadlocks.
10
+
11
+ Moreover, best practice when using multiprocessing is to
7
12
  put the code inside an ``if __name__ == '__main__':`` code black as shown below::
8
13
 
9
14
  from mesa.batchrunner import batch_run
@@ -21,8 +26,6 @@ put the code inside an ``if __name__ == '__main__':`` code black as shown below:
21
26
  display_progress=True,
22
27
  )
23
28
 
24
-
25
-
26
29
  """
27
30
 
28
31
  import itertools
@@ -1,7 +1,12 @@
1
- # Mesa core examples
2
- These examples are a collection of classic agent based models built using Mesa. These core examples are maintained by the Mesa team and are intended to demonstrate the capabilities of Mesa.
1
+ # Mesa Core Examples
2
+ This repository contains a curated set of classic agent-based models implemented using Mesa. These core examples are maintained by the Mesa development team and serve as both demonstrations of Mesa's capabilities and starting points for your own models.
3
3
 
4
- More user examples and showcases can be found in the [mesa-examples](https://github.com/projectmesa/mesa-examples) repository.
4
+ ## Overview
5
+ The examples are categorized into two groups:
6
+ 1. **Basic Examples** - Simpler models that use only stable Mesa features; ideal for beginners
7
+ 2. **Advanced Examples** - More complex models that demonstrate additional concepts and may use some experimental features
8
+
9
+ > **Note:** Looking for more examples? Visit the [mesa-examples](https://github.com/projectmesa/mesa-examples) repository for user-contributed models and showcases.
5
10
 
6
11
  ## Basic Examples
7
12
  The basic examples are relatively simple and only use stable Mesa features. They are good starting points for learning how to use Mesa.
@@ -34,4 +39,4 @@ Grid-based demographic prisoner's dilemma model, demonstrating how simple rules
34
39
  This is Epstein & Axtell's Sugarscape model with Traders, a detailed description is in Chapter four of *Growing Artificial Societies: Social Science from the Bottom Up (1996)*. The model shows how emergent price equilibrium can happen via decentralized dynamics.
35
40
 
36
41
  ### [Wolf-Sheep Predation Model](examples/advanced/wolf_sheep)
37
- Implementation of an ecological model of predation and reproduction, based on the NetLogo [Wolf Sheep Predation](http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation) model.
42
+ Implementation of an ecological model of predation and reproduction, based on the NetLogo [Wolf Sheep Predation](http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation) model.
@@ -1,12 +0,0 @@
1
- [
2
- {
3
- "name": "Stable",
4
- "version": "stable",
5
- "url": "https://mesa.readthedocs.io/stable/"
6
- },
7
- {
8
- "name": "Latest",
9
- "version": "latest",
10
- "url": "https://mesa.readthedocs.io/latest/"
11
- }
12
- ]
Binary file
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes