mettagrid 0.2.0.1__tar.gz → 0.2.0.2__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 mettagrid might be problematic. Click here for more details.

Files changed (175) hide show
  1. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/PKG-INFO +2 -2
  2. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/bazel_build.py +2 -1
  3. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/pyproject.toml +2 -2
  4. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/grid.hpp +0 -27
  5. mettagrid-0.2.0.2/src/metta/mettagrid/util/__init__.py +0 -0
  6. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/util/file.py +25 -11
  7. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/mettagrid.egg-info/PKG-INFO +2 -2
  8. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/mettagrid.egg-info/SOURCES.txt +1 -0
  9. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/.bazelrc +0 -0
  10. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/BUILD.bazel +0 -0
  11. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/LICENSE +0 -0
  12. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/MANIFEST.in +0 -0
  13. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/MODULE.bazel +0 -0
  14. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/README.md +0 -0
  15. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/setup.cfg +0 -0
  16. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/__init__.py +0 -0
  17. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/action_handler.hpp +0 -0
  18. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/__init__.py +0 -0
  19. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/attack.hpp +0 -0
  20. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/change_color.hpp +0 -0
  21. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/change_glyph.hpp +0 -0
  22. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/get_output.hpp +0 -0
  23. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/move.hpp +0 -0
  24. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/noop.hpp +0 -0
  25. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/orientation.hpp +0 -0
  26. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/put_recipe_items.hpp +0 -0
  27. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/rotate.hpp +0 -0
  28. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/actions/swap.hpp +0 -0
  29. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/builder/__init__.py +0 -0
  30. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/builder/building.py +0 -0
  31. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/builder/empty_converters.py +0 -0
  32. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/builder/envs.py +0 -0
  33. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/char_encoder.py +0 -0
  34. /mettagrid-0.2.0.1/src/metta/mettagrid/mapgen/__init__.py → /mettagrid-0.2.0.2/src/metta/mettagrid/config/config.py +0 -0
  35. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/config.py +0 -0
  36. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/core.py +0 -0
  37. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/episode_stats_db.py +0 -0
  38. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/event.hpp +0 -0
  39. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/grid_object.hpp +0 -0
  40. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/grid_object_formatter.py +0 -0
  41. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/gym_env.py +0 -0
  42. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/gym_wrapper.py +0 -0
  43. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/hash.hpp +0 -0
  44. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/__init__.py +0 -0
  45. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/ascii.py +0 -0
  46. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/map_builder.py +0 -0
  47. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/maze.py +0 -0
  48. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/perimeter_incontext.py +0 -0
  49. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/random.py +0 -0
  50. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/map_builder/utils.py +0 -0
  51. {mettagrid-0.2.0.1/src/metta/mettagrid/objects → mettagrid-0.2.0.2/src/metta/mettagrid/mapgen}/__init__.py +0 -0
  52. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/load.py +0 -0
  53. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/mapgen.py +0 -0
  54. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/mapgen_ascii.py +0 -0
  55. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/random/float.py +0 -0
  56. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/random/int.py +0 -0
  57. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scene.py +0 -0
  58. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/ascii.py +0 -0
  59. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/auto.py +0 -0
  60. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/bsp.py +0 -0
  61. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/convchain.py +0 -0
  62. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/copy_grid.py +0 -0
  63. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/grid_altars.py +0 -0
  64. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/inline_ascii.py +0 -0
  65. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/layout.py +0 -0
  66. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/make_connected.py +0 -0
  67. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/maze.py +0 -0
  68. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/mean_distance.py +0 -0
  69. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/mirror.py +0 -0
  70. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/multi_left_and_right.py +0 -0
  71. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/nop.py +0 -0
  72. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/radial_maze.py +0 -0
  73. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/random.py +0 -0
  74. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/random_dcss_scene.py +0 -0
  75. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/random_objects.py +0 -0
  76. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/random_scene.py +0 -0
  77. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/random_yaml_scene.py +0 -0
  78. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/remove_agents.py +0 -0
  79. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/room_grid.py +0 -0
  80. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/spiral.py +0 -0
  81. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/transplant_scene.py +0 -0
  82. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/varied_terrain.py +0 -0
  83. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/wfc.py +0 -0
  84. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/scenes/yaml.py +0 -0
  85. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/tools/dcss_import.py +0 -0
  86. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/tools/gen.py +0 -0
  87. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/tools/gen_scene.py +0 -0
  88. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/tools/view.py +0 -0
  89. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/types.py +0 -0
  90. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/ascii_grid.py +0 -0
  91. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/draw.py +0 -0
  92. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/make_scene_config.py +0 -0
  93. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/pattern.py +0 -0
  94. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/s3utils.py +0 -0
  95. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/show.py +0 -0
  96. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/storable_map.py +0 -0
  97. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/storable_map_index.py +0 -0
  98. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mapgen/utils/thumbnail.py +0 -0
  99. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_c.cpp +0 -0
  100. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_c.hpp +0 -0
  101. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_c.pyi +0 -0
  102. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_c_config.py +0 -0
  103. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_config.hpp +0 -0
  104. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_config.py +0 -0
  105. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/mettagrid_env.py +0 -0
  106. {mettagrid-0.2.0.1/src/metta/mettagrid/util → mettagrid-0.2.0.2/src/metta/mettagrid/objects}/__init__.py +0 -0
  107. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/agent.hpp +0 -0
  108. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/agent_config.hpp +0 -0
  109. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/constants.hpp +0 -0
  110. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/converter.hpp +0 -0
  111. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/converter_config.hpp +0 -0
  112. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/has_inventory.hpp +0 -0
  113. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/production_handler.hpp +0 -0
  114. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/objects/wall.hpp +0 -0
  115. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/observation_encoder.hpp +0 -0
  116. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/packed_coordinate.hpp +0 -0
  117. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/pettingzoo_env.py +0 -0
  118. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/profiling/__init__.py +0 -0
  119. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/profiling/memory_monitor.py +0 -0
  120. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/profiling/stopwatch.py +0 -0
  121. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/profiling/system_monitor.py +0 -0
  122. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/puffer_base.py +0 -0
  123. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/py.typed +0 -0
  124. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/renderer/hermes.cpp +0 -0
  125. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/renderer/hermes.hpp +0 -0
  126. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/renderer/hermes.py +0 -0
  127. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/renderer/miniscope.py +0 -0
  128. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/renderer/nethack.py +0 -0
  129. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/replay_writer.py +0 -0
  130. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/stats_tracker.hpp +0 -0
  131. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/stats_writer.py +0 -0
  132. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/test_support/__init__.py +0 -0
  133. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/test_support/actions.py +0 -0
  134. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/test_support/mapgen.py +0 -0
  135. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/test_support/observation_helper.py +0 -0
  136. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/test_support/orientation.py +0 -0
  137. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/test_support/token_types.py +0 -0
  138. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/types.hpp +0 -0
  139. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/util/debug.py +0 -0
  140. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/util/dict_utils.py +0 -0
  141. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/util/diversity.py +0 -0
  142. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/metta/mettagrid/util/module.py +0 -0
  143. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/mettagrid.egg-info/dependency_links.txt +0 -0
  144. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/mettagrid.egg-info/requires.txt +0 -0
  145. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/src/mettagrid.egg-info/top_level.txt +0 -0
  146. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_action_compatibility.py +0 -0
  147. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_actions.py +0 -0
  148. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_attack_resource_exception.py +0 -0
  149. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_buffer_reuse.py +0 -0
  150. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_buffers.py +0 -0
  151. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_converter.py +0 -0
  152. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_diversity.py +0 -0
  153. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_env_config_serialization.py +0 -0
  154. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_env_map.py +0 -0
  155. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_forbidden_imports.py +0 -0
  156. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_gdrive.py +0 -0
  157. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_global_obs_config.py +0 -0
  158. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_global_observations.py +0 -0
  159. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_global_reward_observations.py +0 -0
  160. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_gym_env.py +0 -0
  161. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_interactive.py +0 -0
  162. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_leaks.py +0 -0
  163. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_mettagrid.py +0 -0
  164. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_move.py +0 -0
  165. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_new_env_hierarchy.py +0 -0
  166. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_observations.py +0 -0
  167. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_pettingzoo_env.py +0 -0
  168. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_pufferlib_integration.py +0 -0
  169. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_resource_loss.py +0 -0
  170. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_rewards.py +0 -0
  171. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_rotate.py +0 -0
  172. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_stats_rewards.py +0 -0
  173. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_stats_writer.py +0 -0
  174. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_swap.py +0 -0
  175. {mettagrid-0.2.0.1 → mettagrid-0.2.0.2}/tests/test_visitation_counts.py +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mettagrid
3
- Version: 0.2.0.1
3
+ Version: 0.2.0.2
4
4
  Summary: A fast grid-based open-ended MARL environment
5
5
  Author-email: David Bloomin <daveey@gmail.com>
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://daveey.github.io
8
8
  Project-URL: Repository, https://github.com/Metta-AI/mettagrid
9
9
  Keywords: gridworld,minigrid,rl,reinforcement-learning,environment,gym
10
- Requires-Python: ==3.11.7
10
+ Requires-Python: <3.12,>=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Requires-Dist: boto3>=1.38.32
@@ -46,11 +46,12 @@ def _run_bazel_build() -> None:
46
46
  else:
47
47
  config = "dbg" if debug else "opt"
48
48
 
49
- # Build the Python extension
49
+ # Build the Python extension with auto-detected parallelism
50
50
  cmd = [
51
51
  "bazel",
52
52
  "build",
53
53
  f"--config={config}",
54
+ "--jobs=auto",
54
55
  "--verbose_failures",
55
56
  "//:mettagrid_c",
56
57
  ]
@@ -5,10 +5,10 @@ backend-path = ["."]
5
5
 
6
6
  [project]
7
7
  name = "mettagrid" # Do not change! Has to be 'mettagrid' for our PyPi package
8
- version = "0.2.0.1"
8
+ version = "0.2.0.2"
9
9
  description = "A fast grid-based open-ended MARL environment"
10
10
  authors = [{ name = "David Bloomin", email = "daveey@gmail.com" }]
11
- requires-python = "==3.11.7"
11
+ requires-python = ">=3.11,<3.12"
12
12
  license = "MIT"
13
13
  readme = "README.md"
14
14
  urls = { Homepage = "https://daveey.github.io", Repository = "https://github.com/Metta-AI/mettagrid" }
@@ -69,15 +69,6 @@ public:
69
69
  return true;
70
70
  }
71
71
 
72
- inline bool ghost_add_object(GridObject* obj) {
73
- if (!is_valid_location(obj->location)) {
74
- return false;
75
- }
76
- obj->id = static_cast<GridObjectId>(this->objects.size());
77
- this->objects.push_back(std::unique_ptr<GridObject>(obj));
78
- return true;
79
- }
80
-
81
72
  // Removes an object from the grid and gives ownership of the object to the caller.
82
73
  // Since the caller is now the owner, this can make the raw pointer invalid, if the
83
74
  // returned unique_ptr is destroyed.
@@ -104,24 +95,6 @@ public:
104
95
  return true;
105
96
  }
106
97
 
107
- // Force move an object to a location without it being registered in the grid at the new location
108
- inline bool ghost_move_object(GridObjectId id, const GridLocation& loc) {
109
- if (!is_valid_location(loc)) {
110
- return false;
111
- }
112
-
113
- GridObject* obj = object(id);
114
- if (!obj) {
115
- return false;
116
- }
117
-
118
- // Remove the object from its current location
119
- grid[obj->location.r][obj->location.c][obj->location.layer] = 0;
120
-
121
- obj->location = loc;
122
- return true;
123
- }
124
-
125
98
  inline void swap_objects(GridObjectId id1, GridObjectId id2) {
126
99
  GridObject* obj1 = object(id1);
127
100
  GridObject* obj2 = object(id2);
File without changes
@@ -34,7 +34,6 @@ from wandb.errors import CommError
34
34
  # Globals #
35
35
  # --------------------------------------------------------------------------- #
36
36
 
37
- WANDB_ENTITY: str = os.getenv("WANDB_ENTITY", "metta-research")
38
37
  GOOGLE_DRIVE_CREDENTIALS_FILE: str = os.getenv("GOOGLE_DRIVE_CREDENTIALS_FILE", "~/.config/gcloud/credentials.json")
39
38
  GOOGLE_DRIVE_TOKEN_FILE: str = os.getenv("GOOGLE_DRIVE_TOKEN_FILE", "~/.config/gcloud/token.json")
40
39
 
@@ -256,6 +255,7 @@ def is_public_uri(url: str | None) -> bool:
256
255
  class WandbURI:
257
256
  """Parsed representation of a W&B artifact URI."""
258
257
 
258
+ entity: str
259
259
  project: str
260
260
  artifact_path: str
261
261
  version: str = "latest"
@@ -273,26 +273,40 @@ class WandbURI:
273
273
  path_part, version = body, "latest"
274
274
 
275
275
  if "/" not in path_part:
276
- raise ValueError("Malformed W&B URI – expected wandb://<project>/<artifact_path>[:<version>]")
276
+ raise ValueError("Malformed W&B URI – expected wandb://entity/project/artifact:version")
277
+
278
+ parts = path_part.split("/")
279
+
280
+ if len(parts) >= 3:
281
+ entity = parts[0]
282
+ project = parts[1]
283
+ artifact_path = "/".join(parts[2:])
284
+ elif len(parts) == 2:
285
+ # 2-part format: use WANDB_ENTITY if set; otherwise default to 'metta-research'
286
+ # Note: Do not import from metta.* here; mettagrid must remain decoupled.
287
+ project = parts[0]
288
+ artifact_path = parts[1]
289
+ entity = os.getenv("WANDB_ENTITY", "metta-research")
290
+ else:
291
+ raise ValueError("Malformed W&B URI – expected wandb://entity/project/artifact:version")
277
292
 
278
- project, artifact_path = path_part.split("/", 1)
279
- if not artifact_path:
280
- raise ValueError("Artifact path must be non-empty")
293
+ if not project or not artifact_path:
294
+ raise ValueError("Project and artifact path must be non-empty")
281
295
 
282
- return cls(project, artifact_path, version)
296
+ return cls(entity, project, artifact_path, version)
283
297
 
284
298
  # ---------- helpers ---------- #
285
299
  def qname(self) -> str:
286
300
  """`entity/project/artifact_path:version` – accepted by `wandb.Api().artifact()`."""
287
- return f"{WANDB_ENTITY}/{self.project}/{self.artifact_path}:{self.version}"
301
+ return f"{self.entity}/{self.project}/{self.artifact_path}:{self.version}"
288
302
 
289
303
  def http_url(self) -> str:
290
304
  """Human-readable URL for this artifact version."""
291
- return f"https://wandb.ai/{WANDB_ENTITY}/{self.project}/artifacts/{self.artifact_path}/{self.version}"
305
+ return f"https://wandb.ai/{self.entity}/{self.project}/artifacts/{self.artifact_path}/{self.version}"
292
306
 
293
307
  # pretty print
294
308
  def __str__(self) -> str: # noqa: D401 (keep dunder)
295
- return f"wandb://{self.project}/{self.artifact_path}:{self.version}"
309
+ return f"wandb://{self.entity}/{self.project}/{self.artifact_path}:{self.version}"
296
310
 
297
311
 
298
312
  def upload_bytes_to_wandb(uri: WandbURI, blob: bytes, name: str) -> None:
@@ -306,7 +320,7 @@ def upload_bytes_to_wandb(uri: WandbURI, blob: bytes, name: str) -> None:
306
320
 
307
321
 
308
322
  @contextmanager
309
- def wandb_export_context(project: str, entity: str = WANDB_ENTITY) -> wandb.Run:
323
+ def wandb_export_context(project: str, entity: str) -> wandb.Run:
310
324
  """
311
325
  Context manager that ensures a wandb run exists for artifact exports.
312
326
  TODO: Remove this after switching to using wandb_context
@@ -376,7 +390,7 @@ def upload_file_to_wandb(uri, local_file: str, name: str) -> None:
376
390
  )
377
391
 
378
392
  try:
379
- with wandb_export_context(uri.project, WANDB_ENTITY) as run:
393
+ with wandb_export_context(uri.project, uri.entity) as run:
380
394
  # Create and log the artifact
381
395
  artifact = wandb.Artifact(uri.artifact_path, type="file")
382
396
  artifact.add_file(local_file, name=name)
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mettagrid
3
- Version: 0.2.0.1
3
+ Version: 0.2.0.2
4
4
  Summary: A fast grid-based open-ended MARL environment
5
5
  Author-email: David Bloomin <daveey@gmail.com>
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://daveey.github.io
8
8
  Project-URL: Repository, https://github.com/Metta-AI/mettagrid
9
9
  Keywords: gridworld,minigrid,rl,reinforcement-learning,environment,gym
10
- Requires-Python: ==3.11.7
10
+ Requires-Python: <3.12,>=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Requires-Dist: boto3>=1.38.32
@@ -50,6 +50,7 @@ src/metta/mettagrid/builder/__init__.py
50
50
  src/metta/mettagrid/builder/building.py
51
51
  src/metta/mettagrid/builder/empty_converters.py
52
52
  src/metta/mettagrid/builder/envs.py
53
+ src/metta/mettagrid/config/config.py
53
54
  src/metta/mettagrid/map_builder/__init__.py
54
55
  src/metta/mettagrid/map_builder/ascii.py
55
56
  src/metta/mettagrid/map_builder/map_builder.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes