kaggle-environments 1.15.3__py2.py3-none-any.whl → 1.16.0__py2.py3-none-any.whl

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 (68) hide show
  1. kaggle_environments/__init__.py +1 -1
  2. kaggle_environments/envs/chess/chess.json +4 -4
  3. kaggle_environments/envs/chess/chess.py +209 -51
  4. kaggle_environments/envs/chess/test_chess.py +43 -1
  5. kaggle_environments/envs/connectx/connectx.ipynb +3183 -0
  6. kaggle_environments/envs/football/football.ipynb +75 -0
  7. kaggle_environments/envs/halite/halite.ipynb +44736 -0
  8. kaggle_environments/envs/kore_fleets/kore_fleets.ipynb +112 -0
  9. kaggle_environments/envs/kore_fleets/starter_bots/java/Bot.java +54 -0
  10. kaggle_environments/envs/kore_fleets/starter_bots/java/README.md +26 -0
  11. kaggle_environments/envs/kore_fleets/starter_bots/java/jars/hamcrest-core-1.3.jar +0 -0
  12. kaggle_environments/envs/kore_fleets/starter_bots/java/jars/junit-4.13.2.jar +0 -0
  13. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Board.java +518 -0
  14. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Cell.java +61 -0
  15. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Configuration.java +24 -0
  16. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Direction.java +166 -0
  17. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Fleet.java +72 -0
  18. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/KoreJson.java +97 -0
  19. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Observation.java +72 -0
  20. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Pair.java +13 -0
  21. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Player.java +68 -0
  22. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Point.java +65 -0
  23. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Shipyard.java +70 -0
  24. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/ShipyardAction.java +59 -0
  25. kaggle_environments/envs/kore_fleets/starter_bots/java/test/BoardTest.java +567 -0
  26. kaggle_environments/envs/kore_fleets/starter_bots/java/test/ConfigurationTest.java +25 -0
  27. kaggle_environments/envs/kore_fleets/starter_bots/java/test/KoreJsonTest.java +62 -0
  28. kaggle_environments/envs/kore_fleets/starter_bots/java/test/ObservationTest.java +46 -0
  29. kaggle_environments/envs/kore_fleets/starter_bots/java/test/PointTest.java +21 -0
  30. kaggle_environments/envs/kore_fleets/starter_bots/java/test/ShipyardTest.java +22 -0
  31. kaggle_environments/envs/kore_fleets/starter_bots/ts/README.md +55 -0
  32. kaggle_environments/envs/lux_ai_2021/README.md +3 -0
  33. kaggle_environments/envs/lux_ai_2021/dimensions/754.js.LICENSE.txt +296 -0
  34. kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/simple.tar.gz +0 -0
  35. kaggle_environments/envs/lux_ai_2021/testing.md +23 -0
  36. kaggle_environments/envs/lux_ai_2021/todo.md.og +18 -0
  37. kaggle_environments/envs/lux_ai_s2/.gitignore +1 -0
  38. kaggle_environments/envs/lux_ai_s2/README.md +21 -0
  39. kaggle_environments/envs/lux_ai_s2/luxai_s2/.DS_Store +0 -0
  40. kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/.DS_Store +0 -0
  41. kaggle_environments/envs/lux_ai_s3/README.md +21 -0
  42. kaggle_environments/envs/lux_ai_s3/agents.py +4 -0
  43. kaggle_environments/envs/lux_ai_s3/index.html +42 -0
  44. kaggle_environments/envs/lux_ai_s3/lux_ai_s3.json +47 -0
  45. kaggle_environments/envs/lux_ai_s3/lux_ai_s3.py +138 -0
  46. kaggle_environments/envs/lux_ai_s3/luxai_s3/__init__.py +1 -0
  47. kaggle_environments/envs/lux_ai_s3/luxai_s3/env.py +924 -0
  48. kaggle_environments/envs/lux_ai_s3/luxai_s3/globals.py +13 -0
  49. kaggle_environments/envs/lux_ai_s3/luxai_s3/params.py +101 -0
  50. kaggle_environments/envs/lux_ai_s3/luxai_s3/profiler.py +140 -0
  51. kaggle_environments/envs/lux_ai_s3/luxai_s3/pygame_render.py +270 -0
  52. kaggle_environments/envs/lux_ai_s3/luxai_s3/spaces.py +30 -0
  53. kaggle_environments/envs/lux_ai_s3/luxai_s3/state.py +399 -0
  54. kaggle_environments/envs/lux_ai_s3/luxai_s3/utils.py +12 -0
  55. kaggle_environments/envs/lux_ai_s3/luxai_s3/wrappers.py +187 -0
  56. kaggle_environments/envs/lux_ai_s3/test_agents/python/agent.py +71 -0
  57. kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/__init__.py +0 -0
  58. kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/kit.py +27 -0
  59. kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/utils.py +17 -0
  60. kaggle_environments/envs/lux_ai_s3/test_agents/python/main.py +53 -0
  61. kaggle_environments/envs/lux_ai_s3/test_lux.py +9 -0
  62. kaggle_environments/envs/tictactoe/tictactoe.ipynb +1393 -0
  63. {kaggle_environments-1.15.3.dist-info → kaggle_environments-1.16.0.dist-info}/METADATA +2 -2
  64. {kaggle_environments-1.15.3.dist-info → kaggle_environments-1.16.0.dist-info}/RECORD +68 -10
  65. {kaggle_environments-1.15.3.dist-info → kaggle_environments-1.16.0.dist-info}/WHEEL +1 -1
  66. {kaggle_environments-1.15.3.dist-info → kaggle_environments-1.16.0.dist-info}/LICENSE +0 -0
  67. {kaggle_environments-1.15.3.dist-info → kaggle_environments-1.16.0.dist-info}/entry_points.txt +0 -0
  68. {kaggle_environments-1.15.3.dist-info → kaggle_environments-1.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,138 @@
1
+ import dataclasses
2
+ import json
3
+ import math
4
+ import os
5
+ import random
6
+ import sys
7
+ from os import path
8
+ from .agents import all_agents
9
+ from sys import path as syspath
10
+ from os import path as osp
11
+
12
+ # next two lines enables importing local packages e.g. luxai_s3
13
+ __dir__ = osp.dirname(__file__)
14
+ syspath.append(__dir__)
15
+
16
+ from luxai_s3.wrappers import LuxAIS3GymEnv, RecordEpisode
17
+ import numpy as np
18
+
19
+ import copy
20
+ import json
21
+ def to_json(state):
22
+ if isinstance(state, np.ndarray):
23
+ return state.tolist()
24
+ elif isinstance(state, np.int64):
25
+ return state.tolist()
26
+ elif isinstance(state, list):
27
+ return [to_json(s) for s in state]
28
+ elif isinstance(state, dict):
29
+ out = {}
30
+ for k in state:
31
+ out[k] = to_json(state[k])
32
+ return out
33
+ else:
34
+ return state
35
+ prev_step = 0
36
+ luxenv: RecordEpisode = None
37
+ prev_obs = None
38
+ state_obs = None
39
+ default_env_cfg = None
40
+ def enqueue_output(out, queue):
41
+ for line in iter(out.readline, b''):
42
+ queue.put(line)
43
+ out.close()
44
+
45
+ def interpreter(state, env):
46
+ global luxenv, prev_obs, state_obs, default_env_cfg
47
+ player_0 = state[0]
48
+ player_1 = state[1]
49
+ # filter out actions such as debug annotations so they aren't saved
50
+ # filter_actions(state, env)
51
+
52
+ if env.done:
53
+ if "seed" in env.configuration:
54
+ seed = int(env.configuration["seed"])
55
+ else:
56
+ seed = math.floor(random.random() * 1e9);
57
+ env.configuration["seed"] = seed
58
+
59
+ luxenv = LuxAIS3GymEnv(numpy_output=True)
60
+ luxenv = RecordEpisode(luxenv, save_on_close=False, save_on_reset=False)
61
+ obs, info = luxenv.reset(seed=seed)
62
+
63
+ env_cfg_json = info["params"]
64
+
65
+ env.configuration.env_cfg = env_cfg_json
66
+
67
+ player_0.observation.player = "player_0"
68
+ player_1.observation.player = "player_1"
69
+ player_0.observation.obs = json.dumps(to_json(obs["player_0"]))
70
+ player_1.observation.obs = json.dumps(to_json(obs["player_1"]))
71
+
72
+ replay_frame = luxenv.serialize_episode_data(dict(
73
+ states=[luxenv.episode["states"][-1]],
74
+ metadata=luxenv.episode["metadata"],
75
+ params=luxenv.episode["params"]
76
+ ))
77
+ # don't need to keep metadata/params beyond first step
78
+ player_0.info = dict(replay=replay_frame)
79
+ return state
80
+
81
+ new_state_obs, rewards, terminations, truncations, infos = luxenv.step({
82
+ "player_0": np.array(player_0.action["action"]),
83
+ "player_1": np.array(player_1.action["action"])
84
+ })
85
+
86
+ # cannot store np arrays in replay jsons so must convert to list
87
+ player_0.action = player_0.action["action"]
88
+ player_1.action = player_1.action["action"]
89
+
90
+ dones = dict()
91
+ for k in terminations:
92
+ dones[k] = terminations[k] | truncations[k]
93
+
94
+ player_0.observation.player = "player_0"
95
+ player_1.observation.player = "player_1"
96
+
97
+ player_0.observation.obs = json.dumps(to_json(new_state_obs["player_0"]))
98
+ player_1.observation.obs = json.dumps(to_json(new_state_obs["player_1"]))
99
+
100
+
101
+ player_0.reward = int(rewards["player_0"])
102
+ player_1.reward = int(rewards["player_1"])
103
+
104
+ player_0.observation.reward = int(player_0.reward)
105
+ player_1.observation.reward = int(player_1.reward)
106
+ replay_frame = luxenv.serialize_episode_data(dict(
107
+ states=[luxenv.episode["states"][-1]],
108
+ actions=[luxenv.episode["actions"][-1]],
109
+ metadata=luxenv.episode["metadata"],
110
+ params=luxenv.episode["params"]
111
+ ))
112
+ # don't need to keep metadata/params beyond first step
113
+ del replay_frame["metadata"]
114
+ del replay_frame["params"]
115
+ player_0.info = dict(replay=replay_frame)
116
+
117
+ if np.all([dones[k] for k in dones]):
118
+ if player_0.status == "ACTIVE":
119
+ player_0.status = "DONE"
120
+ if player_1.status == "ACTIVE":
121
+ player_1.status = "DONE"
122
+ return state
123
+
124
+ def renderer(state, env):
125
+ raise NotImplementedError("To render the replay, please set the render mode to json or html")
126
+
127
+
128
+ dir_path = path.dirname(__file__)
129
+ json_path = path.abspath(path.join(dir_path, "lux_ai_s3.json"))
130
+ with open(json_path) as json_file:
131
+ specification = json.load(json_file)
132
+
133
+
134
+ def html_renderer():
135
+ html_path = path.abspath(path.join(dir_path, "index.html"))
136
+ return ("html_path", html_path)
137
+
138
+ agents = all_agents
@@ -0,0 +1 @@
1
+ from .env import LuxAIS3Env