Mesa 3.0.3__tar.gz → 3.1.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 (196) hide show
  1. {mesa-3.0.3 → mesa-3.1.0}/.codespellignore +1 -0
  2. {mesa-3.0.3 → mesa-3.1.0}/.github/PULL_REQUEST_TEMPLATE/bug.md +5 -5
  3. {mesa-3.0.3 → mesa-3.1.0}/.github/PULL_REQUEST_TEMPLATE/feature.md +5 -5
  4. {mesa-3.0.3 → mesa-3.1.0}/.github/workflows/build_lint.yml +1 -3
  5. {mesa-3.0.3 → mesa-3.1.0}/.pre-commit-config.yaml +2 -2
  6. {mesa-3.0.3 → mesa-3.1.0}/Dockerfile +8 -9
  7. {mesa-3.0.3 → mesa-3.1.0}/HISTORY.md +57 -0
  8. {mesa-3.0.3 → mesa-3.1.0}/PKG-INFO +3 -4
  9. {mesa-3.0.3 → mesa-3.1.0}/README.md +1 -1
  10. {mesa-3.0.3 → mesa-3.1.0}/codecov.yaml +0 -1
  11. {mesa-3.0.3 → mesa-3.1.0}/docker-compose.yml +1 -1
  12. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/api_main.md +1 -0
  13. mesa-3.0.3/docs/apis/time.md → mesa-3.1.0/docs/apis/mesa_logging.md +2 -2
  14. {mesa-3.0.3 → mesa-3.1.0}/docs/index.md +4 -0
  15. {mesa-3.0.3 → mesa-3.1.0}/docs/mesa.md +0 -10
  16. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/intro_tutorial.ipynb +79 -80
  17. {mesa-3.0.3 → mesa-3.1.0}/mesa/__init__.py +4 -6
  18. {mesa-3.0.3 → mesa-3.1.0}/mesa/agent.py +48 -25
  19. {mesa-3.0.3 → mesa-3.1.0}/mesa/batchrunner.py +14 -1
  20. {mesa-3.0.3 → mesa-3.1.0}/mesa/datacollection.py +1 -6
  21. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/epstein_civil_violence/app.py +5 -0
  22. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/pd_grid/app.py +5 -0
  23. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/app.py +7 -2
  24. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boid_flockers/app.py +5 -0
  25. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boltzmann_wealth_model/app.py +8 -5
  26. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boltzmann_wealth_model/st_app.py +1 -1
  27. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/conways_game_of_life/app.py +5 -0
  28. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/conways_game_of_life/st_app.py +2 -2
  29. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/schelling/app.py +5 -0
  30. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/virus_on_network/app.py +5 -0
  31. mesa-3.1.0/mesa/experimental/__init__.py +20 -0
  32. mesa-3.1.0/mesa/experimental/cell_space/__init__.py +50 -0
  33. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/cell.py +22 -37
  34. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/cell_agent.py +12 -1
  35. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/cell_collection.py +14 -1
  36. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/discrete_space.py +15 -64
  37. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/grid.py +74 -4
  38. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/network.py +13 -1
  39. mesa-3.1.0/mesa/experimental/cell_space/property_layer.py +444 -0
  40. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/cell_space/voronoi.py +13 -1
  41. mesa-3.1.0/mesa/experimental/devs/__init__.py +24 -0
  42. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/devs/eventlist.py +19 -1
  43. {mesa-3.0.3 → mesa-3.1.0}/mesa/experimental/devs/simulator.py +24 -8
  44. mesa-3.1.0/mesa/experimental/mesa_signals/__init__.py +23 -0
  45. mesa-3.1.0/mesa/experimental/mesa_signals/mesa_signal.py +485 -0
  46. mesa-3.1.0/mesa/experimental/mesa_signals/observable_collections.py +133 -0
  47. mesa-3.1.0/mesa/experimental/mesa_signals/signals_util.py +52 -0
  48. mesa-3.1.0/mesa/mesa_logging.py +190 -0
  49. {mesa-3.0.3 → mesa-3.1.0}/mesa/model.py +17 -74
  50. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/mpl_space_drawing.py +2 -2
  51. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/solara_viz.py +12 -0
  52. {mesa-3.0.3 → mesa-3.1.0}/pyproject.toml +3 -4
  53. {mesa-3.0.3 → mesa-3.1.0}/tests/test_agent.py +24 -0
  54. {mesa-3.0.3 → mesa-3.1.0}/tests/test_batch_run.py +31 -0
  55. {mesa-3.0.3 → mesa-3.1.0}/tests/test_cell_space.py +237 -59
  56. {mesa-3.0.3 → mesa-3.1.0}/tests/test_components_matplotlib.py +1 -1
  57. {mesa-3.0.3 → mesa-3.1.0}/tests/test_import_namespace.py +0 -5
  58. mesa-3.1.0/tests/test_mesa_logging.py +47 -0
  59. mesa-3.1.0/tests/test_mesa_signals.py +290 -0
  60. mesa-3.0.3/mesa/experimental/UserParam.py +0 -67
  61. mesa-3.0.3/mesa/experimental/__init__.py +0 -13
  62. mesa-3.0.3/mesa/experimental/cell_space/__init__.py +0 -38
  63. mesa-3.0.3/mesa/experimental/components/altair.py +0 -81
  64. mesa-3.0.3/mesa/experimental/components/matplotlib.py +0 -242
  65. mesa-3.0.3/mesa/experimental/devs/__init__.py +0 -6
  66. mesa-3.0.3/mesa/experimental/devs/examples/epstein_civil_violence.py +0 -305
  67. mesa-3.0.3/mesa/experimental/devs/examples/wolf_sheep.py +0 -250
  68. mesa-3.0.3/mesa/experimental/solara_viz.py +0 -453
  69. mesa-3.0.3/mesa/time.py +0 -391
  70. mesa-3.0.3/tests/test_time.py +0 -317
  71. {mesa-3.0.3 → mesa-3.1.0}/.coveragerc +0 -0
  72. {mesa-3.0.3 → mesa-3.1.0}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  73. {mesa-3.0.3 → mesa-3.1.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  74. {mesa-3.0.3 → mesa-3.1.0}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  75. {mesa-3.0.3 → mesa-3.1.0}/.github/dependabot.yml +0 -0
  76. {mesa-3.0.3 → mesa-3.1.0}/.github/pull_request_template.md +0 -0
  77. {mesa-3.0.3 → mesa-3.1.0}/.github/release.yml +0 -0
  78. {mesa-3.0.3 → mesa-3.1.0}/.github/workflows/benchmarks.yml +0 -0
  79. {mesa-3.0.3 → mesa-3.1.0}/.github/workflows/release.yml +0 -0
  80. {mesa-3.0.3 → mesa-3.1.0}/.gitignore +0 -0
  81. {mesa-3.0.3 → mesa-3.1.0}/.readthedocs.yml +0 -0
  82. {mesa-3.0.3 → mesa-3.1.0}/CITATION.bib +0 -0
  83. {mesa-3.0.3 → mesa-3.1.0}/CODE_OF_CONDUCT.md +0 -0
  84. {mesa-3.0.3 → mesa-3.1.0}/CONTRIBUTING.md +0 -0
  85. {mesa-3.0.3 → mesa-3.1.0}/LICENSE +0 -0
  86. {mesa-3.0.3 → mesa-3.1.0}/NOTICE +0 -0
  87. {mesa-3.0.3 → mesa-3.1.0}/benchmarks/compare_timings.py +0 -0
  88. {mesa-3.0.3 → mesa-3.1.0}/benchmarks/configurations.py +0 -0
  89. {mesa-3.0.3 → mesa-3.1.0}/benchmarks/global_benchmark.py +4 -4
  90. {mesa-3.0.3 → mesa-3.1.0}/binder/environment.yml +0 -0
  91. {mesa-3.0.3 → mesa-3.1.0}/docs/Makefile +0 -0
  92. {mesa-3.0.3 → mesa-3.1.0}/docs/README.md +0 -0
  93. {mesa-3.0.3 → mesa-3.1.0}/docs/_static/switcher.json +0 -0
  94. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/agent.md +0 -0
  95. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/batchrunner.md +0 -0
  96. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/datacollection.md +0 -0
  97. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/experimental.md +0 -0
  98. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/model.md +0 -0
  99. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/space.md +0 -0
  100. {mesa-3.0.3 → mesa-3.1.0}/docs/apis/visualization.md +0 -0
  101. {mesa-3.0.3 → mesa-3.1.0}/docs/best-practices.md +0 -0
  102. {mesa-3.0.3 → mesa-3.1.0}/docs/conf.py +0 -0
  103. {mesa-3.0.3 → mesa-3.1.0}/docs/example_template.txt +0 -0
  104. {mesa-3.0.3 → mesa-3.1.0}/docs/examples_overview_template.txt +0 -0
  105. {mesa-3.0.3 → mesa-3.1.0}/docs/getting_started.md +0 -0
  106. {mesa-3.0.3 → mesa-3.1.0}/docs/images/mesa_logo.ico +0 -0
  107. {mesa-3.0.3 → mesa-3.1.0}/docs/images/mesa_logo.png +0 -0
  108. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/br_ginis.png +0 -0
  109. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/dc_endwealth.png +0 -0
  110. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/dc_gini.png +0 -0
  111. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/dc_oneagent.png +0 -0
  112. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/first_hist.png +0 -0
  113. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/multirun_hist.png +0 -0
  114. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/numpy_grid.png +0 -0
  115. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/viz_chart.png +0 -0
  116. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/viz_empty.png +0 -0
  117. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/viz_greycircles.png +0 -0
  118. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/viz_histogram.png +0 -0
  119. {mesa-3.0.3 → mesa-3.1.0}/docs/images/tutorial/viz_redcircles.png +0 -0
  120. {mesa-3.0.3 → mesa-3.1.0}/docs/images/wolf_sheep.png +0 -0
  121. {mesa-3.0.3 → mesa-3.1.0}/docs/make.bat +0 -0
  122. {mesa-3.0.3 → mesa-3.1.0}/docs/migration_guide.md +0 -0
  123. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/MoneyModel.py +0 -0
  124. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/files/viz_chart.png +0 -0
  125. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/files/viz_empty.png +0 -0
  126. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/files/viz_greycircles.png +0 -0
  127. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/files/viz_histogram.png +0 -0
  128. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/files/viz_redcircles.png +0 -0
  129. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/files/viz_slider.png +0 -0
  130. {mesa-3.0.3 → mesa-3.1.0}/docs/tutorials/visualization_tutorial.ipynb +0 -0
  131. {mesa-3.0.3 → mesa-3.1.0}/maintenance/fetch_unlabeled_prs.py +0 -0
  132. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/README.md +0 -0
  133. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/__init__.py +2 -2
  134. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/__init__.py +0 -0
  135. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +0 -0
  136. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/epstein_civil_violence/Readme.md +0 -0
  137. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/epstein_civil_violence/__init__.py +0 -0
  138. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/epstein_civil_violence/agents.py +0 -0
  139. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/epstein_civil_violence/model.py +0 -0
  140. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/pd_grid/Readme.md +0 -0
  141. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/pd_grid/__init__.py +0 -0
  142. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/pd_grid/agents.py +0 -0
  143. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/pd_grid/analysis.ipynb +0 -0
  144. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/pd_grid/model.py +0 -0
  145. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/Readme.md +0 -0
  146. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/__init__.py +0 -0
  147. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/agents.py +0 -0
  148. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/model.py +0 -0
  149. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +0 -0
  150. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/sugarscape_g1mt/tests.py +0 -0
  151. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/wolf_sheep/Readme.md +0 -0
  152. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/wolf_sheep/__init__.py +0 -0
  153. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/wolf_sheep/agents.py +0 -0
  154. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/wolf_sheep/app.py +0 -0
  155. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/advanced/wolf_sheep/model.py +0 -0
  156. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/__init__.py +0 -0
  157. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boid_flockers/Readme.md +0 -0
  158. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boid_flockers/__init__.py +0 -0
  159. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boid_flockers/agents.py +0 -0
  160. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boid_flockers/model.py +0 -0
  161. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boltzmann_wealth_model/Readme.md +0 -0
  162. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
  163. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boltzmann_wealth_model/agents.py +0 -0
  164. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/boltzmann_wealth_model/model.py +0 -0
  165. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/conways_game_of_life/Readme.md +0 -0
  166. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
  167. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/conways_game_of_life/agents.py +0 -0
  168. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/conways_game_of_life/model.py +0 -0
  169. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/schelling/Readme.md +0 -0
  170. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/schelling/__init__.py +0 -0
  171. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/schelling/agents.py +0 -0
  172. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/schelling/analysis.ipynb +0 -0
  173. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/schelling/model.py +0 -0
  174. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/virus_on_network/Readme.md +0 -0
  175. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/virus_on_network/__init__.py +0 -0
  176. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/virus_on_network/agents.py +0 -0
  177. {mesa-3.0.3 → mesa-3.1.0}/mesa/examples/basic/virus_on_network/model.py +0 -0
  178. {mesa-3.0.3 → mesa-3.1.0}/mesa/space.py +0 -0
  179. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/__init__.py +2 -2
  180. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/components/__init__.py +0 -0
  181. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/components/altair_components.py +0 -0
  182. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/components/matplotlib_components.py +0 -0
  183. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/user_param.py +0 -0
  184. {mesa-3.0.3 → mesa-3.1.0}/mesa/visualization/utils.py +0 -0
  185. {mesa-3.0.3 → mesa-3.1.0}/mypy.ini +0 -0
  186. {mesa-3.0.3 → mesa-3.1.0}/tests/__init__.py +0 -0
  187. {mesa-3.0.3 → mesa-3.1.0}/tests/read_requirements.py +0 -0
  188. {mesa-3.0.3 → mesa-3.1.0}/tests/test_datacollector.py +0 -0
  189. {mesa-3.0.3 → mesa-3.1.0}/tests/test_devs.py +0 -0
  190. {mesa-3.0.3 → mesa-3.1.0}/tests/test_end_to_end_viz.sh +0 -0
  191. {mesa-3.0.3 → mesa-3.1.0}/tests/test_examples.py +0 -0
  192. {mesa-3.0.3 → mesa-3.1.0}/tests/test_grid.py +0 -0
  193. {mesa-3.0.3 → mesa-3.1.0}/tests/test_lifespan.py +0 -0
  194. {mesa-3.0.3 → mesa-3.1.0}/tests/test_model.py +0 -0
  195. {mesa-3.0.3 → mesa-3.1.0}/tests/test_solara_viz.py +0 -0
  196. {mesa-3.0.3 → mesa-3.1.0}/tests/test_space.py +0 -0
@@ -7,3 +7,4 @@ ue
7
7
  fpr
8
8
  falsy
9
9
  assertIn
10
+ nD
@@ -1,16 +1,16 @@
1
- ## Summary
1
+ ### Summary
2
2
  <!-- Provide a brief summary of the bug and its impact. -->
3
3
 
4
- ## Bug / Issue
4
+ ### Bug / Issue
5
5
  <!-- Link to the related issue(s) and describe the bug. Include details like the context, what was expected, and what actually happened. -->
6
6
 
7
- ## Implementation
7
+ ### Implementation
8
8
  <!-- Describe the changes made to resolve the issue. Highlight any important parts of the code that were modified. -->
9
9
 
10
- ## Testing
10
+ ### Testing
11
11
  <!-- Detail the testing performed to verify the fix. Include information on test cases, steps taken, and any relevant results.
12
12
 
13
13
  If you're fixing the visualisation, add before/after screenshots. -->
14
14
 
15
- ## Additional Notes
15
+ ### Additional Notes
16
16
  <!-- Add any additional information that may be relevant for the reviewers, such as potential side effects, dependencies, or related work.
@@ -1,16 +1,16 @@
1
- ## Summary
1
+ ### Summary
2
2
  <!-- Provide a concise summary of the feature and its purpose. -->
3
3
 
4
- ## Motive
4
+ ### Motive
5
5
  <!-- Explain the reasoning behind this feature. Include details on the problem it addresses or the enhancement it provides. -->
6
6
 
7
- ## Implementation
7
+ ### Implementation
8
8
  <!-- Describe how the feature was implemented. Include details on the approach taken, important decisions made, and code changes. -->
9
9
 
10
- ## Usage Examples
10
+ ### Usage Examples
11
11
  <!-- Provide code snippets or examples demonstrating how to use the new feature. Highlight key scenarios where this feature will be beneficial.
12
12
 
13
13
  If you're modifying the visualisation, add before/after screenshots. -->
14
14
 
15
- ## Additional Notes
15
+ ### Additional Notes
16
16
  <!-- Add any additional information that may be relevant for the reviewers, such as potential side effects, dependencies, or related work. -->
@@ -37,8 +37,6 @@ jobs:
37
37
  python-version: "3.12"
38
38
  - os: ubuntu
39
39
  python-version: "3.11"
40
- - os: ubuntu
41
- python-version: "3.10"
42
40
  # Disabled for now. See https://github.com/projectmesa/mesa/issues/1253
43
41
  #- os: ubuntu
44
42
  # python-version: 'pypy-3.8'
@@ -59,7 +57,7 @@ jobs:
59
57
  run: pytest --durations=10 --cov=mesa tests/ --cov-report=xml
60
58
  - if: matrix.os == 'ubuntu'
61
59
  name: Codecov
62
- uses: codecov/codecov-action@v4
60
+ uses: codecov/codecov-action@v5
63
61
  with:
64
62
  fail_ci_if_error: true
65
63
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -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.7.2
7
+ rev: v0.8.1
8
8
  hooks:
9
9
  # Run the linter.
10
10
  - id: ruff
@@ -17,7 +17,7 @@ repos:
17
17
  rev: v3.19.0
18
18
  hooks:
19
19
  - id: pyupgrade
20
- args: [--py310-plus]
20
+ args: [--py311-plus]
21
21
  - repo: https://github.com/pre-commit/pre-commit-hooks
22
22
  rev: v5.0.0 # Use the ref you want to point at
23
23
  hooks:
@@ -1,14 +1,12 @@
1
1
  # We can't use slim because we need either git/wget/curl to
2
2
  # download mesa-examples, and so installing them requires
3
3
  # updating the system anyway.
4
- # We can't use alpine because NumPy doesn't support musllinux yet.
5
- # But it's in the RC version https://github.com/numpy/numpy/issues/20089.
6
4
  FROM python:bookworm
7
- LABEL maintainer="rht <rhtbot@protonmail.com>"
5
+ LABEL maintainer="projectmesa maintainers@projectmesa.dev"
8
6
 
9
7
  # To use this Dockerfile:
10
- # 1. `docker build . -t mymesa_image`
11
- # 2. `docker run --name mymesa_instance -p 8765:8765 -it mymesa_image`
8
+ # 1. `docker build . -t mesa_image`
9
+ # 2. `docker run --name mesa_instance -p 8765:8765 -it mesa_image`
12
10
  # 3. In your browser, visit http://127.0.0.1:8765
13
11
  #
14
12
  # Currently, this Dockerfile defaults to running the Schelling model, as an
@@ -19,7 +17,7 @@ LABEL maintainer="rht <rhtbot@protonmail.com>"
19
17
  # `docker run --name mymesa_instance -p 8765:8765 -e MODEL_DIR=/mesa-examples/examples/sugarscape_cg -it mymesa_image`
20
18
  # Note: the model directory MUST contain an app.py file.
21
19
 
22
- ENV MODEL_DIR=/mesa-examples/examples/schelling_experimental
20
+ ENV MODEL_DIR=/opt/mesa/mesa/examples/basic/schelling
23
21
 
24
22
  # Don't buffer output:
25
23
  # https://docs.python.org/3.10/using/cmdline.html?highlight=pythonunbuffered#envvar-PYTHONUNBUFFERED
@@ -29,10 +27,11 @@ WORKDIR /opt/mesa
29
27
 
30
28
  COPY . /opt/mesa
31
29
 
32
- RUN cd / && git clone https://github.com/projectmesa/mesa-examples.git
33
-
34
30
  EXPOSE 8765/tcp
35
31
 
36
- RUN pip3 install -e /opt/mesa
32
+ RUN pip3 install -e /opt/mesa[rec]
37
33
 
38
34
  CMD ["sh", "-c", "cd $MODEL_DIR && solara run app.py --host=0.0.0.0"]
35
+
36
+ # To check file system:
37
+ # docker exec -it mesa_instance bash
@@ -1,6 +1,63 @@
1
1
  ---
2
2
  title: Release History
3
3
  ---
4
+ # 3.1.0 (2024-12-04)
5
+ ## Highlights
6
+ With Mesa 3.1.0 we're back on our regular release schedule after the big Mesa 3.0 release, with some exciting new features.
7
+
8
+ This release adds experimental support for Observables and Computed, enabling a more reactive and responsive programming model for agent-based simulations. The new `Observable` and `Computable` classes allow developers to declaratively define attributes that automatically emit signals when their values change, and compute derived values that update dynamically. This lays the groundwork for more advanced event handling and data visualization features in future releases (#2291).
9
+
10
+ The experimental cell space module has been updated with full support for n-dimensional property layers. These allow agents to easily interact with and modify spatial properties of the environment, such as terrain, resources, or environmental conditions. The new implementation provides a more intuitive attribute-based API and ensures tight integration with the cell space architecture (#2512).
11
+
12
+ Mesa now includes built-in support for logging using the standard Python `logging` module. This provides developers with a flexible and powerful way to add structured diagnostic and debug output to their simulations, without the need for custom logging solutions. The logging system is integrated throughout the library, including the new SolaraViz visualization system (#2506).
13
+
14
+ Creating multiple agents with varying initialization parameters is now significantly easier with the new `Agent.create_agents` class method. This factory function supports both uniform and per-agent parameters, simplifying the code required to set up a simulation with a large number of heterogeneous agents (#2351).
15
+
16
+ In addition to the major new features, this release includes a number of smaller enhancements and bug fixes that improve the overall developer experience. These include removing deprecated functionality, cleaning up examples, and addressing various edge cases reported by the community. Mesa 3.1 requires Python 3.11 or higher.
17
+
18
+ ## What's Changed
19
+ ### 🧪 Experimental features
20
+ * Add support for Observables to MESA by @quaquel in https://github.com/projectmesa/mesa/pull/2291
21
+ * Add full support for property layers to cell spaces by @quaquel in https://github.com/projectmesa/mesa/pull/2512
22
+ ### 🎉 New features added
23
+ * Add logging to MESA by @quaquel in https://github.com/projectmesa/mesa/pull/2506
24
+ * Add `create_agents` factory method to Agent by @quaquel in https://github.com/projectmesa/mesa/pull/2351
25
+ ### 🔍 Examples updated
26
+ * Add seed control to all examples by @quaquel in https://github.com/projectmesa/mesa/pull/2496
27
+ ### 📜 Documentation improvements
28
+ * doc fix for pip install error on mac by @quaquel in https://github.com/projectmesa/mesa/pull/2508
29
+ * Refactored docs for Introductory Tutorial by @Spartan-71 in https://github.com/projectmesa/mesa/pull/2511
30
+ * Add module-level docstring to experimental features by @EwoutH in https://github.com/projectmesa/mesa/pull/2532
31
+ ### 🔧 Maintenance
32
+ * Remove deprecated time module by @EwoutH in https://github.com/projectmesa/mesa/pull/2476
33
+ * Drop support for Python 3.10, require Python >= 3.11 by @EwoutH in https://github.com/projectmesa/mesa/pull/2474
34
+ * Remove deprecated functionality by @EwoutH in https://github.com/projectmesa/mesa/pull/2483
35
+ * Remove visualization modules from `mesa.experimental` by @quaquel in https://github.com/projectmesa/mesa/pull/2495
36
+ * Cleanup two occurrences of removed scheduler by @EwoutH in https://github.com/projectmesa/mesa/pull/2499
37
+ * move _setup_agent_registration into `Model.__init__` by @quaquel in https://github.com/projectmesa/mesa/pull/2501
38
+ * remove devs related examples from devs/examples by @quaquel in https://github.com/projectmesa/mesa/pull/2507
39
+ * added empty iterable checks and updated tests by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2523
40
+ * Fix: running Mesa in Docker with Schelling model by @AdamZh0u in https://github.com/projectmesa/mesa/pull/2524
41
+
42
+ ## New Contributors
43
+ * @Spartan-71 made their first contribution in https://github.com/projectmesa/mesa/pull/2511
44
+ * @Sahil-Chhoker made their first contribution in https://github.com/projectmesa/mesa/pull/2523
45
+ * @AdamZh0u made their first contribution in https://github.com/projectmesa/mesa/pull/2524
46
+
47
+ **Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.0.3...v3.1.0
48
+
49
+ # 3.0.3 (2024-11-14)
50
+ ## Highlights
51
+ A small bugfix release that fixes two bugs.
52
+
53
+ ## What's Changed
54
+ ### 🧪 Experimental features
55
+ * cell_space: Allow CellCollection to be empty by @EwoutH in https://github.com/projectmesa/mesa/pull/2502
56
+ ### 🐛 Bugs fixed
57
+ * Only set model_parameters once by @Corvince in https://github.com/projectmesa/mesa/pull/2505
58
+
59
+ **Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.0.2...v3.0.3
60
+
4
61
  # 3.0.2 (2024-11-11)
5
62
  ## Highlighst
6
63
  Mesa 3.0.2 is a small follow-up patch release, in which we fixed a lot of small bugs in the example models their visualisation, and improved their testing.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: Mesa
3
- Version: 3.0.3
3
+ Version: 3.1.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
@@ -13,14 +13,13 @@ Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Natural Language :: English
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Programming Language :: Python :: 3 :: Only
16
- Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3.13
20
19
  Classifier: Topic :: Scientific/Engineering
21
20
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
21
  Classifier: Topic :: Scientific/Engineering :: Artificial Life
23
- Requires-Python: >=3.10
22
+ Requires-Python: >=3.11
24
23
  Requires-Dist: numpy
25
24
  Requires-Dist: pandas
26
25
  Requires-Dist: tqdm
@@ -81,7 +80,7 @@ Description-Content-Type: text/markdown
81
80
  | --- | --- |
82
81
  | CI/CD | [![GitHub Actions build status](https://github.com/projectmesa/mesa/workflows/build/badge.svg)](https://github.com/projectmesa/mesa/actions) [![Coverage status](https://codecov.io/gh/projectmesa/mesa/branch/main/graph/badge.svg)](https://codecov.io/gh/projectmesa/mesa) |
83
82
  | Package | [![PyPI - Version](https://img.shields.io/pypi/v/mesa.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/Mesa/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/mesa.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pypi.org/project/Mesa/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mesa.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/Mesa/) |
84
- | Meta | [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) |
83
+ | Meta | [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) [![SPEC 0 — Minimum Supported Dependencies](https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038)](https://scientific-python.org/specs/spec-0000/) |
85
84
  | Chat | [![chat](https://img.shields.io/matrix/project-mesa:matrix.org?label=chat&logo=Matrix)](https://matrix.to/#/#project-mesa:matrix.org) |
86
85
 
87
86
  Mesa allows users to quickly create agent-based models using built-in
@@ -4,7 +4,7 @@
4
4
  | --- | --- |
5
5
  | CI/CD | [![GitHub Actions build status](https://github.com/projectmesa/mesa/workflows/build/badge.svg)](https://github.com/projectmesa/mesa/actions) [![Coverage status](https://codecov.io/gh/projectmesa/mesa/branch/main/graph/badge.svg)](https://codecov.io/gh/projectmesa/mesa) |
6
6
  | Package | [![PyPI - Version](https://img.shields.io/pypi/v/mesa.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/Mesa/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/mesa.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pypi.org/project/Mesa/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mesa.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/Mesa/) |
7
- | Meta | [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) |
7
+ | Meta | [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) [![SPEC 0 — Minimum Supported Dependencies](https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038)](https://scientific-python.org/specs/spec-0000/) |
8
8
  | Chat | [![chat](https://img.shields.io/matrix/project-mesa:matrix.org?label=chat&logo=Matrix)](https://matrix.to/#/#project-mesa:matrix.org) |
9
9
 
10
10
  Mesa allows users to quickly create agent-based models using built-in
@@ -7,7 +7,6 @@ coverage:
7
7
 
8
8
  ignore:
9
9
  - "benchmarks/**"
10
- - "mesa/experimental/**"
11
10
  - "mesa/visualization/**"
12
11
 
13
12
  comment: off
@@ -16,6 +16,6 @@ services:
16
16
  # within the current directory.
17
17
  # E.g. if it is at my-model, then you specify it as
18
18
  # /opt/mesa/my-model.
19
- MODEL_DIR: /mesa-examples/examples/schelling_experimental
19
+ MODEL_DIR: /opt/mesa/mesa/examples/basic/schelling
20
20
  ports:
21
21
  - 8765:8765
@@ -10,5 +10,6 @@ space
10
10
  datacollection
11
11
  batchrunner
12
12
  visualization
13
+ logging
13
14
  experimental
14
15
  ```
@@ -1,7 +1,7 @@
1
- # Time
1
+ # logging
2
2
 
3
3
  ```{eval-rst}
4
- .. automodule:: mesa.time
4
+ .. automodule:: mesa.mesa_logging
5
5
  :members:
6
6
  :inherited-members:
7
7
  ```
@@ -43,6 +43,10 @@ To also install our recommended dependencies:
43
43
  pip install -U mesa[rec]
44
44
  ```
45
45
 
46
+ On a Mac, this command might cause an error stating `zsh: no matches found: mesa[all]`.
47
+ In that case, change the command to `pip install -U "mesa[rec]"`.
48
+
49
+
46
50
  To install our latest pre-release:
47
51
 
48
52
  ```bash
@@ -56,16 +56,6 @@
56
56
  :show-inheritance:
57
57
  ```
58
58
 
59
- ## mesa.time module
60
-
61
- ```{eval-rst}
62
- .. automodule:: mesa.time
63
- :members:
64
- :undoc-members:
65
- :show-inheritance:
66
-
67
- ```
68
-
69
59
  ## Module contents
70
60
 
71
61
  ```{eval-rst}