multi-agent-rlenv 3.3.7__py3-none-any.whl → 3.5.0__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.
@@ -1,26 +1,28 @@
1
- from typing import Optional
1
+ from typing import Optional, Sequence
2
2
  from typing_extensions import TypeVar
3
3
  from dataclasses import dataclass
4
4
  from abc import ABC
5
- import numpy.typing as npt
6
- from marlenv.models import MARLEnv, ActionSpace, DiscreteSpace, State
5
+ import numpy as np
7
6
 
7
+ from marlenv.models import MARLEnv, Space, DiscreteSpace, State
8
8
 
9
- A = TypeVar("A", default=npt.NDArray)
10
- AS = TypeVar("AS", bound=ActionSpace, default=ActionSpace)
9
+
10
+ AS = TypeVar("AS", bound=Space, default=Space)
11
11
 
12
12
 
13
13
  @dataclass
14
- class RLEnvWrapper(MARLEnv[A, AS], ABC):
14
+ class RLEnvWrapper(MARLEnv[AS], ABC):
15
15
  """Parent class for all RLEnv wrappers"""
16
16
 
17
- wrapped: MARLEnv[A, AS]
17
+ wrapped: MARLEnv[AS]
18
18
  full_name: str
19
19
  """The full name of the wrapped environment, excluding the name of the nested wrappers."""
20
20
 
21
21
  def __init__(
22
22
  self,
23
- env: MARLEnv[A, AS],
23
+ env: MARLEnv[AS],
24
+ *,
25
+ n_agents: Optional[int] = None,
24
26
  observation_shape: Optional[tuple[int, ...]] = None,
25
27
  state_shape: Optional[tuple[int, ...]] = None,
26
28
  extra_shape: Optional[tuple[int, ...]] = None,
@@ -35,6 +37,7 @@ class RLEnvWrapper(MARLEnv[A, AS], ABC):
35
37
  if len(extra_meanings) != extra_shape[0]:
36
38
  raise ValueError(f"There are {len(extra_meanings)} extra_meanings but the announced extra_shape is {extra_shape} !")
37
39
  super().__init__(
40
+ n_agents=n_agents or env.n_agents,
38
41
  action_space=action_space or env.action_space,
39
42
  observation_shape=observation_shape or env.observation_shape,
40
43
  state_shape=state_shape or env.state_shape,
@@ -60,7 +63,7 @@ class RLEnvWrapper(MARLEnv[A, AS], ABC):
60
63
  def agent_state_size(self):
61
64
  return self.wrapped.agent_state_size
62
65
 
63
- def step(self, actions: A):
66
+ def step(self, actions: np.ndarray | Sequence):
64
67
  return self.wrapped.step(actions)
65
68
 
66
69
  def reset(self):
@@ -5,11 +5,11 @@ import numpy as np
5
5
 
6
6
  from marlenv.models import Observation, State
7
7
 
8
- from .rlenv_wrapper import MARLEnv, RLEnvWrapper, A, AS
8
+ from .rlenv_wrapper import MARLEnv, RLEnvWrapper, AS
9
9
 
10
10
 
11
11
  @dataclass
12
- class TimeLimit(RLEnvWrapper[A, AS]):
12
+ class TimeLimit(RLEnvWrapper[AS]):
13
13
  """
14
14
  Limits the number of time steps for an episode. When the number of steps is reached, then the episode is truncated.
15
15
 
@@ -27,7 +27,7 @@ class TimeLimit(RLEnvWrapper[A, AS]):
27
27
 
28
28
  def __init__(
29
29
  self,
30
- env: MARLEnv[A, AS],
30
+ env: MARLEnv[AS],
31
31
  step_limit: int,
32
32
  add_extra: bool = True,
33
33
  truncation_penalty: Optional[float] = None,
@@ -4,24 +4,22 @@ from datetime import datetime
4
4
  from typing import Literal, Optional
5
5
 
6
6
  import cv2
7
- import numpy.typing as npt
8
7
  from typing_extensions import TypeVar
9
8
 
10
- from marlenv.models import ActionSpace
9
+ from marlenv.models import Space
11
10
 
12
11
  from .rlenv_wrapper import MARLEnv, RLEnvWrapper
13
12
 
14
- A = TypeVar("A", default=npt.NDArray)
15
- AS = TypeVar("AS", bound=ActionSpace, default=ActionSpace)
13
+ AS = TypeVar("AS", bound=Space, default=Space)
16
14
 
17
15
 
18
16
  @dataclass
19
- class VideoRecorder(RLEnvWrapper[A, AS]):
17
+ class VideoRecorder(RLEnvWrapper[AS]):
20
18
  """Records a video of the run"""
21
19
 
22
20
  def __init__(
23
21
  self,
24
- env: MARLEnv[A, AS],
22
+ env: MARLEnv[AS],
25
23
  video_folder: Optional[str] = None,
26
24
  video_encoding: Literal["mp4", "avi"] = "mp4",
27
25
  initial_pause_frames: int = 1,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multi-agent-rlenv
3
- Version: 3.3.7
3
+ Version: 3.5.0
4
4
  Summary: A strongly typed Multi-Agent Reinforcement Learning framework
5
5
  Project-URL: repository, https://github.com/yamoling/multi-agent-rlenv
6
6
  Author-email: Yannick Molinghen <yannick.molinghen@ulb.be>
@@ -0,0 +1,39 @@
1
+ marlenv/__init__.py,sha256=PDJGtS3Psbiif5tc-PyUCfIju4pSlc6ukb-if6rbOv0,3656
2
+ marlenv/env_builder.py,sha256=RJoHJLYAUE1ausAoJiRC3fUxyxpH1WRJf7Sdm2ml-uk,5517
3
+ marlenv/env_pool.py,sha256=nCEBkGQU62fcvCAANyAqY8gCFjYlVnSCg-V3Fhx00yc,933
4
+ marlenv/exceptions.py,sha256=gJUC_2rVAvOfK_ypVFc7Myh-pIfSU3To38VBVS_0rZA,1179
5
+ marlenv/mock_env.py,sha256=kKvTdZl4_xSTTI9V6otZ1P709sfPYrqZSbbZaTip9iI,4684
6
+ marlenv/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ marlenv/adapters/__init__.py,sha256=rWiqQOqTx3kVL5ZkPo3rkczrlQBBhQbU55zGI26SEeY,929
8
+ marlenv/adapters/gym_adapter.py,sha256=Rx8ZnHW0XEwZzRT53BdDP1f4CtNp2tATAYZ0BbtBbd0,2863
9
+ marlenv/adapters/overcooked_adapter.py,sha256=0-5sfKHGjmM4eYtbydsENMXV2Qx4WVGlvJl7MFZSaj8,9123
10
+ marlenv/adapters/pettingzoo_adapter.py,sha256=w9Ta-X4L_6ZXdDGmREOdcU0vpLR8lGP__s49DyK3dk8,2852
11
+ marlenv/adapters/pymarl_adapter.py,sha256=2s7EY31s1hrml3q-BBaXo_eDMXTjkebozZPvzsgrb9c,3353
12
+ marlenv/adapters/smac_adapter.py,sha256=8uWC7YKsaSXeTS8AUhpGOKvrWMbVEQT2-pml5BaFUB0,8343
13
+ marlenv/models/__init__.py,sha256=uihmRs71Gg5z7Bvau_xtaQVg7xEtX8sTzi74bIHL5P0,443
14
+ marlenv/models/env.py,sha256=KB3-LcvIbGG-78L8ZavfjKykoO85FvhZjs5lJQKvxE0,7813
15
+ marlenv/models/episode.py,sha256=IF3-8YV0tHsIjTYZUOlHmX_IyjnrrzTWk-HPk_mwcR4,15100
16
+ marlenv/models/observation.py,sha256=kAmh1hIoC2TGrZlGVzV0y4TXXCSrI7gcmG0raeoncYk,3153
17
+ marlenv/models/spaces.py,sha256=v7jnhPfj7vq7DFFJpSbQEYe4NGLLlj_bj2pzvvSBX7Y,7777
18
+ marlenv/models/state.py,sha256=958PXTHadi3gtRnhGgcGtqBnF44R11kdcx62NN2gwxA,1717
19
+ marlenv/models/step.py,sha256=LKGAV2Cu-k9Gz1hwrfvGx51l8axtQRqDE9WVL5r2A1Q,3037
20
+ marlenv/models/transition.py,sha256=UkJVRNxZoyRkjE7YmKtUf_4xA7cOEh20O60dTldbvys,5070
21
+ marlenv/utils/__init__.py,sha256=C3qhvkVwctBP8mG3G5nkAZ5DKfErVRkdbHo7oeWVsM0,209
22
+ marlenv/utils/schedule.py,sha256=slhtpQiBHSUNyPmSkKb2yBgiHJqPhoPxa33GxvyV8Jc,8565
23
+ marlenv/wrappers/__init__.py,sha256=wl23NUYcl0vPJb2QLpe4Xj8ZocUIOarAZX8CgWqdSQE,808
24
+ marlenv/wrappers/agent_id_wrapper.py,sha256=9qHV3LMQ4AjcDCSuvQhz5h9hUf7Xtrdi2sIxmNZk5NA,1126
25
+ marlenv/wrappers/available_actions_mask.py,sha256=OMyt2KntsR8JA2RuRgvwdzqzPe-_H-KKkbUUJfe_mks,1404
26
+ marlenv/wrappers/available_actions_wrapper.py,sha256=_HRl9zsjJgSrLgVuT-BjpnnfrfM8ic6wBUWlg67uCx4,926
27
+ marlenv/wrappers/blind_wrapper.py,sha256=In4zhygJqWf5ibwq80kf5NtE1fRtHGw-IpAPvBUs1HU,765
28
+ marlenv/wrappers/centralised.py,sha256=1QWxjzLecC3vlf0G3EVC58_v1uR2shluzUa_9HrcN9o,3131
29
+ marlenv/wrappers/delayed_rewards.py,sha256=P8az9rYmu67OzL1ZEFqfTQcCxRI_AXKXrKUBQ3pURl8,1108
30
+ marlenv/wrappers/last_action_wrapper.py,sha256=QVepSLcWExqACwKvAM0G2LALapSoWdd7YHmah2LZ3vE,2603
31
+ marlenv/wrappers/paddings.py,sha256=0aAi7RP1yL8I5mR4Oxzl9-itKys88mgsPjqe7q-frbk,2024
32
+ marlenv/wrappers/penalty_wrapper.py,sha256=3YBoUV6ETksZ8tFEOq1WYXvPs3ejMAehE6-QA8e4JOE,864
33
+ marlenv/wrappers/rlenv_wrapper.py,sha256=9k0bH5oHfnxnQYXL5PIRVbJfiTP_jnh2c9stMC8bA1o,3018
34
+ marlenv/wrappers/time_limit.py,sha256=GxbxcbfFyuVg14ylQU2C_cjmV9q4uDAt5wepfgX_PyM,3976
35
+ marlenv/wrappers/video_recorder.py,sha256=ucBQSNRPqDr-2mYxrTCqlrWcxSWtSJ7XlRC9-LdukBM,2535
36
+ multi_agent_rlenv-3.5.0.dist-info/METADATA,sha256=XiqIH0A9YzbwckC_1hf8KbOI99LRDyYY--rRqAoMxZE,4897
37
+ multi_agent_rlenv-3.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
38
+ multi_agent_rlenv-3.5.0.dist-info/licenses/LICENSE,sha256=_eeiGVoIJ7kYt6l1zbIvSBQppTnw0mjnYk1lQ4FxEjE,1074
39
+ multi_agent_rlenv-3.5.0.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- marlenv/__init__.py,sha256=u27-QdgKv_1k3uR0oCBN7wcX2jRPmpICbJz1SaZ-f-A,3741
2
- marlenv/env_builder.py,sha256=s_lQANqP3iNc8nmcr3CanRVsExnn9qh0ihh4lFr0c4c,5560
3
- marlenv/env_pool.py,sha256=R3WIrnQ5Zvff4HR1ecfkDmuO2zl7v1ywQ0K2_nvWFzs,1070
4
- marlenv/exceptions.py,sha256=gJUC_2rVAvOfK_ypVFc7Myh-pIfSU3To38VBVS_0rZA,1179
5
- marlenv/mock_env.py,sha256=qB0fYFIfbopJf7Va8kCeVI5vsOy1-2JdEYe9gdV1Ruw,4761
6
- marlenv/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- marlenv/adapters/__init__.py,sha256=rWiqQOqTx3kVL5ZkPo3rkczrlQBBhQbU55zGI26SEeY,929
8
- marlenv/adapters/gym_adapter.py,sha256=6CBEjANViTJBTUBmtVyrhJrzjBJxNs_4hmMnXXG2mkU,2906
9
- marlenv/adapters/overcooked_adapter.py,sha256=Ehwwha_gh9wsQWBVLvwKYR_P6WUco-W2LoxumVjXSPQ,8289
10
- marlenv/adapters/pettingzoo_adapter.py,sha256=4F1au6uctsqRhGfcZOeDRH-8hmrFXnA5xH1Z1Pnek3s,2870
11
- marlenv/adapters/pymarl_adapter.py,sha256=x__E90XpFbfSWhnBHtkcD6WYkmKki1LByNbUFoDBUcg,3416
12
- marlenv/adapters/smac_adapter.py,sha256=fOfKo1hL4ioKtM5qQGcwtfdkdwUEACjAZqaGmkoQUcU,8373
13
- marlenv/models/__init__.py,sha256=9M-rnj94nsdyO4zm_VEtyYBmde3iD2_eIY4bMB-IqCo,555
14
- marlenv/models/env.py,sha256=S0Yd75X4O7desCHrsdEdz045Aw1Zrtu-pkfz5obYQJI,7433
15
- marlenv/models/episode.py,sha256=ZGBx6lb2snrUhDgFEwHPV1dp-XvMA7k4quQVUNQxsP0,15140
16
- marlenv/models/observation.py,sha256=kAmh1hIoC2TGrZlGVzV0y4TXXCSrI7gcmG0raeoncYk,3153
17
- marlenv/models/spaces.py,sha256=pw8Sum_fHBkR-lyfTqUij4azMCNm8oBZrYZe4WVR7rA,7652
18
- marlenv/models/state.py,sha256=958PXTHadi3gtRnhGgcGtqBnF44R11kdcx62NN2gwxA,1717
19
- marlenv/models/step.py,sha256=LKGAV2Cu-k9Gz1hwrfvGx51l8axtQRqDE9WVL5r2A1Q,3037
20
- marlenv/models/transition.py,sha256=2vvuhSSq911weCXio9nuyfsLVh_7ORSU_znOqpLLdLg,5107
21
- marlenv/wrappers/__init__.py,sha256=wl23NUYcl0vPJb2QLpe4Xj8ZocUIOarAZX8CgWqdSQE,808
22
- marlenv/wrappers/agent_id_wrapper.py,sha256=oTIAYxKD1JtHfrZN43mf-3e8pxjd0nxm07vxs3BfrGY,1187
23
- marlenv/wrappers/available_actions_mask.py,sha256=JoCJ9eqHlkY8wfY-oaceEi8yp1Efs1iK6IO2Ibf9oZA,1468
24
- marlenv/wrappers/available_actions_wrapper.py,sha256=9UTwP3LXvncBITJeQnEqwiP_lj-ipULACkGs-2QbMrI,1026
25
- marlenv/wrappers/blind_wrapper.py,sha256=YEayRf_dclhzx6LXsasZ-IM7C71kyPb1gV0pHYYfjig,857
26
- marlenv/wrappers/centralised.py,sha256=E2Saezwfw9uWX4R9jDgH3iQLW8c_h2Y1TdtmUi9nIvs,3226
27
- marlenv/wrappers/delayed_rewards.py,sha256=6oGJe-L_gGI-pQMResbkjsMDvXpni2SQvnTQ6wsZqGo,1170
28
- marlenv/wrappers/last_action_wrapper.py,sha256=u7a3Da5sg_gMrwZ3SE7PAwt2m9xSYYDKjngQyOmcJ74,2886
29
- marlenv/wrappers/paddings.py,sha256=VQOF4zaP61R74tQ4XTTT-FkK2QSy31AukICnqCy6zB0,2119
30
- marlenv/wrappers/penalty_wrapper.py,sha256=v4_H8OEN2-yujLzRb6P7W7KwmXHtjAFsxcdp3SbnKpo,996
31
- marlenv/wrappers/rlenv_wrapper.py,sha256=C2XekgBIM4x3Wa2Mtsn7rihRD4ymC2hORI473Af0sfw,2962
32
- marlenv/wrappers/time_limit.py,sha256=CDIMMJPMyIDHSFxUJaC7nb7Kd86-07NgZeFhrpZm82o,3985
33
- marlenv/wrappers/video_recorder.py,sha256=d5AFu6qHqby9mOcBsYWYPxAPiK1vtnfMYdZ81AnCekI,2624
34
- multi_agent_rlenv-3.3.7.dist-info/METADATA,sha256=zAUWp4QbbEnxN7EVkJfJAXKYEjAcfUIKaogM43fAjR8,4897
35
- multi_agent_rlenv-3.3.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
36
- multi_agent_rlenv-3.3.7.dist-info/licenses/LICENSE,sha256=_eeiGVoIJ7kYt6l1zbIvSBQppTnw0mjnYk1lQ4FxEjE,1074
37
- multi_agent_rlenv-3.3.7.dist-info/RECORD,,