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.
- {kaggle_environments-1.17.5/kaggle_environments.egg-info → kaggle_environments-1.17.6}/PKG-INFO +1 -1
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/__init__.py +1 -1
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/core.py +1 -1
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/chess/chess.js +3 -3
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four.js +2 -14
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/go/go.js +4 -4
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker.js +2 -2
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/open_spiel.py +58 -38
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6/kaggle_environments.egg-info}/PKG-INFO +1 -1
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/LICENSE +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/MANIFEST.in +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/README.md +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/agent.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/api.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/test_chess.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/connectx.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/connectx.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/connectx.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/connectx/test_connectx.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/football.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/football.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/helpers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/football/test_football.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/helpers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/test_halite.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/hungry_geese.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/hungry_geese.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/hungry_geese.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/hungry_geese/test_hungry_geese.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/identity/identity.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/identity/identity.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/helpers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/kore_fleets.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/kore_fleets.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/kore_fleets.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/configuration.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/fullob.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/observation.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/python/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/python/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/Bot.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/DoNothingBot.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/MinerBot.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Cell.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Configuration.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Direction.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/KoreIO.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Observation.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Pair.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Player.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Point.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Shipyard.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/ShipyardAction.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/miner.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/package.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/BoardTest.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ConfigurationTest.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ObservationTest.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/PointTest.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ShipyardTest.ts +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/configuration.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/fullob.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/observation.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/starter_bots/ts/tsconfig.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/kore_fleets/test_kore_fleets.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/keywords.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/llm_20_questions.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/llm_20_questions.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/llm_20_questions.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/llm_20_questions/test_llm_20_questions.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/agents.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/dimensions/754.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/dimensions/main.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/index.html +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/annotate.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/constants.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game.py +0 -0
- {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
- {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
- {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
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/random_agent.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_agents/python/simple_agent.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_2021/test_lux.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/agents.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/index.html +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/actions.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/config.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/env.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/factory.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/globals.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/__init__.py +0 -0
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/board.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/position.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/generator.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/symnoise.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/timing.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize.py +0 -0
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/visualizer.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/replay.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/act_space.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/obs_space.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/state.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/stats.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/typing.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/team.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/replay.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/unit.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/animate.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/bidding.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory.py +0 -0
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/utils.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/version.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/controllers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/sb3.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/agent.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/cargo.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/config.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/factory.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/kit.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/team.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/unit.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/utils.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_agents/python/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s2/test_lux.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/agents.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/index.html +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/env.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/globals.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/params.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/profiler.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/pygame_render.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/spaces.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/state.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/utils.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/luxai_s3/wrappers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/agent.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/kit.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/utils.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_agents/python/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/lux_ai_s3/test_lux.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/agents.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/mab.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/mab.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/mab/mab.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy.py +0 -0
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/go/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/go/go_proxy.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/__init__.py +0 -0
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy.py +0 -0
- {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
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/html_playthrough_generator.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/observation.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/proxy.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/proxy_test.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/open_spiel/test_open_spiel.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/__init__.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/agents.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/helpers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/rps.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/rps.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/rps.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/test_rps.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/rps/utils.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/test_tictactoe.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/tictactoe.js +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/tictactoe.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/tictactoe/tictactoe.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/errors.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/helpers.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/main.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/schemas.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/static/player.html +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/status_codes.json +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/utils.py +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/SOURCES.txt +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/dependency_links.txt +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/entry_points.txt +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/requires.txt +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments.egg-info/top_level.txt +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/setup.cfg +0 -0
- {kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/setup.py +0 -0
|
@@ -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.
|
|
276
|
+
if (observationForRenderer && typeof observationForRenderer.observationString === 'string' && observationForRenderer.observationString.trim() !== '') {
|
|
277
277
|
try {
|
|
278
|
-
const fen = observationForRenderer.
|
|
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.
|
|
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.
|
|
267
|
+
if (observationForRenderer && typeof observationForRenderer.observationString === 'string' && observationForRenderer.observationString.trim() !== '') {
|
|
268
268
|
try {
|
|
269
|
-
gameSpecificState = JSON.parse(observationForRenderer.
|
|
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.
|
|
413
|
+
if (gameMasterAgent.observation.observationString) {
|
|
414
414
|
try {
|
|
415
|
-
gameState = JSON.parse(gameMasterAgent.observation.
|
|
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.
|
|
464
|
+
if (observationForRenderer && typeof observationForRenderer.observationString === 'string' && observationForRenderer.observationString.trim() !== '') {
|
|
465
465
|
try {
|
|
466
|
-
gameSpecificState = JSON.parse(observationForRenderer.
|
|
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.
|
|
286
|
+
if (typeof observationForBoardState.observationString === 'string' && observationForBoardState.observationString.trim().startsWith('{')) {
|
|
287
287
|
try {
|
|
288
|
-
const parsedState = JSON.parse(observationForBoardState.
|
|
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
|
|
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.
|
|
310
|
-
else if (observationForBoardState.
|
|
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.
|
|
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.
|
|
251
|
-
obsP1 = JSON.parse(currentStepAgents[1].observation.
|
|
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 =
|
|
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
|
-
"
|
|
86
|
+
"observationString": {
|
|
81
87
|
"description": "String representation of state.",
|
|
82
88
|
"type": "string"
|
|
83
89
|
},
|
|
84
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
104
|
+
"currentPlayer": {
|
|
101
105
|
"description": "ID of player whose turn it is.",
|
|
102
106
|
"type": "integer"
|
|
103
107
|
},
|
|
104
|
-
"
|
|
108
|
+
"playerId": {
|
|
105
109
|
"description": "ID of the agent receiving this observation.",
|
|
106
110
|
"type": "integer"
|
|
107
111
|
},
|
|
108
|
-
"
|
|
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 "
|
|
161
|
-
env.info['
|
|
162
|
-
env.info['
|
|
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 ==
|
|
171
|
-
|
|
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['
|
|
195
|
-
env.info['
|
|
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['
|
|
216
|
-
env.info['
|
|
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["
|
|
238
|
-
info_dict["
|
|
257
|
+
info_dict["actionSubmitted"] = action_submitted
|
|
258
|
+
info_dict["actionApplied"] = action_applied
|
|
239
259
|
|
|
240
260
|
obs_update_dict = {
|
|
241
|
-
"
|
|
242
|
-
"
|
|
243
|
-
"
|
|
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
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"
|
|
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.
|
|
299
|
-
obsString = currentStepData[agentObsIndex].observation.
|
|
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.
|
|
305
|
-
obsString = environment.steps[0][agentObsIndex].observation.
|
|
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("
|
|
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 = {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.js
RENAMED
|
File without changes
|
{kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.json
RENAMED
|
File without changes
|
{kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/chess/chess.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.js
RENAMED
|
File without changes
|
|
File without changes
|
{kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/halite.py
RENAMED
|
File without changes
|
{kaggle_environments-1.17.5 → kaggle_environments-1.17.6}/kaggle_environments/envs/halite/helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|