kaggle-environments 1.17.5__tar.gz → 1.17.6__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 kaggle-environments might be problematic. Click here for more details.

Files changed (238) hide show
  1. {kaggle_environments-1.17.5/kaggle_environments.egg-info → kaggle_environments-1.17.6}/PKG-INFO +1 -1
  2. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/__init__.py +1 -1
  3. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/core.py +1 -1
  4. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/chess/chess.js +3 -3
  5. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four.js +2 -14
  6. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/go/go.js +4 -4
  7. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/tic_tac_toe.js +6 -6
  8. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker.js +2 -2
  9. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/open_spiel.py +58 -38
  10. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6/kaggle_environments.egg-info}/PKG-INFO +1 -1
  11. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/LICENSE +0 -0
  12. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/MANIFEST.in +0 -0
  13. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/README.md +0 -0
  14. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/agent.py +0 -0
  15. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/api.py +0 -0
  16. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.js +0 -0
  17. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.json +0 -0
  18. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.py +0 -0
  19. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/test_chess.py +0 -0
  20. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/connectx.js +0 -0
  21. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/connectx.json +0 -0
  22. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/connectx.py +0 -0
  23. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/test_connectx.py +0 -0
  24. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/football.json +0 -0
  25. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/football.py +0 -0
  26. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/helpers.py +0 -0
  27. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/test_football.py +0 -0
  28. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/__init__.py +0 -0
  29. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.js +0 -0
  30. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.json +0 -0
  31. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.py +0 -0
  32. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/helpers.py +0 -0
  33. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/test_halite.py +0 -0
  34. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/__init__.py +0 -0
  35. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/hungry_geese.js +0 -0
  36. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/hungry_geese.json +0 -0
  37. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/hungry_geese.py +0 -0
  38. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/test_hungry_geese.py +0 -0
  39. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/identity/identity.json +0 -0
  40. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/identity/identity.py +0 -0
  41. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/__init__.py +0 -0
  42. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/helpers.py +0 -0
  43. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/kore_fleets.js +0 -0
  44. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/kore_fleets.json +0 -0
  45. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/kore_fleets.py +0 -0
  46. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/main.py +0 -0
  47. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/configuration.json +0 -0
  48. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/fullob.json +0 -0
  49. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/observation.json +0 -0
  50. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/python/__init__.py +0 -0
  51. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/python/main.py +0 -0
  52. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/Bot.ts +0 -0
  53. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/DoNothingBot.ts +0 -0
  54. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/MinerBot.ts +0 -0
  55. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts +0 -0
  56. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts +0 -0
  57. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Cell.ts +0 -0
  58. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Configuration.ts +0 -0
  59. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Direction.ts +0 -0
  60. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts +0 -0
  61. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/KoreIO.ts +0 -0
  62. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Observation.ts +0 -0
  63. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Pair.ts +0 -0
  64. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Player.ts +0 -0
  65. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Point.ts +0 -0
  66. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Shipyard.ts +0 -0
  67. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/ShipyardAction.ts +0 -0
  68. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/main.py +0 -0
  69. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/miner.py +0 -0
  70. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/package.json +0 -0
  71. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/BoardTest.ts +0 -0
  72. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ConfigurationTest.ts +0 -0
  73. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ObservationTest.ts +0 -0
  74. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/PointTest.ts +0 -0
  75. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ShipyardTest.ts +0 -0
  76. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/configuration.json +0 -0
  77. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/fullob.json +0 -0
  78. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/observation.json +0 -0
  79. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/tsconfig.json +0 -0
  80. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/test_kore_fleets.py +0 -0
  81. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/keywords.py +0 -0
  82. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/llm_20_questions.js +0 -0
  83. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/llm_20_questions.json +0 -0
  84. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/llm_20_questions.py +0 -0
  85. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/test_llm_20_questions.py +0 -0
  86. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/__init__.py +0 -0
  87. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/agents.py +0 -0
  88. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/dimensions/754.js +0 -0
  89. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/dimensions/main.js +0 -0
  90. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/index.html +0 -0
  91. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.json +0 -0
  92. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.py +0 -0
  93. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/__init__.py +0 -0
  94. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_constants.js +0 -0
  95. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_constants.json +0 -0
  96. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_objects.js +0 -0
  97. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/io.js +0 -0
  98. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/kit.js +0 -0
  99. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/map.js +0 -0
  100. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/parser.js +0 -0
  101. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.js +0 -0
  102. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.py +0 -0
  103. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/__init__.py +0 -0
  104. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/annotate.py +0 -0
  105. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/constants.py +0 -0
  106. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game.py +0 -0
  107. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_constants.json +0 -0
  108. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_constants.py +0 -0
  109. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_map.py +0 -0
  110. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_objects.py +0 -0
  111. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/random_agent.py +0 -0
  112. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/simple_agent.py +0 -0
  113. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_lux.py +0 -0
  114. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/__init__.py +0 -0
  115. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/agents.py +0 -0
  116. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/index.html +0 -0
  117. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.json +0 -0
  118. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.py +0 -0
  119. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/__init__.py +0 -0
  120. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/actions.py +0 -0
  121. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/config.py +0 -0
  122. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/env.py +0 -0
  123. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/factory.py +0 -0
  124. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/globals.py +0 -0
  125. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/__init__.py +0 -0
  126. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/bfs_deltas_gen.py +0 -0
  127. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/board.py +0 -0
  128. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/position.py +0 -0
  129. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/__init__.py +0 -0
  130. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/generator.py +0 -0
  131. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/symnoise.py +0 -0
  132. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/timing.py +0 -0
  133. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize.py +0 -0
  134. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize_samples.py +0 -0
  135. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/__init__.py +0 -0
  136. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/visualizer.py +0 -0
  137. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/__init__.py +0 -0
  138. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/replay.py +0 -0
  139. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/__init__.py +0 -0
  140. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/act_space.py +0 -0
  141. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/obs_space.py +0 -0
  142. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/__init__.py +0 -0
  143. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/state.py +0 -0
  144. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/stats.py +0 -0
  145. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/typing.py +0 -0
  146. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/team.py +0 -0
  147. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/__init__.py +0 -0
  148. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/replay.py +0 -0
  149. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/unit.py +0 -0
  150. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/__init__.py +0 -0
  151. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/animate.py +0 -0
  152. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/__init__.py +0 -0
  153. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/bidding.py +0 -0
  154. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory.py +0 -0
  155. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory_placement.py +0 -0
  156. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/utils.py +0 -0
  157. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/version.py +0 -0
  158. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/__init__.py +0 -0
  159. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/controllers.py +0 -0
  160. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/sb3.py +0 -0
  161. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/agent.py +0 -0
  162. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/cargo.py +0 -0
  163. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/config.py +0 -0
  164. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/factory.py +0 -0
  165. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/kit.py +0 -0
  166. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/team.py +0 -0
  167. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/unit.py +0 -0
  168. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/utils.py +0 -0
  169. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/main.py +0 -0
  170. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_lux.py +0 -0
  171. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/agents.py +0 -0
  172. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/index.html +0 -0
  173. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.json +0 -0
  174. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.py +0 -0
  175. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/__init__.py +0 -0
  176. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/env.py +0 -0
  177. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/globals.py +0 -0
  178. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/params.py +0 -0
  179. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/profiler.py +0 -0
  180. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/pygame_render.py +0 -0
  181. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/spaces.py +0 -0
  182. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/state.py +0 -0
  183. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/utils.py +0 -0
  184. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/wrappers.py +0 -0
  185. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/agent.py +0 -0
  186. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/__init__.py +0 -0
  187. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/kit.py +0 -0
  188. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/utils.py +0 -0
  189. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/main.py +0 -0
  190. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_lux.py +0 -0
  191. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/__init__.py +0 -0
  192. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/agents.py +0 -0
  193. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/mab.js +0 -0
  194. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/mab.json +0 -0
  195. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/mab.py +0 -0
  196. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/__init__.py +0 -0
  197. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/__init__.py +0 -0
  198. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/__init__.py +0 -0
  199. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy.py +0 -0
  200. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy_test.py +0 -0
  201. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/go/__init__.py +0 -0
  202. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/go/go_proxy.py +0 -0
  203. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/__init__.py +0 -0
  204. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/tic_tac_toe_proxy.py +0 -0
  205. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/__init__.py +0 -0
  206. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy.py +0 -0
  207. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy_test.py +0 -0
  208. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/html_playthrough_generator.py +0 -0
  209. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/observation.py +0 -0
  210. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/proxy.py +0 -0
  211. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/proxy_test.py +0 -0
  212. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/test_open_spiel.py +0 -0
  213. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/__init__.py +0 -0
  214. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/agents.py +0 -0
  215. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/helpers.py +0 -0
  216. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/rps.js +0 -0
  217. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/rps.json +0 -0
  218. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/rps.py +0 -0
  219. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/test_rps.py +0 -0
  220. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/utils.py +0 -0
  221. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/test_tictactoe.py +0 -0
  222. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/tictactoe.js +0 -0
  223. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/tictactoe.json +0 -0
  224. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/tictactoe.py +0 -0
  225. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/errors.py +0 -0
  226. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/helpers.py +0 -0
  227. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/main.py +0 -0
  228. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/schemas.json +0 -0
  229. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/static/player.html +0 -0
  230. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/status_codes.json +0 -0
  231. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/utils.py +0 -0
  232. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/SOURCES.txt +0 -0
  233. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/dependency_links.txt +0 -0
  234. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/entry_points.txt +0 -0
  235. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/requires.txt +0 -0
  236. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/top_level.txt +0 -0
  237. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/setup.cfg +0 -0
  238. {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaggle-environments
3
- Version: 1.17.5
3
+ Version: 1.17.6
4
4
  Summary: Kaggle Environments
5
5
  Home-page: https://github.com/Kaggle/kaggle-environments
6
6
  Author: Kaggle
@@ -20,7 +20,7 @@ from .core import *
20
20
  from .main import http_request
21
21
  from . import errors
22
22
 
23
- __version__ = "1.17.5"
23
+ __version__ = "1.17.6"
24
24
 
25
25
  __all__ = ["Agent", "environments", "errors", "evaluate", "http_request",
26
26
  "make", "register", "utils", "__version__",
@@ -579,7 +579,7 @@ class Environment:
579
579
  try:
580
580
  with StringIO() as out_buffer, StringIO() as err_buffer, redirect_stdout(out_buffer), redirect_stderr(err_buffer):
581
581
  try:
582
- args = [structify(state), self]
582
+ args = [structify(state), self, logs]
583
583
  new_state = structify(self.interpreter(
584
584
  *args[:self.interpreter.__code__.co_argcount]))
585
585
  new_state[0].observation.step = (
@@ -273,15 +273,15 @@ function renderer(options) {
273
273
 
274
274
  let gameSpecificState = null;
275
275
 
276
- if (observationForRenderer && typeof observationForRenderer.observation_string === 'string' && observationForRenderer.observation_string.trim() !== '') {
276
+ if (observationForRenderer && typeof observationForRenderer.observationString === 'string' && observationForRenderer.observationString.trim() !== '') {
277
277
  try {
278
- const fen = observationForRenderer.observation_string;
278
+ const fen = observationForRenderer.observationString;
279
279
  const parsedFen = _parseFen(fen);
280
280
  if (parsedFen) {
281
281
  // Assuming `is_terminal` and `winner` are provided in the top-level observation
282
282
  gameSpecificState = {
283
283
  ...parsedFen,
284
- is_terminal: observationForRenderer.is_terminal,
284
+ is_terminal: observationForRenderer.isTerminal,
285
285
  winner: observationForRenderer.winner
286
286
  };
287
287
  }
@@ -264,9 +264,9 @@ function renderer(options) {
264
264
 
265
265
  let gameSpecificState = null;
266
266
 
267
- if (observationForRenderer && typeof observationForRenderer.observation_string === 'string' && observationForRenderer.observation_string.trim() !== '') {
267
+ if (observationForRenderer && typeof observationForRenderer.observationString === 'string' && observationForRenderer.observationString.trim() !== '') {
268
268
  try {
269
- gameSpecificState = JSON.parse(observationForRenderer.observation_string);
269
+ gameSpecificState = JSON.parse(observationForRenderer.observationString);
270
270
  } catch (e) {
271
271
  _showMessage("Error: Corrupted game state (obs_string).", 'error');
272
272
  }
@@ -280,17 +280,5 @@ function renderer(options) {
280
280
  }
281
281
  }
282
282
 
283
- if (!gameSpecificState && observationForRenderer &&
284
- Array.isArray(observationForRenderer.board) &&
285
- typeof observationForRenderer.current_player !== 'undefined'
286
- ) {
287
- if( (observationForRenderer.board.length === DEFAULT_NUM_ROWS &&
288
- (observationForRenderer.board.length === 0 ||
289
- (Array.isArray(observationForRenderer.board[0]) && observationForRenderer.board[0].length === DEFAULT_NUM_COLS)))
290
- ){
291
- gameSpecificState = observationForRenderer;
292
- }
293
- }
294
-
295
283
  _renderBoardDisplay_svg(gameSpecificState, DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS);
296
284
  }
@@ -410,9 +410,9 @@ function renderer(options) {
410
410
  let gameState = null;
411
411
 
412
412
  // Try to parse game state from observation
413
- if (gameMasterAgent.observation.observation_string) {
413
+ if (gameMasterAgent.observation.observationString) {
414
414
  try {
415
- gameState = JSON.parse(gameMasterAgent.observation.observation_string);
415
+ gameState = JSON.parse(gameMasterAgent.observation.observationString);
416
416
  } catch (e) {}
417
417
  }
418
418
 
@@ -461,9 +461,9 @@ function renderer(options) {
461
461
  const observationForRenderer = gameMasterAgent.observation;
462
462
  let gameSpecificState = null;
463
463
 
464
- if (observationForRenderer && typeof observationForRenderer.observation_string === 'string' && observationForRenderer.observation_string.trim() !== '') {
464
+ if (observationForRenderer && typeof observationForRenderer.observationString === 'string' && observationForRenderer.observationString.trim() !== '') {
465
465
  try {
466
- gameSpecificState = JSON.parse(observationForRenderer.observation_string);
466
+ gameSpecificState = JSON.parse(observationForRenderer.observationString);
467
467
  } catch (e) {
468
468
  _showMessage("Error: Corrupted game state (obs_string).", 'error');
469
469
  }
@@ -283,9 +283,9 @@ function renderer(options) {
283
283
  let boardArray = null;
284
284
  let currentPlayerForState = null;
285
285
 
286
- if (typeof observationForBoardState.observation_string === 'string' && observationForBoardState.observation_string.trim().startsWith('{')) {
286
+ if (typeof observationForBoardState.observationString === 'string' && observationForBoardState.observationString.trim().startsWith('{')) {
287
287
  try {
288
- const parsedState = JSON.parse(observationForBoardState.observation_string);
288
+ const parsedState = JSON.parse(observationForBoardState.observationString);
289
289
  if (parsedState && Array.isArray(parsedState.board)) {
290
290
  boardArray = parsedState.board;
291
291
  }
@@ -294,7 +294,7 @@ function renderer(options) {
294
294
  }
295
295
  } catch (e) {
296
296
  _showMessage("Error parsing game state from observation string.", 'error');
297
- console.error("Failed to parse observation_string JSON:", e);
297
+ console.error("Failed to parse observation string JSON:", e);
298
298
  }
299
299
  }
300
300
 
@@ -306,8 +306,8 @@ function renderer(options) {
306
306
  }
307
307
 
308
308
  if (!currentPlayerForState) {
309
- if (observationForBoardState.current_player === 0) { currentPlayerForState = 'x'; }
310
- else if (observationForBoardState.current_player === 1) { currentPlayerForState = 'o'; }
309
+ if (observationForBoardState.currentPlayer === 0) { currentPlayerForState = 'x'; }
310
+ else if (observationForBoardState.currentPlayer === 1) { currentPlayerForState = 'o'; }
311
311
  }
312
312
 
313
313
  const isTerminal = !!observationForBoardState.is_terminal;
@@ -320,7 +320,7 @@ function renderer(options) {
320
320
  else if (finalRewards[1] === 1.0) winnerForState = 'o';
321
321
  else if (finalRewards[0] === 0.0 && finalRewards[1] === 0.0) winnerForState = 'draw';
322
322
  }
323
- if (observationForBoardState.current_player === -2 && winnerForState === null) {
323
+ if (observationForBoardState.currentPlayer === -2 && winnerForState === null) {
324
324
  winnerForState = 'draw';
325
325
  }
326
326
  }
@@ -247,8 +247,8 @@ function renderer(options) {
247
247
  // --- Observation Extraction & Merging ---
248
248
  let obsP0 = null, obsP1 = null;
249
249
  try {
250
- obsP0 = JSON.parse(currentStepAgents[0].observation.observation_string);
251
- obsP1 = JSON.parse(currentStepAgents[1].observation.observation_string);
250
+ obsP0 = JSON.parse(currentStepAgents[0].observation.observationString);
251
+ obsP1 = JSON.parse(currentStepAgents[1].observation.observationString);
252
252
  } catch (e) {
253
253
  defaultUIData.gameMessage = "Error parsing observation JSON.";
254
254
  return defaultUIData;
@@ -14,6 +14,12 @@ from kaggle_environments import utils
14
14
  import numpy as np
15
15
  import pyspiel
16
16
 
17
+ ERROR = "ERROR"
18
+ DONE = "DONE"
19
+ INACTIVE = "INACTIVE"
20
+ ACTIVE = "ACTIVE"
21
+ TIMEOUT = "TIMEOUT"
22
+
17
23
  _log = logging.getLogger(__name__)
18
24
  _log.setLevel(logging.INFO)
19
25
  _handler = logging.StreamHandler(sys.stdout)
@@ -35,7 +41,7 @@ for proxy_file in GAMES_DIR.glob("**/*_proxy.py"):
35
41
 
36
42
 
37
43
  # --- Constants ---
38
- DEFAULT_ACT_TIMEOUT = 5
44
+ DEFAULT_ACT_TIMEOUT = 120
39
45
  DEFAULT_RUN_TIMEOUT = 1200
40
46
  # Buffer in addition to max game length to account for timeouts, retrys, etc.
41
47
  DEFAULT_STEP_BUFFER = 100
@@ -77,35 +83,33 @@ OBSERVATION_SPEC_TEMPLATE = {
77
83
  "description": "Short name of the OpenSpiel game.",
78
84
  "type": "string"
79
85
  },
80
- "observation_string": {
86
+ "observationString": {
81
87
  "description": "String representation of state.",
82
88
  "type": "string"
83
89
  },
84
- # TODO(jhtschultz): Use camel case for consistency with spec, or snake
85
- # case for consistency with pyspiel?
86
- "legal_actions": {
90
+ "legalActions": {
87
91
  "description": "List of OpenSpiel legal action integers.",
88
92
  "type": "array",
89
93
  "items": {
90
94
  "type": "integer"
91
95
  }
92
96
  },
93
- "legal_action_strings": {
97
+ "legalActionStrings": {
94
98
  "description": "List of OpenSpiel legal actions strings.",
95
99
  "type": "array",
96
100
  "items": {
97
101
  "type": "string"
98
102
  }
99
103
  },
100
- "current_player": {
104
+ "currentPlayer": {
101
105
  "description": "ID of player whose turn it is.",
102
106
  "type": "integer"
103
107
  },
104
- "player_id": {
108
+ "playerId": {
105
109
  "description": "ID of the agent receiving this observation.",
106
110
  "type": "integer"
107
111
  },
108
- "is_terminal": {
112
+ "isTerminal": {
109
113
  "description": "Boolean indicating game end.",
110
114
  "type": "boolean"
111
115
  },
@@ -115,6 +119,11 @@ OBSERVATION_SPEC_TEMPLATE = {
115
119
  "default": {}
116
120
  }
117
121
 
122
+ ACTION_SPEC_TEMPLATE = {
123
+ "description": "Action object MUST contain a field `submission`, and MAY contain arbitrary additional information.",
124
+ "type": "object",
125
+ "default": {"submission": -1}
126
+ }
118
127
 
119
128
  ENV_SPEC_TEMPLATE = {
120
129
  "name": "PLACEHOLDER_NAME",
@@ -124,11 +133,7 @@ ENV_SPEC_TEMPLATE = {
124
133
  "agents": ["PLACEHOLDER_NUM_AGENTS"],
125
134
  "configuration": CONFIGURATION_SPEC_TEMPLATE,
126
135
  "observation": OBSERVATION_SPEC_TEMPLATE,
127
- "action": {
128
- "type": ["integer"],
129
- "minimum": -1,
130
- "default": -1
131
- },
136
+ "action": ACTION_SPEC_TEMPLATE,
132
137
  "reward": {
133
138
  "type": ["number"],
134
139
  "default": 0.0
@@ -141,6 +146,7 @@ ENV_SPEC_TEMPLATE = {
141
146
  def interpreter(
142
147
  state: list[utils.Struct],
143
148
  env: core.Environment,
149
+ logs: list[dict[str, Any]],
144
150
  ) -> list[utils.Struct]:
145
151
  """Updates environment using player responses and returns new observations."""
146
152
  kaggle_state = state # Not to be confused with OpenSpiel state.
@@ -157,9 +163,10 @@ def interpreter(
157
163
  env.os_game = pyspiel.load_game(game_string)
158
164
  if not hasattr(env, 'os_state'):
159
165
  env.os_state = env.os_game.new_initial_state()
160
- if "state_history" not in env.info:
161
- env.info['state_history'] = [str(env.os_state)]
162
- env.info['action_history'] = []
166
+ if "stateHistory" not in env.info:
167
+ env.info['stateHistory'] = [str(env.os_state)]
168
+ env.info['actionHistory'] = []
169
+ env.info['moveDurations'] = []
163
170
 
164
171
  os_game = env.os_game
165
172
  os_state = env.os_state
@@ -167,8 +174,16 @@ def interpreter(
167
174
  statuses = [
168
175
  kaggle_state[player_id].status for player_id in range(num_players)
169
176
  ]
170
- if not any(status == "ACTIVE" for status in statuses):
171
- raise ValueError("Environment not done and no active agents.")
177
+ if not any(status == ACTIVE for status in statuses):
178
+ for player_id in range(num_players):
179
+ p = kaggle_state[player_id]
180
+ if p.status in [ERROR, TIMEOUT]:
181
+ # TODO: properly set the reward per game
182
+ p.reward = -1
183
+ elif p.status in [INACTIVE]:
184
+ p.reward = 1
185
+ p.status = DONE
186
+ return;
172
187
 
173
188
  # TODO(jhtschultz): Test reset behavior.
174
189
  is_initial_step = len(env.steps) == 1
@@ -186,18 +201,23 @@ def interpreter(
186
201
  if kaggle_state[acting_agent].status != "ACTIVE":
187
202
  pass
188
203
  else:
189
- action_submitted = kaggle_state[acting_agent].action
204
+ action_submitted = kaggle_state[acting_agent].action["submission"]
190
205
  if action_submitted in os_state.legal_actions():
191
206
  try:
192
207
  os_state.apply_action(action_submitted)
193
208
  action_applied = action_submitted
194
- env.info['action_history'].append(str(action_applied))
195
- env.info['state_history'].append(str(os_state))
209
+ env.info['actionHistory'].append(str(action_applied))
210
+ env.info['stateHistory'].append(str(os_state))
196
211
  except Exception as e: # pylint: disable=broad-exception-caught
197
212
  _log.debug(e)
198
213
  kaggle_state[acting_agent].status = "ERROR"
199
214
  else:
200
215
  kaggle_state[acting_agent].status = "INVALID"
216
+ if "duration" in logs[acting_agent]:
217
+ move_duration = round(logs[acting_agent]["duration"], 3)
218
+ env.info["moveDurations"].append(move_duration)
219
+ else:
220
+ env.info["moveDurations"].append(None)
201
221
  elif acting_agent == pyspiel.PlayerId.SIMULTANEOUS:
202
222
  raise NotImplementedError
203
223
  elif acting_agent == pyspiel.PlayerId.TERMINAL:
@@ -212,8 +232,8 @@ def interpreter(
212
232
  outcomes, probs = zip(*os_state.chance_outcomes())
213
233
  chance_action = np.random.choice(outcomes, p=probs)
214
234
  os_state.apply_action(chance_action)
215
- env.info['action_history'].append(str(chance_action))
216
- env.info['state_history'].append(str(os_state))
235
+ env.info['actionHistory'].append(str(chance_action))
236
+ env.info['stateHistory'].append(str(os_state))
217
237
 
218
238
  # --- Update agent states ---
219
239
  for player_id, agent_state in enumerate(kaggle_state):
@@ -234,19 +254,19 @@ def interpreter(
234
254
 
235
255
  info_dict = {}
236
256
  if acting_agent == player_id:
237
- info_dict["action_submitted"] = action_submitted
238
- info_dict["action_applied"] = action_applied
257
+ info_dict["actionSubmitted"] = action_submitted
258
+ info_dict["actionApplied"] = action_applied
239
259
 
240
260
  obs_update_dict = {
241
- "observation_string": os_state.observation_string(player_id),
242
- "legal_actions": os_state.legal_actions(player_id),
243
- "legal_action_strings": [
261
+ "observationString": os_state.observation_string(player_id),
262
+ "legalActions": os_state.legal_actions(player_id),
263
+ "legalActionStrings": [
244
264
  os_state.action_to_string(action) for action
245
265
  in os_state.legal_actions(player_id)
246
266
  ],
247
- "current_player": os_state.current_player(),
248
- "is_terminal": os_state.is_terminal(),
249
- "player_id": player_id,
267
+ "currentPlayer": os_state.current_player(),
268
+ "playerId": player_id,
269
+ "isTerminal": os_state.is_terminal(),
250
270
  }
251
271
 
252
272
  # Apply updates
@@ -295,14 +315,14 @@ function renderer(context) {
295
315
  // Try to get obs_string from game_master of current step
296
316
  if (currentStepData[agentObsIndex] &&
297
317
  currentStepData[agentObsIndex].observation &&
298
- typeof currentStepData[agentObsIndex].observation.observation_string === 'string') {
299
- obsString = currentStepData[agentObsIndex].observation.observation_string;
318
+ typeof currentStepData[agentObsIndex].observation.observationString === 'string') {
319
+ obsString = currentStepData[agentObsIndex].observation.observationString;
300
320
  }
301
321
  // Fallback to initial step if current is unavailable (e.g. very first render call)
302
322
  else if (step === 0 && environment.steps[0] && environment.steps[0][agentObsIndex] &&
303
323
  environment.steps[0][agentObsIndex].observation &&
304
- typeof environment.steps[0][agentObsIndex].observation.observation_string === 'string') {
305
- obsString = environment.steps[0][agentObsIndex].observation.observation_string;
324
+ typeof environment.steps[0][agentObsIndex].observation.observationString === 'string') {
325
+ obsString = environment.steps[0][agentObsIndex].observation.observationString;
306
326
  }
307
327
 
308
328
  const pre = document.createElement("pre");
@@ -349,11 +369,11 @@ def random_agent(
349
369
  ) -> int:
350
370
  """A built-in random agent specifically for OpenSpiel environments."""
351
371
  del configuration
352
- legal_actions = observation.get("legal_actions")
372
+ legal_actions = observation.get("legalActions")
353
373
  if not legal_actions:
354
374
  return None
355
375
  action = random.choice(legal_actions)
356
- return int(action)
376
+ return {"submission": int(action)}
357
377
 
358
378
 
359
379
  AGENT_REGISTRY = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaggle-environments
3
- Version: 1.17.5
3
+ Version: 1.17.6
4
4
  Summary: Kaggle Environments
5
5
  Home-page: https://github.com/Kaggle/kaggle-environments
6
6
  Author: Kaggle