Mesa 3.2.0__tar.gz → 3.3.0__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 (218) hide show
  1. mesa-3.3.0/.coderabbit.yaml +137 -0
  2. {mesa-3.2.0 → mesa-3.3.0}/.github/workflows/benchmarks.yml +3 -3
  3. mesa-3.3.0/.github/workflows/build_lint.yml +89 -0
  4. {mesa-3.2.0 → mesa-3.3.0}/.github/workflows/release.yml +1 -1
  5. {mesa-3.2.0 → mesa-3.3.0}/.pre-commit-config.yaml +2 -2
  6. {mesa-3.2.0 → mesa-3.3.0}/CONTRIBUTING.md +1 -1
  7. {mesa-3.2.0 → mesa-3.3.0}/HISTORY.md +64 -0
  8. {mesa-3.2.0 → mesa-3.3.0}/PKG-INFO +13 -4
  9. {mesa-3.2.0 → mesa-3.3.0}/README.md +3 -3
  10. mesa-3.3.0/benchmarks/README.md +99 -0
  11. mesa-3.3.0/docs/apis/visualization.md +130 -0
  12. {mesa-3.2.0 → mesa-3.3.0}/docs/getting_started.md +10 -6
  13. {mesa-3.2.0 → mesa-3.3.0}/docs/index.md +13 -0
  14. {mesa-3.2.0 → mesa-3.3.0}/docs/overview.md +8 -9
  15. {mesa-3.2.0 → mesa-3.3.0}/docs/tutorials/0_first_model.ipynb +2 -2
  16. {mesa-3.2.0 → mesa-3.3.0}/docs/tutorials/4_visualization_basic.ipynb +74 -12
  17. {mesa-3.2.0 → mesa-3.3.0}/docs/tutorials/5_visualization_dynamic_agents.ipynb +62 -15
  18. mesa-3.3.0/docs/tutorials/6_visualization_rendering_with_space_renderer.ipynb +572 -0
  19. mesa-3.3.0/docs/tutorials/7_visualization_propertylayer_visualization.ipynb +535 -0
  20. mesa-3.2.0/docs/tutorials/6_visualization_custom.ipynb → mesa-3.3.0/docs/tutorials/8_visualization_custom.ipynb +40 -3
  21. mesa-3.2.0/docs/tutorials/7_batch_run.ipynb → mesa-3.3.0/docs/tutorials/9_batch_run.ipynb +1 -1
  22. mesa-3.3.0/flake.lock +133 -0
  23. mesa-3.3.0/flake.nix +236 -0
  24. {mesa-3.2.0 → mesa-3.3.0}/mesa/__init__.py +1 -1
  25. {mesa-3.2.0 → mesa-3.3.0}/mesa/agent.py +3 -3
  26. {mesa-3.2.0 → mesa-3.3.0}/mesa/datacollection.py +1 -1
  27. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/epstein_civil_violence/app.py +11 -11
  28. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/pd_grid/app.py +10 -11
  29. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/sugarscape_g1mt/app.py +34 -16
  30. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/wolf_sheep/app.py +21 -18
  31. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boid_flockers/app.py +15 -11
  32. mesa-3.3.0/mesa/examples/basic/boltzmann_wealth_model/app.py +84 -0
  33. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/conways_game_of_life/app.py +13 -16
  34. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/schelling/Readme.md +2 -2
  35. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/schelling/agents.py +9 -3
  36. mesa-3.3.0/mesa/examples/basic/schelling/app.py +94 -0
  37. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/schelling/model.py +2 -0
  38. mesa-3.3.0/mesa/examples/basic/schelling/resources/blue_happy.png +0 -0
  39. mesa-3.3.0/mesa/examples/basic/schelling/resources/blue_unhappy.png +0 -0
  40. mesa-3.3.0/mesa/examples/basic/schelling/resources/orange_happy.png +0 -0
  41. mesa-3.3.0/mesa/examples/basic/schelling/resources/orange_unhappy.png +0 -0
  42. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/virus_on_network/app.py +31 -14
  43. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/continuous_space/continuous_space.py +1 -1
  44. {mesa-3.2.0 → mesa-3.3.0}/mesa/space.py +4 -1
  45. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/__init__.py +2 -0
  46. mesa-3.3.0/mesa/visualization/backends/__init__.py +23 -0
  47. mesa-3.3.0/mesa/visualization/backends/abstract_renderer.py +97 -0
  48. mesa-3.3.0/mesa/visualization/backends/altair_backend.py +440 -0
  49. mesa-3.3.0/mesa/visualization/backends/matplotlib_backend.py +419 -0
  50. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/components/__init__.py +28 -8
  51. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/components/altair_components.py +86 -0
  52. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/components/matplotlib_components.py +4 -2
  53. mesa-3.3.0/mesa/visualization/components/portrayal_components.py +120 -0
  54. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/mpl_space_drawing.py +292 -129
  55. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/solara_viz.py +274 -32
  56. mesa-3.3.0/mesa/visualization/space_drawers.py +797 -0
  57. mesa-3.3.0/mesa/visualization/space_renderer.py +399 -0
  58. {mesa-3.2.0 → mesa-3.3.0}/pyproject.toml +8 -2
  59. mesa-3.3.0/tests/test_backends.py +332 -0
  60. {mesa-3.2.0 → mesa-3.3.0}/tests/test_components_matplotlib.py +1 -3
  61. {mesa-3.2.0 → mesa-3.3.0}/tests/test_discrete_space.py +3 -15
  62. {mesa-3.2.0 → mesa-3.3.0}/tests/test_examples.py +11 -11
  63. mesa-3.3.0/tests/test_examples_viz.py +347 -0
  64. {mesa-3.2.0 → mesa-3.3.0}/tests/test_import_namespace.py +4 -4
  65. mesa-3.3.0/tests/test_portrayal_components.py +139 -0
  66. {mesa-3.2.0 → mesa-3.3.0}/tests/test_solara_viz.py +32 -1
  67. mesa-3.3.0/tests/test_solara_viz_updated.py +320 -0
  68. mesa-3.3.0/tests/test_space_drawer.py +312 -0
  69. mesa-3.3.0/tests/test_space_renderer.py +175 -0
  70. mesa-3.3.0/uv.lock +2514 -0
  71. mesa-3.2.0/.github/workflows/build_lint.yml +0 -87
  72. mesa-3.2.0/docs/apis/visualization.md +0 -64
  73. mesa-3.2.0/mesa/examples/advanced/sugarscape_g1mt/tests.py +0 -69
  74. mesa-3.2.0/mesa/examples/basic/boltzmann_wealth_model/app.py +0 -77
  75. mesa-3.2.0/mesa/examples/basic/schelling/app.py +0 -47
  76. {mesa-3.2.0 → mesa-3.3.0}/.codespellignore +0 -0
  77. {mesa-3.2.0 → mesa-3.3.0}/.coveragerc +0 -0
  78. {mesa-3.2.0 → mesa-3.3.0}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  79. {mesa-3.2.0 → mesa-3.3.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  80. {mesa-3.2.0 → mesa-3.3.0}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  81. {mesa-3.2.0 → mesa-3.3.0}/.github/PULL_REQUEST_TEMPLATE/bug.md +0 -0
  82. {mesa-3.2.0 → mesa-3.3.0}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
  83. {mesa-3.2.0 → mesa-3.3.0}/.github/dependabot.yml +0 -0
  84. {mesa-3.2.0 → mesa-3.3.0}/.github/pull_request_template.md +0 -0
  85. {mesa-3.2.0 → mesa-3.3.0}/.github/release.yml +0 -0
  86. {mesa-3.2.0 → mesa-3.3.0}/.gitignore +0 -0
  87. {mesa-3.2.0 → mesa-3.3.0}/.readthedocs.yml +0 -0
  88. {mesa-3.2.0 → mesa-3.3.0}/CITATION.cff +0 -0
  89. {mesa-3.2.0 → mesa-3.3.0}/CODE_OF_CONDUCT.md +0 -0
  90. {mesa-3.2.0 → mesa-3.3.0}/Dockerfile +0 -0
  91. {mesa-3.2.0 → mesa-3.3.0}/LICENSE +0 -0
  92. {mesa-3.2.0 → mesa-3.3.0}/NOTICE +0 -0
  93. {mesa-3.2.0 → mesa-3.3.0}/benchmarks/compare_timings.py +0 -0
  94. {mesa-3.2.0 → mesa-3.3.0}/benchmarks/configurations.py +0 -0
  95. {mesa-3.2.0 → mesa-3.3.0}/benchmarks/global_benchmark.py +0 -0
  96. {mesa-3.2.0 → mesa-3.3.0}/binder/environment.yml +0 -0
  97. {mesa-3.2.0 → mesa-3.3.0}/codecov.yaml +0 -0
  98. {mesa-3.2.0 → mesa-3.3.0}/docker-compose.yml +0 -0
  99. {mesa-3.2.0 → mesa-3.3.0}/docs/Makefile +0 -0
  100. {mesa-3.2.0 → mesa-3.3.0}/docs/README.md +0 -0
  101. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/agent.md +0 -0
  102. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/api_main.md +0 -0
  103. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/batchrunner.md +0 -0
  104. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/datacollection.md +0 -0
  105. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/discrete_space.md +0 -0
  106. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/experimental.md +0 -0
  107. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/mesa_logging.md +0 -0
  108. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/model.md +0 -0
  109. {mesa-3.2.0 → mesa-3.3.0}/docs/apis/space.md +0 -0
  110. {mesa-3.2.0 → mesa-3.3.0}/docs/best-practices.md +0 -0
  111. {mesa-3.2.0 → mesa-3.3.0}/docs/conf.py +0 -0
  112. {mesa-3.2.0 → mesa-3.3.0}/docs/example_template.txt +0 -0
  113. {mesa-3.2.0 → mesa-3.3.0}/docs/examples_overview_template.txt +0 -0
  114. {mesa-3.2.0 → mesa-3.3.0}/docs/images/Discrete_Space.drawio.png +0 -0
  115. {mesa-3.2.0 → mesa-3.3.0}/docs/images/mesa_logo.ico +0 -0
  116. {mesa-3.2.0 → mesa-3.3.0}/docs/images/mesa_logo.png +0 -0
  117. {mesa-3.2.0 → mesa-3.3.0}/docs/images/wolf_sheep.png +0 -0
  118. {mesa-3.2.0 → mesa-3.3.0}/docs/make.bat +0 -0
  119. {mesa-3.2.0 → mesa-3.3.0}/docs/mesa.md +0 -0
  120. {mesa-3.2.0 → mesa-3.3.0}/docs/mesa_extension.md +0 -0
  121. {mesa-3.2.0 → mesa-3.3.0}/docs/migration_guide.md +0 -0
  122. /mesa-3.2.0/docs/tutorials/8_comparing_scenarios.ipynb → /mesa-3.3.0/docs/tutorials/10_comparing_scenarios.ipynb +0 -0
  123. {mesa-3.2.0 → mesa-3.3.0}/docs/tutorials/1_adding_space.ipynb +0 -0
  124. {mesa-3.2.0 → mesa-3.3.0}/docs/tutorials/2_collecting_data.ipynb +0 -0
  125. {mesa-3.2.0 → mesa-3.3.0}/docs/tutorials/3_agentset.ipynb +0 -0
  126. {mesa-3.2.0 → mesa-3.3.0}/maintenance/fetch_unlabeled_prs.py +0 -0
  127. {mesa-3.2.0 → mesa-3.3.0}/mesa/batchrunner.py +0 -0
  128. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/__init__.py +0 -0
  129. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/cell.py +0 -0
  130. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/cell_agent.py +0 -0
  131. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/cell_collection.py +0 -0
  132. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/discrete_space.py +0 -0
  133. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/grid.py +0 -0
  134. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/network.py +0 -0
  135. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/property_layer.py +0 -0
  136. {mesa-3.2.0 → mesa-3.3.0}/mesa/discrete_space/voronoi.py +0 -0
  137. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/README.md +0 -0
  138. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/__init__.py +0 -0
  139. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/__init__.py +0 -0
  140. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/alliance_formation/Readme.md +0 -0
  141. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/alliance_formation/__init__ .py +0 -0
  142. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/alliance_formation/agents.py +0 -0
  143. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/alliance_formation/app.py +0 -0
  144. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/alliance_formation/model.py +0 -0
  145. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +0 -0
  146. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/epstein_civil_violence/Readme.md +0 -0
  147. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/epstein_civil_violence/__init__.py +0 -0
  148. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/epstein_civil_violence/agents.py +0 -0
  149. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/epstein_civil_violence/model.py +0 -0
  150. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/pd_grid/Readme.md +0 -0
  151. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/pd_grid/__init__.py +0 -0
  152. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/pd_grid/agents.py +0 -0
  153. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/pd_grid/analysis.ipynb +0 -0
  154. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/pd_grid/model.py +0 -0
  155. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/sugarscape_g1mt/Readme.md +0 -0
  156. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/sugarscape_g1mt/__init__.py +0 -0
  157. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/sugarscape_g1mt/agents.py +0 -0
  158. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/sugarscape_g1mt/model.py +0 -0
  159. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +0 -0
  160. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/wolf_sheep/Readme.md +0 -0
  161. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/wolf_sheep/__init__.py +0 -0
  162. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/wolf_sheep/agents.py +0 -0
  163. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/advanced/wolf_sheep/model.py +0 -0
  164. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/__init__.py +0 -0
  165. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boid_flockers/Readme.md +0 -0
  166. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boid_flockers/__init__.py +0 -0
  167. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boid_flockers/agents.py +0 -0
  168. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boid_flockers/model.py +0 -0
  169. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boltzmann_wealth_model/Readme.md +0 -0
  170. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
  171. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boltzmann_wealth_model/agents.py +0 -0
  172. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boltzmann_wealth_model/model.py +0 -0
  173. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/boltzmann_wealth_model/st_app.py +0 -0
  174. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/conways_game_of_life/Readme.md +0 -0
  175. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
  176. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/conways_game_of_life/agents.py +0 -0
  177. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/conways_game_of_life/model.py +0 -0
  178. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/conways_game_of_life/st_app.py +0 -0
  179. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/schelling/__init__.py +0 -0
  180. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/schelling/analysis.ipynb +0 -0
  181. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/virus_on_network/Readme.md +0 -0
  182. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/virus_on_network/__init__.py +0 -0
  183. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/virus_on_network/agents.py +0 -0
  184. {mesa-3.2.0 → mesa-3.3.0}/mesa/examples/basic/virus_on_network/model.py +0 -0
  185. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/__init__.py +0 -0
  186. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/cell_space/__init__.py +0 -0
  187. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/continuous_space/__init__.py +0 -0
  188. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/continuous_space/continuous_space_agents.py +0 -0
  189. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/devs/__init__.py +0 -0
  190. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/devs/eventlist.py +0 -0
  191. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/devs/simulator.py +0 -0
  192. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/mesa_signals/__init__.py +0 -0
  193. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/mesa_signals/mesa_signal.py +0 -0
  194. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/mesa_signals/observable_collections.py +0 -0
  195. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/mesa_signals/signals_util.py +0 -0
  196. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/meta_agents/__init__.py +0 -0
  197. {mesa-3.2.0 → mesa-3.3.0}/mesa/experimental/meta_agents/meta_agent.py +0 -0
  198. {mesa-3.2.0 → mesa-3.3.0}/mesa/mesa_logging.py +0 -0
  199. {mesa-3.2.0 → mesa-3.3.0}/mesa/model.py +0 -0
  200. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/command_console.py +0 -0
  201. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/user_param.py +0 -0
  202. {mesa-3.2.0 → mesa-3.3.0}/mesa/visualization/utils.py +0 -0
  203. {mesa-3.2.0 → mesa-3.3.0}/mypy.ini +0 -0
  204. {mesa-3.2.0 → mesa-3.3.0}/tests/__init__.py +0 -0
  205. {mesa-3.2.0 → mesa-3.3.0}/tests/read_requirements.py +0 -0
  206. {mesa-3.2.0 → mesa-3.3.0}/tests/test_agent.py +0 -0
  207. {mesa-3.2.0 → mesa-3.3.0}/tests/test_batch_run.py +0 -0
  208. {mesa-3.2.0 → mesa-3.3.0}/tests/test_continuous_space.py +0 -0
  209. {mesa-3.2.0 → mesa-3.3.0}/tests/test_datacollector.py +0 -0
  210. {mesa-3.2.0 → mesa-3.3.0}/tests/test_devs.py +0 -0
  211. {mesa-3.2.0 → mesa-3.3.0}/tests/test_end_to_end_viz.sh +0 -0
  212. {mesa-3.2.0 → mesa-3.3.0}/tests/test_grid.py +0 -0
  213. {mesa-3.2.0 → mesa-3.3.0}/tests/test_lifespan.py +0 -0
  214. {mesa-3.2.0 → mesa-3.3.0}/tests/test_mesa_logging.py +0 -0
  215. {mesa-3.2.0 → mesa-3.3.0}/tests/test_mesa_signals.py +0 -0
  216. {mesa-3.2.0 → mesa-3.3.0}/tests/test_meta_agents.py +0 -0
  217. {mesa-3.2.0 → mesa-3.3.0}/tests/test_model.py +0 -0
  218. {mesa-3.2.0 → mesa-3.3.0}/tests/test_space.py +0 -0
@@ -0,0 +1,137 @@
1
+ language: en-US
2
+ tone_instructions: ''
3
+ early_access: false
4
+ enable_free_tier: true
5
+ reviews:
6
+ profile: chill
7
+ request_changes_workflow: false
8
+ high_level_summary: true
9
+ high_level_summary_placeholder: '@coderabbitai summary'
10
+ high_level_summary_in_walkthrough: false
11
+ auto_title_placeholder: '@coderabbitai'
12
+ auto_title_instructions: ''
13
+ review_status: false
14
+ commit_status: true
15
+ fail_commit_status: false
16
+ collapse_walkthrough: false
17
+ changed_files_summary: true
18
+ sequence_diagrams: true
19
+ assess_linked_issues: true
20
+ related_issues: true
21
+ related_prs: true
22
+ suggested_labels: true
23
+ auto_apply_labels: false
24
+ suggested_reviewers: true
25
+ auto_assign_reviewers: false
26
+ poem: true
27
+ labeling_instructions: []
28
+ path_filters: []
29
+ path_instructions: []
30
+ abort_on_close: true
31
+ disable_cache: false
32
+ auto_review:
33
+ enabled: false
34
+ auto_incremental_review: false
35
+ ignore_title_keywords: []
36
+ labels: []
37
+ drafts: false
38
+ base_branches: []
39
+ finishing_touches:
40
+ docstrings:
41
+ enabled: true
42
+ tools:
43
+ ast-grep:
44
+ rule_dirs: []
45
+ util_dirs: []
46
+ essential_rules: true
47
+ packages: []
48
+ shellcheck:
49
+ enabled: true
50
+ ruff:
51
+ enabled: true
52
+ markdownlint:
53
+ enabled: true
54
+ github-checks:
55
+ enabled: true
56
+ timeout_ms: 180000
57
+ languagetool:
58
+ enabled: true
59
+ enabled_rules: []
60
+ disabled_rules: []
61
+ enabled_categories: []
62
+ disabled_categories: []
63
+ enabled_only: false
64
+ level: default
65
+ biome:
66
+ enabled: true
67
+ hadolint:
68
+ enabled: true
69
+ swiftlint:
70
+ enabled: true
71
+ phpstan:
72
+ enabled: true
73
+ level: default
74
+ golangci-lint:
75
+ enabled: true
76
+ yamllint:
77
+ enabled: true
78
+ gitleaks:
79
+ enabled: true
80
+ checkov:
81
+ enabled: true
82
+ detekt:
83
+ enabled: true
84
+ eslint:
85
+ enabled: true
86
+ rubocop:
87
+ enabled: true
88
+ buf:
89
+ enabled: true
90
+ regal:
91
+ enabled: true
92
+ actionlint:
93
+ enabled: true
94
+ pmd:
95
+ enabled: true
96
+ cppcheck:
97
+ enabled: true
98
+ semgrep:
99
+ enabled: true
100
+ circleci:
101
+ enabled: true
102
+ sqlfluff:
103
+ enabled: true
104
+ prismaLint:
105
+ enabled: true
106
+ oxc:
107
+ enabled: true
108
+ shopifyThemeCheck:
109
+ enabled: true
110
+ chat:
111
+ auto_reply: true
112
+ create_issues: true
113
+ integrations:
114
+ jira:
115
+ usage: auto
116
+ linear:
117
+ usage: auto
118
+ knowledge_base:
119
+ opt_out: false
120
+ web_search:
121
+ enabled: true
122
+ learnings:
123
+ scope: auto
124
+ issues:
125
+ scope: auto
126
+ jira:
127
+ usage: auto
128
+ project_keys: []
129
+ linear:
130
+ usage: auto
131
+ team_keys: []
132
+ pull_requests:
133
+ scope: auto
134
+ code_generation:
135
+ docstrings:
136
+ language: en-US
137
+ path_instructions: []
@@ -34,7 +34,7 @@ jobs:
34
34
  run: uv pip install --system numpy pandas tqdm tabulate matplotlib solara networkx scipy
35
35
  # Benchmarks on the projectmesa main branch
36
36
  - name: Checkout main branch
37
- uses: actions/checkout@v4
37
+ uses: actions/checkout@v5
38
38
  with:
39
39
  ref: main
40
40
  repository: projectmesa/mesa
@@ -50,7 +50,7 @@ jobs:
50
50
  name: timings-main
51
51
  path: benchmarks/timings_1.pickle
52
52
  - name: Checkout PR branch
53
- uses: actions/checkout@v4
53
+ uses: actions/checkout@v5
54
54
  if: github.event_name == 'pull_request_target'
55
55
  with:
56
56
  ref: ${{ github.event.pull_request.head.ref }}
@@ -61,7 +61,7 @@ jobs:
61
61
  - name: Install Mesa of the PR branch
62
62
  run: pip install --no-deps .
63
63
  - name: Download benchmark results
64
- uses: actions/download-artifact@v4
64
+ uses: actions/download-artifact@v5
65
65
  with:
66
66
  name: timings-main
67
67
  path: benchmarks
@@ -0,0 +1,89 @@
1
+ name: build
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - release**
8
+ paths-ignore:
9
+ - "**.md"
10
+ pull_request:
11
+ paths-ignore:
12
+ - "**.md"
13
+ workflow_dispatch:
14
+ schedule:
15
+ - cron: "0 6 * * 1"
16
+
17
+ # This will cancel previous run if a newer job that obsoletes the said previous
18
+ # run, is started.
19
+ # Based on https://github.com/zulip/zulip/commit/4a11642cee3c8aec976d305d51a86e60e5d70522
20
+ concurrency:
21
+ group: "${{ github.workflow }}-${{ github.head_ref || github.run_id }}"
22
+ cancel-in-progress: true
23
+
24
+ jobs:
25
+ build:
26
+ runs-on: ${{ matrix.os }}-latest
27
+ # We need an explicit timeout because sometimes the batch_runner test never
28
+ # completes.
29
+ timeout-minutes: 6
30
+ strategy:
31
+ fail-fast: False
32
+ matrix:
33
+ os: [windows, ubuntu, macos]
34
+ python-version: ["3.13"]
35
+ include:
36
+ - os: ubuntu
37
+ python-version: "3.12"
38
+ - os: ubuntu
39
+ python-version: "3.11"
40
+ # Disabled for now. See https://github.com/projectmesa/mesa/issues/1253
41
+ #- os: ubuntu
42
+ # python-version: 'pypy-3.8'
43
+
44
+ steps:
45
+ - uses: actions/checkout@v5
46
+ - name: Set up Python ${{ matrix.python-version }}
47
+ uses: actions/setup-python@v5
48
+ with:
49
+ python-version: ${{ matrix.python-version }}
50
+ allow-prereleases: true
51
+ cache: "pip"
52
+ - name: Install uv
53
+ run: pip install uv
54
+ - name: Install Mesa and dependencies
55
+ run: uv pip install --system .[dev]
56
+ - name: Setup Playwright
57
+ run: playwright install
58
+ - name: Test with pytest
59
+ run: pytest --durations=10 --cov=mesa tests/ --cov-report=xml
60
+ - if: matrix.os == 'ubuntu'
61
+ name: Codecov
62
+ uses: codecov/codecov-action@v5
63
+ with:
64
+ fail_ci_if_error: true
65
+ token: ${{ secrets.CODECOV_TOKEN }}
66
+
67
+ examples:
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - uses: actions/checkout@v5
71
+ - name: Set up Python
72
+ uses: actions/setup-python@v5
73
+ with:
74
+ python-version: "3.13"
75
+ allow-prereleases: true
76
+ cache: "pip"
77
+ - name: Install uv
78
+ run: pip install uv
79
+ - name: Install Mesa
80
+ run: uv pip install --system .[examples]
81
+ - name: Checkout mesa-examples
82
+ uses: actions/checkout@v5
83
+ with:
84
+ repository: projectmesa/mesa-examples
85
+ path: mesa-examples
86
+ - name: Test examples
87
+ run: |
88
+ cd mesa-examples
89
+ pytest -rA -Werror -Wdefault::FutureWarning -Wi::DeprecationWarning test_examples.py
@@ -28,7 +28,7 @@ jobs:
28
28
  id-token: write
29
29
  steps:
30
30
  - name: Checkout source
31
- uses: actions/checkout@v4
31
+ uses: actions/checkout@v5
32
32
  - name: Set up Python
33
33
  uses: actions/setup-python@v5
34
34
  with:
@@ -4,7 +4,7 @@ ci:
4
4
  repos:
5
5
  - repo: https://github.com/astral-sh/ruff-pre-commit
6
6
  # Ruff version.
7
- rev: v0.9.9
7
+ rev: v0.12.7
8
8
  hooks:
9
9
  # Run the linter.
10
10
  - id: ruff
@@ -14,7 +14,7 @@ repos:
14
14
  - id: ruff-format
15
15
  types_or: [ python, pyi, jupyter ]
16
16
  - repo: https://github.com/asottile/pyupgrade
17
- rev: v3.19.1
17
+ rev: v3.20.0
18
18
  hooks:
19
19
  - id: pyupgrade
20
20
  args: [--py311-plus]
@@ -112,7 +112,7 @@ pre-commit install
112
112
  You should no longer have to worry about code formatting. If still in doubt you may run the following command. If the command generates errors, fix all errors that are returned.
113
113
 
114
114
  ```bash
115
- ruff .
115
+ ruff check . --fix
116
116
  ```
117
117
 
118
118
  ## Licensing
@@ -1,6 +1,70 @@
1
1
  ---
2
2
  title: Release History
3
3
  ---
4
+ # 3.3.0 (2025-09-06)
5
+ ## Highlights
6
+
7
+ The major highlight of release 3.3.0 is the introduction of a new and improved visualization module. This effort was @Sahil-Chhoker's Google Summer of Code project . The new module is backwards compatible and continues to use Solara. It has several new and improved features to include:
8
+ - `AgentPortrayalStyle`: a more user-friendly way to specify agent portrayal
9
+ - `PropertyLayerStyle`: Makes propertlayer and agent portrayal consistent.
10
+ - `SpaceRender`: a new component for drawing spaces, agents and property layers with extensive customization
11
+ - Improved support for Altair and Maplotlib
12
+ - Multipage support (e.g., users can display simulation on one page and charts of the model on another)
13
+ - Updated tutorials for visualization
14
+
15
+ [You can read more about the update here](https://gist.github.com/Sahil-Chhoker/470d78683664dffc05725bd858beb494)
16
+
17
+
18
+ In addition, there were many other improvements to mesa, from bug fixes to improved CI/CD pipelines. Thanks to the PyCON sprints and the developers who supported Mesa!
19
+
20
+ ## What's Changed
21
+ ### 🧪 Experimental features
22
+ * Introduction of Space Renderer by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2803
23
+ ### 🎉 New features added
24
+ * docs/nix flake by @hussainsultan in https://github.com/projectmesa/mesa/pull/2788
25
+ ### 🛠 Enhancements made
26
+ * Added `AgentPortrayalStyle` and `PropertyLayerStyle` by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2786
27
+ * Allow image markers to plot agents by @Holzhauer in https://github.com/projectmesa/mesa/pull/2799
28
+ * Renderer null check fix in solaraviz by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2809
29
+ * Add Altair plotting functionality by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2810
30
+ * Fix: Grid not showing in altair if both draw_structure and draw_agnets are called. by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2817
31
+ * Allowing color mapping to integers in AgentPortrayalStyle by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2818
32
+ * Added multipage functionality by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2827
33
+ ### 🐛 Bugs fixed
34
+ * Bugfix ModelCreator for required model parameters and user adjusted model parameters by @Holzhauer in https://github.com/projectmesa/mesa/pull/2780
35
+ * Remove unneeded int cast by @derkweijers in https://github.com/projectmesa/mesa/pull/2791
36
+ * Add quotes to readme to insure multi-terminal compliance. by @jackiekazil in https://github.com/projectmesa/mesa/pull/2787
37
+ * Fix broken docs link - Fix issue 2792 by @catherinedevlin in https://github.com/projectmesa/mesa/pull/2793
38
+ * Bug fixes for portrayal components by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2798
39
+ * fix : prevent breakdown when citizen_density (Initial Agent Density s… by @colinfrisch in https://github.com/projectmesa/mesa/pull/2806
40
+ * Fix issue #2812 by @Tosiekdev in https://github.com/projectmesa/mesa/pull/2821
41
+ ### 📜 Documentation improvements
42
+ * Benchmarks documentation by @colinfrisch in https://github.com/projectmesa/mesa/pull/2764
43
+ * minor corrections in tutorials by @Holzhauer in https://github.com/projectmesa/mesa/pull/2778
44
+ * Correct example code in "Overview of the MESA library" by @Holzhauer in https://github.com/projectmesa/mesa/pull/2781
45
+ * Updating Examples and Docs inline with the new API. by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2819
46
+ ### 🔧 Maintenance
47
+ * Add `.coderabbit.yaml` file to allow reviewing and updating our CodeRabbit configuration by @EwoutH in https://github.com/projectmesa/mesa/pull/2761
48
+ * add nix flake by @hussainsultan in https://github.com/projectmesa/mesa/pull/2785
49
+ * Removing Deprecations Warnings from `agent_portrayal` and `propertylayer_portrayal` until next release. by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2797
50
+ * Added Basic Visualization tests by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2767
51
+ ### Other changes
52
+ * Update __init__.py by @tpike3 in https://github.com/projectmesa/mesa/pull/2770
53
+ * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/projectmesa/mesa/pull/2751
54
+ * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/projectmesa/mesa/pull/2802
55
+ * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/projectmesa/mesa/pull/2808
56
+ * Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in https://github.com/projectmesa/mesa/pull/2826
57
+ * Bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/projectmesa/mesa/pull/2825
58
+ * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/projectmesa/mesa/pull/2823
59
+
60
+ ## New Contributors
61
+ * @derkweijers made their first contribution in https://github.com/projectmesa/mesa/pull/2791
62
+ * @hussainsultan made their first contribution in https://github.com/projectmesa/mesa/pull/2785
63
+ * @catherinedevlin made their first contribution in https://github.com/projectmesa/mesa/pull/2793
64
+ * @Tosiekdev made their first contribution in https://github.com/projectmesa/mesa/pull/2821
65
+
66
+ **Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.2.0...v3.3.0
67
+
4
68
  # 3.2.0 (2025-05-04)
5
69
  ## Highlights
6
70
  Mesa 3.2.0 is a feature-packed release, which stabilizes our discrete space, improves many of our visualisation capabilities, improves our tutorial organization, adds the experimental meta-agents, and includes other quality of life enhancements.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Mesa
3
- Version: 3.2.0
3
+ Version: 3.3.0
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
@@ -24,19 +24,24 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Life
24
24
  Requires-Python: >=3.11
25
25
  Requires-Dist: numpy
26
26
  Requires-Dist: pandas
27
+ Requires-Dist: pythran>=0.17.0; sys_platform == 'darwin'
27
28
  Requires-Dist: scipy
28
29
  Requires-Dist: tqdm
29
30
  Provides-Extra: all
30
31
  Requires-Dist: altair; extra == 'all'
31
32
  Requires-Dist: ipython; extra == 'all'
33
+ Requires-Dist: ipython>=9.2.0; extra == 'all'
32
34
  Requires-Dist: matplotlib; extra == 'all'
33
35
  Requires-Dist: myst-nb; extra == 'all'
34
36
  Requires-Dist: myst-parser; extra == 'all'
35
37
  Requires-Dist: networkx; extra == 'all'
38
+ Requires-Dist: playwright; extra == 'all'
36
39
  Requires-Dist: pydata-sphinx-theme; extra == 'all'
37
40
  Requires-Dist: pytest; extra == 'all'
38
41
  Requires-Dist: pytest-cov; extra == 'all'
42
+ Requires-Dist: pytest-ipywidgets; extra == 'all'
39
43
  Requires-Dist: pytest-mock; extra == 'all'
44
+ Requires-Dist: pytest-playwright; extra == 'all'
40
45
  Requires-Dist: ruff; extra == 'all'
41
46
  Requires-Dist: scipy; extra == 'all'
42
47
  Requires-Dist: seaborn; extra == 'all'
@@ -45,11 +50,15 @@ Requires-Dist: sphinx; extra == 'all'
45
50
  Requires-Dist: sphinx-copybutton; extra == 'all'
46
51
  Provides-Extra: dev
47
52
  Requires-Dist: altair; extra == 'dev'
53
+ Requires-Dist: ipython>=9.2.0; extra == 'dev'
48
54
  Requires-Dist: matplotlib; extra == 'dev'
49
55
  Requires-Dist: networkx; extra == 'dev'
56
+ Requires-Dist: playwright; extra == 'dev'
50
57
  Requires-Dist: pytest; extra == 'dev'
51
58
  Requires-Dist: pytest-cov; extra == 'dev'
59
+ Requires-Dist: pytest-ipywidgets; extra == 'dev'
52
60
  Requires-Dist: pytest-mock; extra == 'dev'
61
+ Requires-Dist: pytest-playwright; extra == 'dev'
53
62
  Requires-Dist: ruff; extra == 'dev'
54
63
  Requires-Dist: solara; extra == 'dev'
55
64
  Requires-Dist: sphinx; extra == 'dev'
@@ -125,13 +134,13 @@ pip install -U mesa
125
134
  Starting with Mesa 3.0, we don't install all our dependencies anymore by default.
126
135
  ```bash
127
136
  # You can customize the additional dependencies you need, if you want. Available are:
128
- pip install -U mesa[network,viz]
137
+ pip install -U "mesa[network,viz]"
129
138
 
130
139
  # This is equivalent to our recommended dependencies:
131
- pip install -U mesa[rec]
140
+ pip install -U "mesa[rec]"
132
141
 
133
142
  # To install all, including developer, dependencies:
134
- pip install -U mesa[all]
143
+ pip install -U "mesa[all]"
135
144
  ```
136
145
 
137
146
  You can also use `pip` to install the latest GitHub version:
@@ -38,13 +38,13 @@ pip install -U mesa
38
38
  Starting with Mesa 3.0, we don't install all our dependencies anymore by default.
39
39
  ```bash
40
40
  # You can customize the additional dependencies you need, if you want. Available are:
41
- pip install -U mesa[network,viz]
41
+ pip install -U "mesa[network,viz]"
42
42
 
43
43
  # This is equivalent to our recommended dependencies:
44
- pip install -U mesa[rec]
44
+ pip install -U "mesa[rec]"
45
45
 
46
46
  # To install all, including developer, dependencies:
47
- pip install -U mesa[all]
47
+ pip install -U "mesa[all]"
48
48
  ```
49
49
 
50
50
  You can also use `pip` to install the latest GitHub version:
@@ -0,0 +1,99 @@
1
+ # Mesa Performance Benchmarks
2
+
3
+ The `/benchmarks` directory contains tools for benchmarking the Mesa library performance on the included example models. This allows to track and compare model initialisation time and runtime between different Mesa versions.
4
+
5
+ MESA uses several example base models for benchmarking performance (BoltzmannWealth, Schelling, BoidFlockers, and WolfSheep) by calculating the initialization time and run time for each of these models. These example models can be found in the `/mesa/examples` directory.
6
+
7
+ ## Available Files
8
+
9
+ - `configurations.py`: Contains model configurations for benchmarking
10
+ - `global_benchmark.py`: Main script for running benchmarks
11
+ - `compare_timings.py`: Tool to compare results between benchmark runs
12
+
13
+ ## How to Use
14
+
15
+
16
+ ### 1. Benchmark Configuration
17
+
18
+ The `configurations.py` file defines which models to benchmark and their parameters. Each model has:
19
+
20
+ - `small` and `large` configurations for testing different scales
21
+ - Parameters for:
22
+ - `seeds`: Number of different random seeds to use
23
+ - `replications`: Number of times to repeat the benchmark for each seed
24
+ - `steps`: Number of model steps to run
25
+ - `parameters`: Model-specific parameters
26
+
27
+ ### 2. Running Benchmarks
28
+
29
+ To run the benchmarks:
30
+
31
+ ```bash
32
+ pip install tabulate # if you don't have it yet
33
+ python global_benchmark.py
34
+ ```
35
+
36
+ This will:
37
+ - Run all models defined in `configurations.py` with their respective configurations
38
+ - Measure initialization time and run time for each model
39
+ - Save results to a pickle file named `timings_X.pickle` (where X is an incremental number)
40
+ - Display a summary of results in the terminal
41
+
42
+
43
+ >**Noteworthy :** the pickle file created by the benchmark is not under git control. So you can run the benchmark on the master branch first, switch to your development branch, and run the benchmarks again.
44
+
45
+ #### What's being measured:
46
+
47
+ - **Initialization time**: How long it takes to create model instances
48
+ - **Run time**: How long it takes to run the model for the specified number of steps
49
+
50
+ ### 3. Comparing Results
51
+
52
+ After running benchmarks at different times (e.g., before and after code changes), you can compare the results:
53
+
54
+ 1. Rename your benchmark files to distinguish them (e.g., `timings_before.pickle` and `timings_after.pickle`)
55
+ 2. Edit `compare_timings.py` to use your file names:
56
+ ```python
57
+ filename1 = "timings_1" # Or the name of your 1st timings file
58
+ filename2 = "timings_2" # Or the name of your 2nd timings file
59
+ ```
60
+ 3. Run the comparison:
61
+ ```bash
62
+ python compare_timings.py
63
+ ```
64
+
65
+ The output will show:
66
+ - Percentage changes in initialization and run times
67
+ - 95% confidence intervals for the changes
68
+ - Emojis indicate performance changes:
69
+ - 🟢 Faster performance (>3% improvement)
70
+ - 🔴 Slower performance (>3% regression)
71
+ - 🔵 Insignificant change (within ±3%)
72
+
73
+ > Some care is required in the interpretation since it only shows percentage changes and not the absolute changes. The init times in general are tiny so slower performance here is not necissarily as much of an issue.
74
+
75
+
76
+ ## Example Workflow
77
+
78
+ 1. Run benchmarks on your current Mesa version:
79
+ ```bash
80
+ python global_benchmark.py
81
+ # Results saved as timings_1.pickle
82
+ ```
83
+
84
+ 2. Make code changes (add a feature in mesa, optimize a method, etc.) **OR** switch to development branch - you can do that without duplicating your pickle file in the new branch as it is not under git control
85
+
86
+
87
+ 3. Run benchmarks again:
88
+ ```bash
89
+ python global_benchmark.py
90
+ # Results saved as timings_2.pickle
91
+ ```
92
+
93
+ 4. Compare results:
94
+ ```bash
95
+ python compare_timings.py
96
+ # Shows performance change table
97
+ ```
98
+
99
+ 5. Use the results to validate your optimizations or identify regressions
@@ -0,0 +1,130 @@
1
+ # Visualization
2
+
3
+ For detailed tutorials, please refer to:
4
+
5
+ - [Basic Visualization](../tutorials/4_visualization_basic)
6
+ - [Dynamic Agent Visualization](../tutorials/5_visualization_dynamic_agents)
7
+ - [Custom Agent Visualization](../tutorials/6_visualization_custom)
8
+
9
+
10
+ ## Jupyter Visualization
11
+
12
+ ```{eval-rst}
13
+ .. automodule:: mesa.visualization.solara_viz
14
+ :members:
15
+ :undoc-members:
16
+ :show-inheritance:
17
+ ```
18
+
19
+ ```{eval-rst}
20
+ .. automodule:: mesa.visualization.components.__init__
21
+ :members:
22
+ :undoc-members:
23
+ :show-inheritance:
24
+ ```
25
+
26
+ ## User Parameters
27
+
28
+ ```{eval-rst}
29
+ .. automodule:: mesa.visualization.user_param
30
+ :members:
31
+ :undoc-members:
32
+ :show-inheritance:
33
+ ```
34
+
35
+
36
+ ## Matplotlib-based visualizations
37
+
38
+ ```{eval-rst}
39
+ .. automodule:: mesa.visualization.components.matplotlib_components
40
+ :members:
41
+ :undoc-members:
42
+ :show-inheritance:
43
+ ```
44
+
45
+ ```{eval-rst}
46
+ .. automodule:: mesa.visualization.mpl_space_drawing
47
+ :members:
48
+ :undoc-members:
49
+ :show-inheritance:
50
+ ```
51
+
52
+
53
+ ## Altair-based visualizations
54
+
55
+ ```{eval-rst}
56
+ .. automodule:: mesa.visualization.components.altair_components
57
+ :members:
58
+ :undoc-members:
59
+ :show-inheritance:
60
+ ```
61
+
62
+
63
+ ## Command Console
64
+
65
+ ```{eval-rst}
66
+ .. automodule:: mesa.visualization.command_console
67
+ :members:
68
+ :undoc-members:
69
+ :show-inheritance:
70
+ ```
71
+
72
+
73
+ ## Portrayal Components
74
+ ```{eval-rst}
75
+ .. automodule:: mesa.visualization.components.portrayal_components
76
+ :members:
77
+ :undoc-members:
78
+ :show-inheritance:
79
+ ```
80
+
81
+
82
+ ## Backends
83
+
84
+ ```{eval-rst}
85
+ .. automodule:: mesa.visualization.backends.__init__
86
+ :members:
87
+ :undoc-members:
88
+ :show-inheritance:
89
+ ```
90
+
91
+ ```{eval-rst}
92
+ .. automodule:: mesa.visualization.backends.abstract_renderer
93
+ :members:
94
+ :undoc-members:
95
+ :show-inheritance:
96
+ ```
97
+
98
+ ```{eval-rst}
99
+ .. automodule:: mesa.visualization.backends.altair_backend
100
+ :members:
101
+ :undoc-members:
102
+ :show-inheritance:
103
+ ```
104
+
105
+ ```{eval-rst}
106
+ .. automodule:: mesa.visualization.backends.matplotlib_backend
107
+ :members:
108
+ :undoc-members:
109
+ :show-inheritance:
110
+ ```
111
+
112
+
113
+ ## Space Renderer
114
+
115
+ ```{eval-rst}
116
+ .. automodule:: mesa.visualization.space_renderer
117
+ :members:
118
+ :undoc-members:
119
+ :show-inheritance:
120
+ ```
121
+
122
+
123
+ ## Space Drawers
124
+
125
+ ```{eval-rst}
126
+ .. automodule:: mesa.visualization.space_drawers
127
+ :members:
128
+ :undoc-members:
129
+ :show-inheritance:
130
+ ```