Mesa 2.3.4__tar.gz → 3.0.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 (240) hide show
  1. {mesa-2.3.4 → mesa-3.0.0}/.codespellignore +1 -0
  2. {mesa-2.3.4 → mesa-3.0.0}/.github/ISSUE_TEMPLATE/bug-report.md +2 -1
  3. mesa-3.0.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  4. mesa-3.0.0/.github/PULL_REQUEST_TEMPLATE/bug.md +16 -0
  5. mesa-3.0.0/.github/PULL_REQUEST_TEMPLATE/feature.md +16 -0
  6. mesa-3.0.0/.github/pull_request_template.md +4 -0
  7. {mesa-2.3.4 → mesa-3.0.0}/.github/release.yml +3 -0
  8. {mesa-2.3.4 → mesa-3.0.0}/.github/workflows/benchmarks.yml +1 -1
  9. {mesa-2.3.4 → mesa-3.0.0}/.github/workflows/build_lint.yml +12 -9
  10. {mesa-2.3.4 → mesa-3.0.0}/.github/workflows/release.yml +2 -1
  11. {mesa-2.3.4 → mesa-3.0.0}/.gitignore +4 -0
  12. {mesa-2.3.4 → mesa-3.0.0}/.pre-commit-config.yaml +5 -5
  13. {mesa-2.3.4 → mesa-3.0.0}/.readthedocs.yml +1 -1
  14. {mesa-2.3.4 → mesa-3.0.0}/CODE_OF_CONDUCT.md +1 -1
  15. {mesa-2.3.4 → mesa-3.0.0}/CONTRIBUTING.md +19 -1
  16. {mesa-2.3.4 → mesa-3.0.0}/HISTORY.md +543 -12
  17. mesa-3.0.0/LICENSE +202 -0
  18. mesa-2.3.4/LICENSE → mesa-3.0.0/NOTICE +2 -2
  19. {mesa-2.3.4 → mesa-3.0.0}/PKG-INFO +65 -19
  20. {mesa-2.3.4 → mesa-3.0.0}/README.md +23 -8
  21. mesa-3.0.0/benchmarks/BoltzmannWealth/__init__.py +1 -0
  22. mesa-3.0.0/benchmarks/BoltzmannWealth/boltzmann_wealth.py +112 -0
  23. mesa-3.0.0/benchmarks/Flocking/__init__.py +1 -0
  24. {mesa-2.3.4 → mesa-3.0.0}/benchmarks/Flocking/flocking.py +20 -30
  25. mesa-3.0.0/benchmarks/Schelling/__init__.py +1 -0
  26. {mesa-2.3.4 → mesa-3.0.0}/benchmarks/Schelling/schelling.py +44 -40
  27. mesa-3.0.0/benchmarks/WolfSheep/__init__.py +1 -0
  28. {mesa-2.3.4 → mesa-3.0.0}/benchmarks/WolfSheep/wolf_sheep.py +50 -73
  29. {mesa-2.3.4 → mesa-3.0.0}/benchmarks/compare_timings.py +13 -2
  30. {mesa-2.3.4 → mesa-3.0.0}/benchmarks/configurations.py +27 -1
  31. {mesa-2.3.4 → mesa-3.0.0}/benchmarks/global_benchmark.py +30 -7
  32. mesa-3.0.0/binder/environment.yml +14 -0
  33. {mesa-2.3.4 → mesa-3.0.0}/codecov.yaml +3 -2
  34. {mesa-2.3.4 → mesa-3.0.0}/docs/README.md +4 -5
  35. mesa-3.0.0/docs/_static/switcher.json +12 -0
  36. mesa-3.0.0/docs/apis/agent.md +8 -0
  37. {mesa-2.3.4 → mesa-3.0.0}/docs/apis/api_main.md +2 -1
  38. {mesa-2.3.4 → mesa-3.0.0}/docs/apis/batchrunner.md +2 -0
  39. {mesa-2.3.4 → mesa-3.0.0}/docs/apis/datacollection.md +2 -0
  40. {mesa-2.3.4 → mesa-3.0.0}/docs/apis/experimental.md +4 -8
  41. mesa-3.0.0/docs/apis/model.md +7 -0
  42. {mesa-2.3.4 → mesa-3.0.0}/docs/apis/space.md +2 -0
  43. {mesa-2.3.4 → mesa-3.0.0}/docs/apis/time.md +2 -0
  44. mesa-3.0.0/docs/apis/visualization.md +47 -0
  45. {mesa-2.3.4 → mesa-3.0.0}/docs/best-practices.md +20 -21
  46. {mesa-2.3.4 → mesa-3.0.0}/docs/conf.py +93 -6
  47. mesa-3.0.0/docs/example_template.txt +22 -0
  48. mesa-3.0.0/docs/examples_overview_template.txt +13 -0
  49. mesa-3.0.0/docs/getting_started.md +262 -0
  50. mesa-3.0.0/docs/images/wolf_sheep.png +0 -0
  51. mesa-3.0.0/docs/index.md +101 -0
  52. {mesa-2.3.4 → mesa-3.0.0}/docs/mesa.md +0 -6
  53. mesa-3.0.0/docs/migration_guide.md +335 -0
  54. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/MoneyModel.py +24 -9
  55. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/intro_tutorial.ipynb +738 -308
  56. mesa-3.0.0/docs/tutorials/visualization_tutorial.ipynb +433 -0
  57. mesa-3.0.0/maintenance/fetch_unlabeled_prs.py +82 -0
  58. {mesa-2.3.4 → mesa-3.0.0}/mesa/__init__.py +3 -5
  59. mesa-3.0.0/mesa/agent.py +654 -0
  60. {mesa-2.3.4 → mesa-3.0.0}/mesa/batchrunner.py +58 -31
  61. {mesa-2.3.4 → mesa-3.0.0}/mesa/datacollection.py +141 -30
  62. mesa-3.0.0/mesa/examples/README.md +37 -0
  63. mesa-3.0.0/mesa/examples/__init__.py +21 -0
  64. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +116 -0
  65. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/Readme.md +34 -0
  66. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/agents.py +164 -0
  67. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/app.py +73 -0
  68. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/model.py +114 -0
  69. mesa-3.0.0/mesa/examples/advanced/pd_grid/Readme.md +43 -0
  70. mesa-3.0.0/mesa/examples/advanced/pd_grid/agents.py +50 -0
  71. mesa-3.0.0/mesa/examples/advanced/pd_grid/analysis.ipynb +228 -0
  72. mesa-3.0.0/mesa/examples/advanced/pd_grid/app.py +54 -0
  73. mesa-3.0.0/mesa/examples/advanced/pd_grid/model.py +71 -0
  74. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/Readme.md +64 -0
  75. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/agents.py +344 -0
  76. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/app.py +62 -0
  77. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/model.py +180 -0
  78. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +50 -0
  79. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/tests.py +69 -0
  80. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/Readme.md +57 -0
  81. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/agents.py +102 -0
  82. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/app.py +84 -0
  83. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/model.py +137 -0
  84. mesa-3.0.0/mesa/examples/basic/__init__.py +0 -0
  85. mesa-3.0.0/mesa/examples/basic/boid_flockers/Readme.md +22 -0
  86. mesa-3.0.0/mesa/examples/basic/boid_flockers/__init__.py +0 -0
  87. mesa-3.0.0/mesa/examples/basic/boid_flockers/agents.py +71 -0
  88. mesa-3.0.0/mesa/examples/basic/boid_flockers/app.py +58 -0
  89. mesa-3.0.0/mesa/examples/basic/boid_flockers/model.py +69 -0
  90. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/Readme.md +56 -0
  91. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
  92. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/agents.py +31 -0
  93. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/app.py +74 -0
  94. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/model.py +43 -0
  95. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/st_app.py +115 -0
  96. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/Readme.md +39 -0
  97. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
  98. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/agents.py +47 -0
  99. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/app.py +51 -0
  100. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/model.py +31 -0
  101. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/st_app.py +72 -0
  102. mesa-3.0.0/mesa/examples/basic/schelling/Readme.md +40 -0
  103. mesa-3.0.0/mesa/examples/basic/schelling/__init__.py +0 -0
  104. mesa-3.0.0/mesa/examples/basic/schelling/agents.py +26 -0
  105. mesa-3.0.0/mesa/examples/basic/schelling/analysis.ipynb +205 -0
  106. mesa-3.0.0/mesa/examples/basic/schelling/app.py +42 -0
  107. mesa-3.0.0/mesa/examples/basic/schelling/model.py +59 -0
  108. mesa-3.0.0/mesa/examples/basic/virus_on_network/Readme.md +61 -0
  109. mesa-3.0.0/mesa/examples/basic/virus_on_network/__init__.py +0 -0
  110. mesa-3.0.0/mesa/examples/basic/virus_on_network/agents.py +69 -0
  111. mesa-3.0.0/mesa/examples/basic/virus_on_network/app.py +114 -0
  112. mesa-3.0.0/mesa/examples/basic/virus_on_network/model.py +96 -0
  113. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/UserParam.py +18 -7
  114. mesa-3.0.0/mesa/experimental/__init__.py +13 -0
  115. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/cell_space/__init__.py +16 -1
  116. mesa-3.0.0/mesa/experimental/cell_space/cell.py +222 -0
  117. mesa-3.0.0/mesa/experimental/cell_space/cell_agent.py +133 -0
  118. mesa-3.0.0/mesa/experimental/cell_space/cell_collection.py +118 -0
  119. mesa-3.0.0/mesa/experimental/cell_space/discrete_space.py +148 -0
  120. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/cell_space/grid.py +33 -9
  121. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/cell_space/network.py +15 -10
  122. mesa-3.0.0/mesa/experimental/cell_space/voronoi.py +257 -0
  123. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/components/altair.py +11 -2
  124. mesa-3.0.0/mesa/experimental/components/matplotlib.py +242 -0
  125. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/devs/__init__.py +2 -0
  126. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/devs/eventlist.py +54 -15
  127. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/devs/examples/epstein_civil_violence.py +71 -39
  128. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/devs/examples/wolf_sheep.py +45 -45
  129. {mesa-2.3.4 → mesa-3.0.0}/mesa/experimental/devs/simulator.py +57 -16
  130. mesa-2.3.4/mesa/experimental/jupyter_viz.py → mesa-3.0.0/mesa/experimental/solara_viz.py +151 -98
  131. mesa-3.0.0/mesa/model.py +291 -0
  132. {mesa-2.3.4 → mesa-3.0.0}/mesa/space.py +217 -151
  133. {mesa-2.3.4 → mesa-3.0.0}/mesa/time.py +63 -80
  134. mesa-3.0.0/mesa/visualization/__init__.py +26 -0
  135. mesa-3.0.0/mesa/visualization/components/__init__.py +83 -0
  136. mesa-3.0.0/mesa/visualization/components/altair_components.py +188 -0
  137. mesa-3.0.0/mesa/visualization/components/matplotlib_components.py +175 -0
  138. mesa-3.0.0/mesa/visualization/mpl_space_drawing.py +593 -0
  139. mesa-3.0.0/mesa/visualization/solara_viz.py +458 -0
  140. mesa-3.0.0/mesa/visualization/user_param.py +69 -0
  141. mesa-3.0.0/mesa/visualization/utils.py +9 -0
  142. {mesa-2.3.4 → mesa-3.0.0}/pyproject.toml +32 -13
  143. mesa-3.0.0/tests/__init__.py +1 -0
  144. {mesa-2.3.4 → mesa-3.0.0}/tests/read_requirements.py +1 -0
  145. mesa-3.0.0/tests/test_agent.py +660 -0
  146. {mesa-2.3.4 → mesa-3.0.0}/tests/test_batch_run.py +49 -38
  147. mesa-3.0.0/tests/test_cell_space.py +752 -0
  148. mesa-3.0.0/tests/test_components_matplotlib.py +237 -0
  149. mesa-3.0.0/tests/test_datacollector.py +356 -0
  150. {mesa-2.3.4 → mesa-3.0.0}/tests/test_devs.py +6 -0
  151. mesa-3.0.0/tests/test_examples.py +72 -0
  152. {mesa-2.3.4 → mesa-3.0.0}/tests/test_grid.py +38 -88
  153. {mesa-2.3.4 → mesa-3.0.0}/tests/test_import_namespace.py +7 -12
  154. {mesa-2.3.4 → mesa-3.0.0}/tests/test_lifespan.py +25 -26
  155. mesa-3.0.0/tests/test_model.py +110 -0
  156. mesa-3.0.0/tests/test_solara_viz.py +215 -0
  157. {mesa-2.3.4 → mesa-3.0.0}/tests/test_space.py +155 -171
  158. {mesa-2.3.4 → mesa-3.0.0}/tests/test_time.py +71 -96
  159. mesa-2.3.4/.github/ISSUE_TEMPLATE/asking-help.md +0 -9
  160. mesa-2.3.4/docs/apis/init.md +0 -11
  161. mesa-2.3.4/docs/apis/visualization.md +0 -38
  162. mesa-2.3.4/docs/howto.md +0 -83
  163. mesa-2.3.4/docs/images/Mesa_Screenshot.png +0 -0
  164. mesa-2.3.4/docs/index.md +0 -105
  165. mesa-2.3.4/docs/mesa.visualization.md +0 -46
  166. mesa-2.3.4/docs/mesa.visualization.modules.md +0 -76
  167. mesa-2.3.4/docs/modular-visualization.md +0 -249
  168. mesa-2.3.4/docs/overview.md +0 -146
  169. mesa-2.3.4/docs/packages.md +0 -110
  170. mesa-2.3.4/docs/tutorials/adv_tutorial_legacy.ipynb +0 -510
  171. mesa-2.3.4/docs/tutorials/visualization_tutorial.ipynb +0 -271
  172. mesa-2.3.4/mesa/agent.py +0 -377
  173. mesa-2.3.4/mesa/cookiecutter-mesa/cookiecutter.json +0 -8
  174. mesa-2.3.4/mesa/cookiecutter-mesa/hooks/post_gen_project.py +0 -11
  175. mesa-2.3.4/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/README.md +0 -4
  176. mesa-2.3.4/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/run.pytemplate +0 -3
  177. mesa-2.3.4/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/setup.pytemplate +0 -11
  178. mesa-2.3.4/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/{{cookiecutter.snake}}/model.pytemplate +0 -60
  179. mesa-2.3.4/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/{{cookiecutter.snake}}/server.pytemplate +0 -36
  180. mesa-2.3.4/mesa/experimental/__init__.py +0 -5
  181. mesa-2.3.4/mesa/experimental/cell_space/cell.py +0 -152
  182. mesa-2.3.4/mesa/experimental/cell_space/cell_agent.py +0 -37
  183. mesa-2.3.4/mesa/experimental/cell_space/cell_collection.py +0 -81
  184. mesa-2.3.4/mesa/experimental/cell_space/discrete_space.py +0 -64
  185. mesa-2.3.4/mesa/experimental/components/matplotlib.py +0 -136
  186. mesa-2.3.4/mesa/flat/__init__.py +0 -6
  187. mesa-2.3.4/mesa/flat/visualization.py +0 -5
  188. mesa-2.3.4/mesa/main.py +0 -63
  189. mesa-2.3.4/mesa/model.py +0 -163
  190. mesa-2.3.4/mesa/visualization/ModularVisualization.py +0 -1
  191. mesa-2.3.4/mesa/visualization/TextVisualization.py +0 -1
  192. mesa-2.3.4/mesa/visualization/UserParam.py +0 -1
  193. mesa-2.3.4/mesa/visualization/__init__.py +0 -7
  194. mesa-2.3.4/mesa/visualization/modules.py +0 -1
  195. mesa-2.3.4/tests/test_agent.py +0 -308
  196. mesa-2.3.4/tests/test_cell_space.py +0 -465
  197. mesa-2.3.4/tests/test_datacollector.py +0 -234
  198. mesa-2.3.4/tests/test_examples.py +0 -68
  199. mesa-2.3.4/tests/test_jupyter_viz.py +0 -153
  200. mesa-2.3.4/tests/test_main.py +0 -34
  201. mesa-2.3.4/tests/test_model.py +0 -53
  202. mesa-2.3.4/tests/test_scaffold.py +0 -22
  203. mesa-2.3.4/tests/test_tornado.py +0 -41
  204. mesa-2.3.4/tests/test_usersettableparam.py +0 -57
  205. mesa-2.3.4/tests/test_visualization.py +0 -105
  206. {mesa-2.3.4 → mesa-3.0.0}/.coveragerc +0 -0
  207. {mesa-2.3.4 → mesa-3.0.0}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  208. {mesa-2.3.4 → mesa-3.0.0}/.github/dependabot.yml +0 -0
  209. {mesa-2.3.4 → mesa-3.0.0}/CITATION.bib +0 -0
  210. {mesa-2.3.4 → mesa-3.0.0}/Dockerfile +0 -0
  211. {mesa-2.3.4 → mesa-3.0.0}/docker-compose.yml +0 -0
  212. {mesa-2.3.4 → mesa-3.0.0}/docs/Makefile +0 -0
  213. {mesa-2.3.4 → mesa-3.0.0}/docs/images/mesa_logo.ico +0 -0
  214. {mesa-2.3.4 → mesa-3.0.0}/docs/images/mesa_logo.png +0 -0
  215. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/br_ginis.png +0 -0
  216. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/dc_endwealth.png +0 -0
  217. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/dc_gini.png +0 -0
  218. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/dc_oneagent.png +0 -0
  219. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/first_hist.png +0 -0
  220. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/multirun_hist.png +0 -0
  221. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/numpy_grid.png +0 -0
  222. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/viz_chart.png +0 -0
  223. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/viz_empty.png +0 -0
  224. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/viz_greycircles.png +0 -0
  225. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/viz_histogram.png +0 -0
  226. {mesa-2.3.4 → mesa-3.0.0}/docs/images/tutorial/viz_redcircles.png +0 -0
  227. {mesa-2.3.4 → mesa-3.0.0}/docs/make.bat +0 -0
  228. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/files/viz_chart.png +0 -0
  229. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/files/viz_empty.png +0 -0
  230. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/files/viz_greycircles.png +0 -0
  231. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/files/viz_histogram.png +0 -0
  232. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/files/viz_redcircles.png +0 -0
  233. {mesa-2.3.4 → mesa-3.0.0}/docs/tutorials/files/viz_slider.png +0 -0
  234. {mesa-2.3.4/benchmarks/Flocking → mesa-3.0.0/mesa/examples/advanced}/__init__.py +0 -0
  235. {mesa-2.3.4/benchmarks/Schelling → mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence}/__init__.py +0 -0
  236. {mesa-2.3.4/benchmarks/WolfSheep → mesa-3.0.0/mesa/examples/advanced/pd_grid}/__init__.py +0 -0
  237. {mesa-2.3.4/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/{{cookiecutter.snake}} → mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt}/__init__.py +0 -0
  238. {mesa-2.3.4/tests → mesa-3.0.0/mesa/examples/advanced/wolf_sheep}/__init__.py +0 -0
  239. {mesa-2.3.4 → mesa-3.0.0}/mypy.ini +0 -0
  240. {mesa-2.3.4 → mesa-3.0.0}/tests/test_end_to_end_viz.sh +0 -0
@@ -6,3 +6,4 @@ inactivate
6
6
  ue
7
7
  fpr
8
8
  falsy
9
+ assertIn
@@ -11,7 +11,8 @@ about: Let us know if something is broken on Mesa
11
11
  <!-- A clear and concise description of what you expected to happen -->
12
12
 
13
13
  **To Reproduce**
14
- <!-- Steps to reproduce the bug, or a link to a project where the bug is visible -->
14
+ <!-- Steps to reproduce the bug, or a link to a project where the bug is visible
15
+ Include a Minimal reproducible example: https://stackoverflow.com/help/minimal-reproducible-example -->
15
16
 
16
17
  **Additional context**
17
18
  <!--
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Questions, ideas, showcases and more
4
+ url: https://github.com/projectmesa/mesa/discussions
5
+ about: Discuss Mesa, ask questions, share ideas, and showcase your projects
@@ -0,0 +1,16 @@
1
+ ## Summary
2
+ <!-- Provide a brief summary of the bug and its impact. -->
3
+
4
+ ## Bug / Issue
5
+ <!-- Link to the related issue(s) and describe the bug. Include details like the context, what was expected, and what actually happened. -->
6
+
7
+ ## Implementation
8
+ <!-- Describe the changes made to resolve the issue. Highlight any important parts of the code that were modified. -->
9
+
10
+ ## Testing
11
+ <!-- Detail the testing performed to verify the fix. Include information on test cases, steps taken, and any relevant results.
12
+
13
+ If you're fixing the visualisation, add before/after screenshots. -->
14
+
15
+ ## Additional Notes
16
+ <!-- Add any additional information that may be relevant for the reviewers, such as potential side effects, dependencies, or related work.
@@ -0,0 +1,16 @@
1
+ ## Summary
2
+ <!-- Provide a concise summary of the feature and its purpose. -->
3
+
4
+ ## Motive
5
+ <!-- Explain the reasoning behind this feature. Include details on the problem it addresses or the enhancement it provides. -->
6
+
7
+ ## Implementation
8
+ <!-- Describe how the feature was implemented. Include details on the approach taken, important decisions made, and code changes. -->
9
+
10
+ ## Usage Examples
11
+ <!-- Provide code snippets or examples demonstrating how to use the new feature. Highlight key scenarios where this feature will be beneficial.
12
+
13
+ If you're modifying the visualisation, add before/after screenshots. -->
14
+
15
+ ## Additional Notes
16
+ <!-- Add any additional information that may be relevant for the reviewers, such as potential side effects, dependencies, or related work. -->
@@ -0,0 +1,4 @@
1
+ Thanks for opening a PR! Please click the `Preview` tab and select a PR template:
2
+
3
+ - [🐛 Bug fix](?expand=1&template=bug.md)
4
+ - [🛠 Feature/enhancement](?expand=1&template=feature.md)
@@ -19,6 +19,9 @@ changelog:
19
19
  - title: 🐛 Bugs fixed
20
20
  labels:
21
21
  - bug
22
+ - title: 🔍 Examples updated
23
+ labels:
24
+ - example
22
25
  - title: 📜 Documentation improvements
23
26
  labels:
24
27
  - docs
@@ -25,7 +25,7 @@ jobs:
25
25
  - name: Set up Python
26
26
  uses: actions/setup-python@v5
27
27
  with:
28
- python-version: '3.12'
28
+ python-version: '3.13'
29
29
  - name: Add project directory to PYTHONPATH
30
30
  run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)" >> $GITHUB_ENV
31
31
  - name: Install dependencies
@@ -31,14 +31,14 @@ jobs:
31
31
  fail-fast: False
32
32
  matrix:
33
33
  os: [windows, ubuntu, macos]
34
- python-version: ["3.12"]
34
+ python-version: ["3.13"]
35
35
  include:
36
+ - os: ubuntu
37
+ python-version: "3.12"
36
38
  - os: ubuntu
37
39
  python-version: "3.11"
38
40
  - os: ubuntu
39
41
  python-version: "3.10"
40
- - os: ubuntu
41
- python-version: "3.9"
42
42
  # Disabled for now. See https://github.com/projectmesa/mesa/issues/1253
43
43
  #- os: ubuntu
44
44
  # python-version: 'pypy-3.8'
@@ -49,17 +49,20 @@ jobs:
49
49
  uses: actions/setup-python@v5
50
50
  with:
51
51
  python-version: ${{ matrix.python-version }}
52
+ allow-prereleases: true
52
53
  cache: 'pip'
53
54
  - name: Install uv
54
55
  run: pip install uv
55
- - name: Install Mesa
56
- # See https://github.com/astral-sh/uv/issues/1945
56
+ - name: Install Mesa and dependencies
57
57
  run: uv pip install --system .[dev]
58
58
  - name: Test with pytest
59
59
  run: pytest --durations=10 --cov=mesa tests/ --cov-report=xml
60
60
  - if: matrix.os == 'ubuntu'
61
61
  name: Codecov
62
62
  uses: codecov/codecov-action@v4
63
+ with:
64
+ fail_ci_if_error: true
65
+ token: ${{ secrets.CODECOV_TOKEN }}
63
66
 
64
67
  examples:
65
68
  runs-on: ubuntu-latest
@@ -68,19 +71,19 @@ jobs:
68
71
  - name: Set up Python
69
72
  uses: actions/setup-python@v5
70
73
  with:
71
- python-version: "3.12"
74
+ python-version: "3.13"
75
+ allow-prereleases: true
72
76
  cache: 'pip'
73
77
  - name: Install uv
74
78
  run: pip install uv
75
79
  - name: Install Mesa
76
- run: uv pip install --system .[dev]
80
+ run: uv pip install --system .[examples]
77
81
  - name: Checkout mesa-examples
78
82
  uses: actions/checkout@v4
79
83
  with:
80
84
  repository: projectmesa/mesa-examples
81
85
  path: mesa-examples
82
- ref: mesa-2.x # Legacy branch for mesa-examples that work with Mesa 2.x
83
86
  - name: Test examples
84
87
  run: |
85
88
  cd mesa-examples
86
- pytest test_examples.py
89
+ pytest -rA -Werror -Wdefault::FutureWarning test_examples.py
@@ -32,7 +32,8 @@ jobs:
32
32
  - name: Set up Python
33
33
  uses: actions/setup-python@v5
34
34
  with:
35
- python-version: "3.12"
35
+ python-version: "3.13"
36
+ allow-prereleases: true
36
37
  cache: 'pip'
37
38
  - name: Install dependencies
38
39
  run: pip install -U pip hatch
@@ -1,6 +1,10 @@
1
1
  # Benchmarking
2
2
  benchmarks/**/*.pickle
3
3
 
4
+ # exampledocs
5
+ docs/examples/*
6
+ docs/example.md
7
+
4
8
  # Byte-compiled / optimized / DLL files
5
9
  __pycache__/
6
10
  *.py[cod]
@@ -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.3.5
7
+ rev: v0.7.2
8
8
  hooks:
9
9
  # Run the linter.
10
10
  - id: ruff
@@ -14,18 +14,18 @@ repos:
14
14
  - id: ruff-format
15
15
  types_or: [ python, pyi, jupyter ]
16
16
  - repo: https://github.com/asottile/pyupgrade
17
- rev: v3.15.2
17
+ rev: v3.19.0
18
18
  hooks:
19
19
  - id: pyupgrade
20
- args: [--py38-plus]
20
+ args: [--py310-plus]
21
21
  - repo: https://github.com/pre-commit/pre-commit-hooks
22
- rev: v4.5.0 # Use the ref you want to point at
22
+ rev: v5.0.0 # Use the ref you want to point at
23
23
  hooks:
24
24
  - id: trailing-whitespace
25
25
  - id: check-toml
26
26
  - id: check-yaml
27
27
  - repo: https://github.com/codespell-project/codespell
28
- rev: v2.2.6
28
+ rev: v2.3.0
29
29
  hooks:
30
30
  - id: codespell
31
31
  args: [
@@ -1,5 +1,5 @@
1
1
  # Read the Docs configuration file
2
- # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
2
+ # See https://docs.readthedocs.io/stable/config-file/v2.html for details
3
3
 
4
4
  # Required
5
5
  version: 2
@@ -5,7 +5,7 @@
5
5
  We as members, contributors, and leaders pledge to make participation in our
6
6
  community a harassment-free experience for everyone, regardless of age, body
7
7
  size, visible or invisible disability, ethnicity, sex characteristics, gender
8
- identity and expression, level of experience, education, socio-economic status,
8
+ identity and expression, level of experience, education, socioeconomic status,
9
9
  nationality, personal appearance, race, caste, color, religion, or sexual
10
10
  identity and orientation.
11
11
 
@@ -53,7 +53,7 @@ Learn the tools, talk to us about what you want to change, and open a small PR.
53
53
  Awesome! You have the basics of open-source software development (if not check above), but not much modelling experience.
54
54
 
55
55
  First step is to start thinking like a modeller. To understand the fine details about our library and contribute meaningfully, get some modelling experience:
56
- - Go though our [Introductory Tutorial](https://mesa.readthedocs.io/en/latest/tutorials/intro_tutorial.html) and [Visualization Tutorial](https://mesa.readthedocs.io/en/latest/tutorials/visualization_tutorial.html). While going through them, dive into the source code to really see what everything does.
56
+ - Go though our [Introductory Tutorial](https://mesa.readthedocs.io/latest/tutorials/intro_tutorial.html) and [Visualization Tutorial](https://mesa.readthedocs.io/latest/tutorials/visualization_tutorial.html). While going through them, dive into the source code to really see what everything does.
57
57
  - Follow an ABM course (if possible). They might be a bit outdated programming language wise, but conceptual they're sound.
58
58
  - This MOOC on ABM concepts: [Agent Based Modeling](https://ocw.tudelft.nl/course-lectures/agent-based-modeling/)
59
59
  - This MOOC on practical ABM modelling: [Agent-Based Models with Python: An Introduction to Mesa](https://www.complexityexplorer.org/courses/172-agent-based-models-with-python-an-introduction-to-mesa)
@@ -119,6 +119,24 @@ 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
123
+ Some notes useful for Mesa maintainers.
124
+
125
+ ### Releases
126
+ To create a new release, follow these steps:
127
+
128
+ 1. Ensure all pull requests (PRs) have a clear title and are labeled with at least one label. Check [this link](https://github.com/projectmesa/mesa/pulls?q=is%3Apr+is%3Amerged+no%3Alabel+merged%3A%3E%3D2024-03-01+) to see if all PRs are labeled. These labels will be used when drafting the changelog using the [`.github/release.yml`](https://github.com/projectmesa/mesa/blob/main/.github/release.yml) configuration.
129
+ 2. Navigate to the [Releases](https://github.com/projectmesa/mesa/releases) section in the GitHub UI and click the _Draft a new release_ button.
130
+ 3. Specify the upcoming tag in the _Choose a tag_ and _Release title_ fields (e.g., `v3.0.0`).
131
+ - For pre-releases, add a `a`, `b` or `rc` and a number behind the version tag (see [Versioning](https://packaging.python.org/en/latest/discussions/versioning/)), and check the box _Set as a pre-release_.
132
+ 4. Use the _Generate release notes_ button to automatically create release notes. Review them carefully for accuracy, and update labels and edit PR titles if necessary (step 1).
133
+ 5. Write a _Highlights_ section summarizing the most important features or changes in this release.
134
+ 6. Copy the release notes and save them by clicking the grey _Save draft_ button.
135
+ 7. Open a new PR to update the version number in [`mesa/__init__.py`](https://github.com/projectmesa/mesa/blob/main/mesa/__init__.py) and add the copied release notes to the [`HISTORY.md`](https://github.com/projectmesa/mesa/blob/main/HISTORY.md).
136
+ 8. Once this PR is merged, return to the _Releases_ section and publish the draft release.
137
+ 9. The [`release.yml`](https://github.com/projectmesa/mesa/blob/main/.github/workflows/release.yml) CI workflow should automatically create and upload the package to PyPI. Verify this on [PyPI.org](https://pypi.org/project/mesa/).
138
+ 10. Finally, after release, open a new PR to update the version number in [`mesa/__init__.py`](https://github.com/projectmesa/mesa/blob/main/mesa/__init__.py) for the next release (e.g., `"3.1.0.dev"`).
139
+
122
140
  ## Special Thanks
123
141
 
124
142
  A special thanks to the following projects who offered inspiration for this contributing file.