Spatial-Gym 0.1.2__tar.gz → 0.1.4__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.
Files changed (31) hide show
  1. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/PKG-INFO +5 -1
  2. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/README.md +4 -0
  3. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Spatial_Gym/Spatial_Gym.py +5 -2
  4. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/pyproject.toml +1 -4
  5. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/.github/workflows/publish.yml +0 -0
  6. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/.github/workflows/tests.yml +0 -0
  7. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/.gitignore +0 -0
  8. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Final_Product.py +0 -0
  9. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/LICENCE +0 -0
  10. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/MIGRATION_NOTES.md +0 -0
  11. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/NOTES.md +0 -0
  12. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Spatial_Gym/__init__.py +0 -0
  13. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Spatial_Gym/register_env.py +0 -0
  14. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Spatial_Gym/render/__init__.py +0 -0
  15. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Spatial_Gym/render/human_renderer.py +0 -0
  16. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/Spatial_Gym/render/llm_renderer.py +0 -0
  17. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/TEST_SUMMARY.md +0 -0
  18. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/environments/spatial_gym/README.md +0 -0
  19. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/environments/spatial_gym/pyproject.toml +0 -0
  20. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/environments/spatial_gym/spatial_gym_env/__init__.py +0 -0
  21. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/environments/spatial_gym/spatial_gym_env/prompts.py +0 -0
  22. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/environments/spatial_gym/spatial_gym_env/taskset.py +0 -0
  23. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/human_play.py +0 -0
  24. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/llm_testing/llm_host.py +0 -0
  25. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/llm_testing/parse_logs.py +0 -0
  26. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/pytest.ini +0 -0
  27. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/tests/README.md +0 -0
  28. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/tests/__init__.py +0 -0
  29. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/tests/test_environment.py +0 -0
  30. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/tests/test_predefined_paths.py +0 -0
  31. {spatial_gym-0.1.2 → spatial_gym-0.1.4}/tests/test_random_agent.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Spatial-Gym
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: A Gymnasium environment for benchmarking spatial reasoning capabilities of AI agents on grid-based puzzles
5
5
  Project-URL: Repository, https://github.com/lkaesberg/Spatial-Gym
6
6
  Project-URL: Homepage, https://github.com/lkaesberg/Spatial-Gym
@@ -58,6 +58,10 @@ Requires-Dist: pytest-cov>=4.0; extra == 'test'
58
58
  Requires-Dist: pytest>=7.0; extra == 'test'
59
59
  Description-Content-Type: text/markdown
60
60
 
61
+ <p align="center">
62
+ <img src="https://raw.githubusercontent.com/lkaesberg/SPaRC/main/logo.png" alt="SPaRC Logo" width="128"/>
63
+ </p>
64
+
61
65
  # Spatial-Gym: A Gymnasium Environment for Spatial Reasoning Benchmarking
62
66
 
63
67
  [![arXiv](https://img.shields.io/badge/arXiv-2604.09338-b31b1b.svg)](https://arxiv.org/abs/2604.09338)
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/lkaesberg/SPaRC/main/logo.png" alt="SPaRC Logo" width="128"/>
3
+ </p>
4
+
1
5
  # Spatial-Gym: A Gymnasium Environment for Spatial Reasoning Benchmarking
2
6
 
3
7
  [![arXiv](https://img.shields.io/badge/arXiv-2604.09338-b31b1b.svg)](https://arxiv.org/abs/2604.09338)
@@ -1,4 +1,5 @@
1
1
  from enum import Enum
2
+ import copy
2
3
  import json
3
4
  from collections import Counter, deque
4
5
  import gymnasium as gym
@@ -976,7 +977,8 @@ class Spatial_Gym(gym.Env):
976
977
  Returns a json string representation of the puzzle in the SPaRC format
977
978
  '''
978
979
  if self.observation == 'new':
979
- return {'base': self.obs_array, 'color': self.color_array, 'additional_info': self.additional_info}
980
+ # Copies, so callers never share arrays with the env or with earlier observations
981
+ return copy.deepcopy({'base': self.obs_array, 'color': self.color_array, 'additional_info': self.additional_info})
980
982
 
981
983
  elif self.observation == 'SPaRC':
982
984
  observ = self._build_json_obs()
@@ -1019,7 +1021,8 @@ class Spatial_Gym(gym.Env):
1019
1021
  "rule_status": self.rule_status,
1020
1022
  "Rewards": {"normal_reward": self.normal_reward, "outcome_reward": self.outcome_reward}
1021
1023
  }
1022
- return info
1024
+ # Copies, so infos from different steps never share objects (agent_location, rule_status)
1025
+ return copy.deepcopy(info)
1023
1026
 
1024
1027
  def _get_legal_actions(self):
1025
1028
  '''
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "Spatial-Gym"
7
- version = "0.1.2"
7
+ version = "0.1.4"
8
8
  description = "A Gymnasium environment for benchmarking spatial reasoning capabilities of AI agents on grid-based puzzles"
9
9
  readme = "README.md"
10
10
  license = { file = "LICENCE" }
@@ -36,9 +36,6 @@ classifiers = [
36
36
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
37
37
  ]
38
38
 
39
- [project.entry-points."gymnasium.envs"]
40
- Spatial-Gym = "Spatial_Gym.Spatial_Gym:Spatial_Gym"
41
-
42
39
  [project.optional-dependencies]
43
40
  test = [
44
41
  "pytest>=7.0",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes