Skip to content

Commit 1a240bb

Browse files
Moving Env Manager to Trainers (#3062) The Env Manager is only used by the trainer codebase. The entry point to interact with an environment is UnityEnvironment.
* Moving Env Manager to Trainers * fix pylint madness
1 parent ff0edb4 commit 1a240bb

37 files changed

+72
-72
lines changed

ml-agents-envs/mlagents/envs/exception.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,6 @@ class UnityActionException(UnityException):
3535
pass
3636

3737

38-
class SamplerException(UnityException):
39-
"""
40-
Related to errors with the sampler actions.
41-
"""
42-
43-
pass
44-
45-
4638
class UnityTimeOutException(UnityException):
4739
"""
4840
Related to errors with communication timeouts.

ml-agents/mlagents/trainers/bc/trainer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import numpy as np
88

9-
from mlagents.envs.brain import BrainInfo
10-
from mlagents.envs.action_info import ActionInfoOutputs
9+
from mlagents.trainers.brain import BrainInfo
10+
from mlagents.trainers.action_info import ActionInfoOutputs
1111
from mlagents.trainers.bc.policy import BCPolicy
1212
from mlagents.trainers.buffer import AgentBuffer
1313
from mlagents.trainers.agent_processor import ProcessingBuffer

ml-agents-envs/mlagents/envs/brain_conversion_utils.py renamed to ml-agents/mlagents/trainers/brain_conversion_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from mlagents.envs.brain import BrainInfo, BrainParameters, CameraResolution
1+
from mlagents.trainers.brain import BrainInfo, BrainParameters, CameraResolution
22
from mlagents.envs.base_env import BatchedStepResult, AgentGroupSpec
33
from mlagents.envs.exception import UnityEnvironmentException
44
import numpy as np

ml-agents/mlagents/trainers/components/reward_signals/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from mlagents.tf_utils import tf
88

9-
from mlagents.envs.brain import BrainInfo
9+
from mlagents.trainers.brain import BrainInfo
1010
from mlagents.trainers.trainer import UnityTrainerException
1111
from mlagents.trainers.tf_policy import TFPolicy
1212
from mlagents.trainers.models import LearningModel

ml-agents/mlagents/trainers/components/reward_signals/curiosity/signal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import numpy as np
33
from mlagents.tf_utils import tf
44

5-
from mlagents.envs.brain import BrainInfo
5+
from mlagents.trainers.brain import BrainInfo
66

77
from mlagents.trainers.components.reward_signals import RewardSignal, RewardSignalResult
88
from mlagents.trainers.components.reward_signals.curiosity.model import CuriosityModel

ml-agents/mlagents/trainers/components/reward_signals/extrinsic/signal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any, Dict, List
22
import numpy as np
3-
from mlagents.envs.brain import BrainInfo
3+
from mlagents.trainers.brain import BrainInfo
44

55
from mlagents.trainers.components.reward_signals import RewardSignal, RewardSignalResult
66

ml-agents/mlagents/trainers/components/reward_signals/gail/signal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import numpy as np
44
from mlagents.tf_utils import tf
55

6-
from mlagents.envs.brain import BrainInfo
6+
from mlagents.trainers.brain import BrainInfo
77
from mlagents.trainers.components.reward_signals import RewardSignal, RewardSignalResult
88
from mlagents.trainers.tf_policy import TFPolicy
99
from mlagents.trainers.models import LearningModel

ml-agents/mlagents/trainers/demo_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import numpy as np
66
from mlagents.trainers.buffer import AgentBuffer
77
from mlagents.trainers.agent_processor import ProcessingBuffer
8-
from mlagents.envs.brain import BrainParameters, BrainInfo
8+
from mlagents.trainers.brain import BrainParameters, BrainInfo
99
from mlagents.envs.communicator_objects.agent_info_action_pair_pb2 import (
1010
AgentInfoActionPairProto,
1111
)

ml-agents-envs/mlagents/envs/env_manager.py renamed to ml-agents/mlagents/trainers/env_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from abc import ABC, abstractmethod
22
from typing import List, Dict, NamedTuple, Optional
3-
from mlagents.envs.brain import AllBrainInfo, BrainParameters
4-
from mlagents.envs.policy import Policy
5-
from mlagents.envs.action_info import ActionInfo
3+
from mlagents.trainers.brain import AllBrainInfo, BrainParameters
4+
from mlagents.trainers.policy import Policy
5+
from mlagents.trainers.action_info import ActionInfo
66

77

88
class EnvironmentStep(NamedTuple):

ml-agents/mlagents/trainers/exception.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,11 @@ class MetaCurriculumError(TrainerError):
4141
"""
4242

4343
pass
44+
45+
46+
class SamplerException(TrainerError):
47+
"""
48+
Related to errors with the sampler actions.
49+
"""
50+
51+
pass

ml-agents/mlagents/trainers/learn.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
from mlagents.trainers.meta_curriculum import MetaCurriculum
1919
from mlagents.trainers.trainer_util import load_config, TrainerFactory
2020
from mlagents.envs.environment import UnityEnvironment
21-
from mlagents.envs.sampler_class import SamplerManager
22-
from mlagents.envs.exception import SamplerException
21+
from mlagents.trainers.sampler_class import SamplerManager
22+
from mlagents.trainers.exception import SamplerException
2323
from mlagents.envs.base_env import BaseEnv
24-
from mlagents.envs.subprocess_env_manager import SubprocessEnvManager
24+
from mlagents.trainers.subprocess_env_manager import SubprocessEnvManager
2525
from mlagents.envs.side_channel.side_channel import SideChannel
2626
from mlagents.envs.side_channel.engine_configuration_channel import EngineConfig
2727

@@ -59,6 +59,7 @@ def from_argparse(args: Any) -> "CommandLineOptions":
5959

6060

6161
def get_version_string() -> str:
62+
# pylint: disable=no-member
6263
return f""" Version information:
6364
ml-agents: {mlagents.trainers.__version__},
6465
ml-agents-envs: {mlagents.envs.__version__},

ml-agents/mlagents/trainers/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from mlagents.tf_utils import tf
77

88
from mlagents.trainers.trainer import UnityTrainerException
9-
from mlagents.envs.brain import CameraResolution
9+
from mlagents.trainers.brain import CameraResolution
1010

1111
logger = logging.getLogger("mlagents.trainers")
1212

ml-agents-envs/mlagents/envs/policy.py renamed to ml-agents/mlagents/trainers/policy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from abc import ABC, abstractmethod
22

3-
from mlagents.envs.brain import BrainInfo
4-
from mlagents.envs.action_info import ActionInfo
3+
from mlagents.trainers.brain import BrainInfo
4+
from mlagents.trainers.action_info import ActionInfo
55

66

77
class Policy(ABC):

ml-agents/mlagents/trainers/ppo/multi_gpu_policy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from mlagents.tf_utils import tf
55

66
from tensorflow.python.client import device_lib
7-
from mlagents.envs.brain import BrainParameters
7+
from mlagents.trainers.brain import BrainParameters
88
from mlagents.envs.timers import timed
99
from mlagents.trainers.models import EncoderType, LearningRateSchedule
1010
from mlagents.trainers.ppo.policy import PPOPolicy

ml-agents/mlagents/trainers/ppo/policy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from mlagents.tf_utils import tf
66

77
from mlagents.envs.timers import timed
8-
from mlagents.envs.brain import BrainInfo, BrainParameters
8+
from mlagents.trainers.brain import BrainInfo, BrainParameters
99
from mlagents.trainers.models import EncoderType, LearningRateSchedule
1010
from mlagents.trainers.ppo.models import PPOModel
1111
from mlagents.trainers.tf_policy import TFPolicy

ml-agents/mlagents/trainers/ppo/trainer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
import numpy as np
1010

11-
from mlagents.envs.brain import BrainInfo
11+
from mlagents.trainers.brain import BrainInfo
1212
from mlagents.trainers.ppo.policy import PPOPolicy
1313
from mlagents.trainers.ppo.multi_gpu_policy import MultiGpuPPOPolicy, get_devices
1414
from mlagents.trainers.rl_trainer import RLTrainer, AllRewardsOutput
15-
from mlagents.envs.action_info import ActionInfoOutputs
15+
from mlagents.trainers.action_info import ActionInfoOutputs
1616

1717
logger = logging.getLogger("mlagents.trainers")
1818

ml-agents/mlagents/trainers/rl_trainer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
from typing import Dict, List, Any, NamedTuple
44
import numpy as np
55

6-
from mlagents.envs.brain import BrainInfo
7-
from mlagents.envs.action_info import ActionInfoOutputs
6+
from mlagents.trainers.brain import BrainInfo
7+
from mlagents.trainers.action_info import ActionInfoOutputs
88
from mlagents.trainers.buffer import AgentBuffer
99
from mlagents.trainers.agent_processor import ProcessingBuffer
1010
from mlagents.trainers.trainer import Trainer, UnityTrainerException

ml-agents/mlagents/trainers/sac/policy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from mlagents.tf_utils import tf
55

66
from mlagents.envs.timers import timed
7-
from mlagents.envs.brain import BrainInfo, BrainParameters
7+
from mlagents.trainers.brain import BrainInfo, BrainParameters
88
from mlagents.trainers.models import EncoderType, LearningRateSchedule
99
from mlagents.trainers.sac.models import SACModel
1010
from mlagents.trainers.tf_policy import TFPolicy

ml-agents/mlagents/trainers/sac/trainer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
import numpy as np
1212

13-
from mlagents.envs.brain import BrainInfo
14-
from mlagents.envs.action_info import ActionInfoOutputs
13+
from mlagents.trainers.brain import BrainInfo
14+
from mlagents.trainers.action_info import ActionInfoOutputs
1515
from mlagents.envs.timers import timed
1616
from mlagents.trainers.sac.policy import SACPolicy
1717
from mlagents.trainers.rl_trainer import RLTrainer, AllRewardsOutput

ml-agents-envs/mlagents/envs/sampler_class.py renamed to ml-agents/mlagents/trainers/sampler_class.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from typing import Union, Optional, Type, List, Dict, Any
33
from abc import ABC, abstractmethod
44

5-
from .exception import SamplerException
5+
from mlagents.trainers.exception import SamplerException
66

77

88
class Sampler(ABC):

ml-agents-envs/mlagents/envs/simple_env_manager.py renamed to ml-agents/mlagents/trainers/simple_env_manager.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
from typing import Dict, List
22

33
from mlagents.envs.base_env import BaseEnv
4-
from mlagents.envs.env_manager import EnvManager, EnvironmentStep
4+
from mlagents.trainers.env_manager import EnvManager, EnvironmentStep
55
from mlagents.envs.timers import timed
6-
from mlagents.envs.action_info import ActionInfo
7-
from mlagents.envs.brain import BrainParameters, AllBrainInfo
6+
from mlagents.trainers.action_info import ActionInfo
7+
from mlagents.trainers.brain import BrainParameters, AllBrainInfo
88
from mlagents.envs.side_channel.float_properties_channel import FloatPropertiesChannel
9-
from mlagents.envs.brain_conversion_utils import (
9+
from mlagents.trainers.brain_conversion_utils import (
1010
step_result_to_brain_info,
1111
group_spec_to_brain_parameters,
1212
)

ml-agents-envs/mlagents/envs/subprocess_env_manager.py renamed to ml-agents/mlagents/trainers/subprocess_env_manager.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@
88
from multiprocessing.connection import Connection
99
from queue import Empty as EmptyQueueException
1010
from mlagents.envs.base_env import BaseEnv
11-
from mlagents.envs.env_manager import EnvManager, EnvironmentStep
11+
from mlagents.trainers.env_manager import EnvManager, EnvironmentStep
1212
from mlagents.envs.timers import (
1313
TimerNode,
1414
timed,
1515
hierarchical_timer,
1616
reset_timers,
1717
get_timer_root,
1818
)
19-
from mlagents.envs.brain import AllBrainInfo, BrainParameters
20-
from mlagents.envs.action_info import ActionInfo
19+
from mlagents.trainers.brain import AllBrainInfo, BrainParameters
20+
from mlagents.trainers.action_info import ActionInfo
2121
from mlagents.envs.side_channel.float_properties_channel import FloatPropertiesChannel
2222
from mlagents.envs.side_channel.engine_configuration_channel import (
2323
EngineConfigurationChannel,
2424
EngineConfig,
2525
)
2626
from mlagents.envs.side_channel.side_channel import SideChannel
27-
from mlagents.envs.brain_conversion_utils import (
27+
from mlagents.trainers.brain_conversion_utils import (
2828
step_result_to_brain_info,
2929
group_spec_to_brain_parameters,
3030
)

ml-agents/mlagents/trainers/tests/mock_brain.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import unittest.mock as mock
22
import numpy as np
33

4-
from mlagents.envs.brain import CameraResolution, BrainParameters
4+
from mlagents.trainers.brain import CameraResolution, BrainParameters
55
from mlagents.trainers.buffer import AgentBuffer
66
from mlagents.trainers.agent_processor import ProcessingBuffer
77

ml-agents/mlagents/trainers/tests/test_bc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from mlagents.envs.mock_communicator import MockCommunicator
1515
from mlagents.trainers.tests.mock_brain import make_brain_parameters
1616
from mlagents.envs.environment import UnityEnvironment
17-
from mlagents.envs.brain_conversion_utils import (
17+
from mlagents.trainers.brain_conversion_utils import (
1818
step_result_to_brain_info,
1919
group_spec_to_brain_parameters,
2020
)

ml-agents/mlagents/trainers/tests/test_policy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from mlagents.trainers.tf_policy import TFPolicy
2-
from mlagents.envs.brain import BrainInfo
3-
from mlagents.envs.action_info import ActionInfo
2+
from mlagents.trainers.brain import BrainInfo
3+
from mlagents.trainers.action_info import ActionInfo
44
from unittest.mock import MagicMock
55
import numpy as np
66

ml-agents/mlagents/trainers/tests/test_ppo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
from mlagents.trainers.ppo.policy import PPOPolicy
1212
from mlagents.trainers.rl_trainer import AllRewardsOutput
1313
from mlagents.trainers.components.reward_signals import RewardSignalResult
14-
from mlagents.envs.brain import BrainParameters
14+
from mlagents.trainers.brain import BrainParameters
1515
from mlagents.envs.environment import UnityEnvironment
1616
from mlagents.envs.mock_communicator import MockCommunicator
1717
from mlagents.trainers.tests import mock_brain as mb
1818
from mlagents.trainers.tests.mock_brain import make_brain_parameters
19-
from mlagents.envs.brain_conversion_utils import (
19+
from mlagents.trainers.brain_conversion_utils import (
2020
step_result_to_brain_info,
2121
group_spec_to_brain_parameters,
2222
)

ml-agents-envs/mlagents/envs/tests/test_sampler_class.py renamed to ml-agents/mlagents/trainers/tests/test_sampler_class.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import pytest
22

3-
from mlagents.envs.sampler_class import SamplerManager
4-
from mlagents.envs.sampler_class import (
3+
from mlagents.trainers.sampler_class import SamplerManager
4+
from mlagents.trainers.sampler_class import (
55
UniformSampler,
66
MultiRangeUniformSampler,
77
GaussianSampler,
88
)
9-
from mlagents.envs.exception import UnityException
9+
from mlagents.trainers.exception import TrainerError
1010

1111

1212
def sampler_config_1():
@@ -86,11 +86,11 @@ def incorrect_sampler_config():
8686

8787
def test_incorrect_uniform_sampler():
8888
config = incorrect_uniform_sampler()
89-
with pytest.raises(UnityException):
89+
with pytest.raises(TrainerError):
9090
SamplerManager(config)
9191

9292

9393
def test_incorrect_sampler():
9494
config = incorrect_sampler_config()
95-
with pytest.raises(UnityException):
95+
with pytest.raises(TrainerError):
9696
SamplerManager(config)

ml-agents/mlagents/trainers/tests/test_simple_rl.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
BatchedStepResult,
1616
ActionType,
1717
)
18-
from mlagents.envs.brain import BrainParameters
19-
from mlagents.envs.simple_env_manager import SimpleEnvManager
20-
from mlagents.envs.sampler_class import SamplerManager
18+
from mlagents.trainers.brain import BrainParameters
19+
from mlagents.trainers.simple_env_manager import SimpleEnvManager
20+
from mlagents.trainers.sampler_class import SamplerManager
2121
from mlagents.envs.side_channel.float_properties_channel import FloatPropertiesChannel
2222

2323
BRAIN_NAME = __name__

ml-agents-envs/mlagents/envs/tests/test_subprocess_env_manager.py renamed to ml-agents/mlagents/trainers/tests/test_subprocess_env_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import unittest
44
from queue import Empty as EmptyQueue
55

6-
from mlagents.envs.subprocess_env_manager import (
6+
from mlagents.trainers.subprocess_env_manager import (
77
SubprocessEnvManager,
88
EnvironmentResponse,
99
StepResponse,

ml-agents/mlagents/trainers/tests/test_trainer_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import pytest
77

88
from mlagents.trainers.trainer_controller import TrainerController
9-
from mlagents.envs.subprocess_env_manager import EnvironmentStep
10-
from mlagents.envs.sampler_class import SamplerManager
9+
from mlagents.trainers.subprocess_env_manager import EnvironmentStep
10+
from mlagents.trainers.sampler_class import SamplerManager
1111

1212

1313
@pytest.fixture

ml-agents/mlagents/trainers/tests/test_trainer_util.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def dummy_bad_config():
113113
)
114114

115115

116-
@patch("mlagents.envs.brain.BrainParameters")
116+
@patch("mlagents.trainers.brain.BrainParameters")
117117
def test_initialize_trainer_parameters_override_defaults(BrainParametersMock):
118118
summaries_dir = "test_dir"
119119
run_id = "testrun"
@@ -162,7 +162,7 @@ def mock_constructor(self, brain, trainer_parameters, training, load, seed, run_
162162
assert isinstance(trainers["testbrain"], OfflineBCTrainer)
163163

164164

165-
@patch("mlagents.envs.brain.BrainParameters")
165+
@patch("mlagents.trainers.brain.BrainParameters")
166166
def test_initialize_ppo_trainer(BrainParametersMock):
167167
brain_params_mock = BrainParametersMock()
168168
BrainParametersMock.return_value.brain_name = "testbrain"
@@ -221,7 +221,7 @@ def mock_constructor(
221221
assert isinstance(trainers["testbrain"], PPOTrainer)
222222

223223

224-
@patch("mlagents.envs.brain.BrainParameters")
224+
@patch("mlagents.trainers.brain.BrainParameters")
225225
def test_initialize_invalid_trainer_raises_exception(BrainParametersMock):
226226
summaries_dir = "test_dir"
227227
run_id = "testrun"

0 commit comments

Comments
 (0)